#docker #kubernetes
#docker #kubernetes
Вопрос:
У меня есть приложение statfulset, которое имеет сервер, работающий на порту 1000, и имеет 3 реплики. Теперь я хочу предоставить приложение, которое я использовал type: NodePort
. Но я также хочу, чтобы 2 реплики обменивались данными друг с другом через один и тот же порт. Когда я выполняю nslookup в случае приложения типа NodePort, оно выдает только одно dns-имя <svc_name>.<namespace>.svc.cluster.local
(отдельные модули не получают dns), и приложение становится доступным.
Когда я это делаю, clusterIP: None
я получаю DNS для конкретного узла <statfulset>.<svc_name>.<namespace>.svc.cluster.local
, но приложение не предоставляется. Но оба они не работают вместе. Как я могу добиться обоих: предоставить один и тот же порт для обмена между репликами и предоставить один и тот же порт извне?
Комментарии:
1. вы не можете предоставить
clusterIP
доступ извне. используется только для обмена данными внутри кластера2. Я хочу предоставить службу извне, а не
clusterIP
3. тогда я всегда предлагаю сначала прочитать это …
Ответ №1:
LoadBalancer: предоставляет службу извне с помощью балансировщика нагрузки облачного провайдера. Службы NodePort и ClusterIP, к которым будет перенаправляться внешний балансировщик нагрузки, создаются автоматически.