Skip to content

Commit 12e8c01

Browse files
dmitsftchatonpre-commit-ci[bot]
authored
Using internal ip + port in a load balancer instead of URL exposed (#16119)
Co-authored-by: thomas chaton <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 5e1db28 commit 12e8c01

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

src/lightning_app/CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
1313

1414
### Changed
1515

16-
-
16+
17+
- The LoadBalancer now uses internal ip + port instead of URL exposed ([#16119](https://github.com/Lightning-AI/lightning/pull/16119))
1718

1819

1920
### Deprecated

src/lightning_app/components/serve/auto_scaler.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,9 @@ def update_servers(self, server_works: List[LightningWork]):
429429
AutoScaler uses this method to increase/decrease the number of works.
430430
"""
431431
old_servers = set(self._servers)
432-
server_urls: List[str] = [server.url for server in server_works if server.url]
432+
server_urls: List[str] = [
433+
f"http://{server._internal_ip}:{server.port}" for server in server_works if server._internal_ip
434+
]
433435
new_servers = set(server_urls)
434436

435437
if new_servers == old_servers:
@@ -458,12 +460,22 @@ def send_request_to_update_servers(self, servers: List[str]):
458460
detail="Invalid authentication credentials",
459461
headers={"WWW-Authenticate": "Basic"},
460462
) from e
463+
464+
if not self._internal_ip:
465+
return
466+
461467
headers = {
462468
"accept": "application/json",
463469
"username": USERNAME,
464470
"Authorization": AUTHORIZATION_TYPE + " " + data,
465471
}
466-
response = requests.put(f"{self.url}/system/update-servers", json=servers, headers=headers, timeout=10)
472+
473+
response = requests.put(
474+
f"http://{self._internal_ip}:{self.port}/system/update-servers",
475+
json=servers,
476+
headers=headers,
477+
timeout=10,
478+
)
467479
response.raise_for_status()
468480

469481
@staticmethod
@@ -735,7 +747,11 @@ def scale(self, replicas: int, metrics: dict) -> int:
735747
@property
736748
def num_pending_requests(self) -> int:
737749
"""Fetches the number of pending requests via load balancer."""
738-
return int(requests.get(f"{self.load_balancer.url}/num-requests").json())
750+
if not self.load_balancer._internal_ip:
751+
return 0
752+
return int(
753+
requests.get(f"http://{self.load_balancer._internal_ip}:{self.load_balancer.port}/num-requests").json()
754+
)
739755

740756
@property
741757
def num_pending_works(self) -> int:

0 commit comments

Comments
 (0)