Есть ли у меня способ настроить> 1 подов, каждый из которых прослушивает свой TargetPort, с одной службой для всех подов, которые обслуживаются на указанном NodePort (например, 30000), и подключиться к обеим конечным точкам подов на одном и том же NodePort?
Я тестирую docker -desktop с двумя модулями, обслуживающими данные. Я могу подключиться к первому модулю на localholdt: 30000 (NodePort в службе 30000), но когда я пытаюсь подключить второго клиента, он зависает. Я думал, что Служба автоматически подключит второго клиента к конечной точке второго модуля, но, похоже, это не так.
Моя служба describe
:
Name: replica1-gsewz
Namespace: default
Labels: app=cnpquery
app.group.com/partitionreplica=replica1
app.group.com/serviceMetatag=podselector1
Annotations: <none>
Selector: app.group.com/serviceMetatag=podselector1
Type: NodePort
IP: 10.98.212.171
LoadBalancer Ingress: localhost
Port: http 5000/TCP
TargetPort: 5000/TCP
NodePort: http 30000/TCP
Endpoints: 10.1.0.92:5000,10.1.0.93:5000
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
Изменить :
Настройка выглядит следующим образом:
- модули развертываются с серверным приложением на них. Серверное приложение прослушивает порт 5000 модуля.
- Служба, afaik, перенаправляет все запросы на порт узла 30000 на порт модуля 5000
- Я на docker рабочий стол, поэтому я использую прокси docker для подключения к порту 30000 на моем локальном компьютере, то есть по адресу http://localhost: 30000
- На моем локальном компьютере у меня есть клиентский компьютер, который отправляет данные на порт 30000, и получает ответы от сервера модуля.
- Эта настройка работает с одним модулем (т.е. я могу отправлять и получать сообщения на узле: 30000-5000: соединение порта
- Но когда я вращаюсь подключите второй под и попробуйте подключиться к нему на localhost: 30000, он зависает