Тип сервиса LoadBalancer
- это внешний источник, предоставляемый вашим облаком и НЕ входящий в кластер Kubernetes. Они могут переадресовать запрос на ваши модули, используя селектор узлов, но вы не можете, например, создать правила пути или перенаправить, переписать, потому что это обеспечивается Ingress.
Сервис - это абстракция, которая определяет логический набор модулей и политику доступа к ним (иногда этот шаблон называется микросервисом). Набор модулей, предназначенных для службы, обычно определяется селектором (см. Ниже, почему вам может потребоваться служба без селектора).
Internet
|
[ LoadBalancer ]
--|-----|--
[ Services ]
--| |--
[ Pod1 ] [ Pod2 ]
Когда вы используете Ingress , является компонентным контроллером входного контроллера, который в основном является модулем, настроенным для обработки определенных вами правил. Чтобы использовать вход, вам нужно настроить службу для вашего пути, и тогда эта служба достигнет модулей с селекторами конфигурации. Вы можете настроить некоторые правила на основе пути, имени хоста и их перенаправления для нужной вам службы. Например:
Internet
|
[ Ingress ]
--|-----|--
[ Services ]
--| |--
[ Pod1 ] [ Pod2 ]
Вход предоставляет маршруты HTTP и HTTPS извне кластера для служб внутри кластера. Маршрутизация Traffi c контролируется правилами, определенными на ресурсе Ingress.
В этой статье есть хорошее объяснение всех способов предоставления вашего сервиса.
readnessProbe настроен в ваших спецификациях модуля / развертывания, а kubelet отвечает за оценку работоспособности вашего контейнера.
Kubelet использует датчики готовности, чтобы узнать, когда Контейнер готов начать принимать трафик c. Стручок считается готовым, когда все его контейнеры готовы. Одним из применений этого сигнала является управление тем, какие Бобы используются в качестве бэкэндов для Сервисов. Когда модуль не готов, он удаляется из сервисных балансировщиков нагрузки.
kube-proxy отвечает за выполнение запроса на модули.
Например, если у вас есть 2 модуля в разных узлах, kube-proxy будет обрабатывать правила брандмауэра (iptables) и распределять трафик c между вашими узлами. На каждом узле в вашем кластере запущен kube-proxy.
kube-proxy можно настроить тремя способами: режим пользовательского пространства , режим iptables и ipvs mode .
Если kube-proxy работает в режиме iptables, а первый выбранный Pod не отвечает, соединение не устанавливается. Это отличается от режима пользовательского пространства: в этом случае kube-proxy обнаружит, что соединение с первым модулем не удалось, и автоматически выполнит попытку с другим модулем внутреннего интерфейса.
Ссылки:
https://kubernetes.io/docs/concepts/services-networking/service/
https://kubernetes.io/docs/concepts/services-networking/ingress/