В Docker Swarm лидер принимает решения о том, как планировать контейнеры в ваших узлах и как настроить их так, чтобы трафик переадресовывался на них.Тем не менее, трафик идет не к самому лидеру, а к сетевому входу Docker / сетке сети
Это делается через командную строку с помощью:
$ docker service create \
--name <SERVICE-NAME> \
--publish published=8080,target=80 \
<IMAGE>
Тогда все ваши узлы получат трафик на опубликованный порт и будут перенаправлены в контейнеры.
В приведенном выше примере отВнешний балансировщик нагрузки позволяет перенаправлять трафик либо на порт 80
(порт, открытый для контейнера), либо на порт 8080
(опубликовано)
Kubernetes очень похож, но не совсем одинаков. Сервисы предоставляются извне через LoadBalancer или NodePort .Однако вы не можете получить прямой доступ к IP-адресам модуля снаружи, так как они не видны снаружи, в отличие от 192.168.99.100:80
в приведенном выше примере с роем Docker.Кроме того, трафик в Kubernetes проходит не через мастер (кроме случаев, когда вы звоните на kube-apiserver), а напрямую через узлы.