Ingress: объект Ingress + контроллер Ingress
Ресурс Ingress:
Точно так же, как и сервисный ресурс, за исключением того, что он ничего не делает сам по себе. Ресурс Ingress просто описывает способ маршрутизации трафика уровня 7 в ваш кластер, указывая такие вещи, как путь запроса, домен запроса и целевой сервис Kubernetes, в то время как объект сервиса фактически создает сервисы.
Контроллер входящего трафика:
Сервис, который:
1. listens on specific ports (usually 80 and 443) for web traffic
2. Listens for the creation, modification, or deletion of Ingress Resources
3. Creates internal L7 routing rules based on these Ingress Resources
Например, контроллер Nginx Ingress может использовать службу для прослушивания портов 80 и 443, а затем читать новые ресурсы Ingress и анализировать их в новых разделах сервера {}, которые он динамически помещает в свой nginx.conf.
LoadBalancer: поставщик внешнего балансировщика нагрузки + тип службы
Поставщик внешнего балансировщика нагрузки:
Поставщики внешних балансировщиков нагрузки обычно настраиваются в облаках, таких как AWS и GKE, и предоставляют способ назначения внешних IP-адресов путем создания внешних балансировщиков нагрузки. Эту функциональность можно использовать, обозначив службу как тип LoadBalancer.
Тип услуги:
Когда тип службы установлен на LoadBalancer, Kubernetes пытается создать и затем настроить внешний балансировщик нагрузки с записями для модулей Kubernetes, тем самым назначая им внешние IP-адреса.
Контроллер службы Kubernetes автоматизирует создание внешнего балансировщика нагрузки, проверки работоспособности (при необходимости), правил брандмауэра (при необходимости) и извлекает внешний IP-адрес вновь созданного или настроенного LoadBalancer, который был выделен облачным провайдером, и заполняет его в сервисный объект.
В кластере может быть установлен дополнительный облачный контроллер, которому будут назначены ресурсы службы чтения и их аннотации, чтобы автоматически развертывать и настраивать балансировщики облачной нагрузки, которые будут получать трафик для службы kubernetes.
Отношения:
Службы Ingress Controller часто предоставляются как тип LoadBalancer, поэтому запросы http и https могут быть проксированы / перенаправлены на определенные внутренние службы через внешний IP-адрес.
Однако LoadBalancer для этого не требуется. Поскольку с помощью hostNetwork или hostPort вы можете технически привязать порт на хосте к службе (что позволяет вам посещать его через внешний ip: порт хоста). Хотя официально это не рекомендуется, поскольку оно использует порты на фактическом узле.
Ссылки:
https://kubernetes.io/docs/concepts/configuration/overview/#services < / а>
https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#external-load-balancer-providers
https://kubernetes.io/docs/concepts/services-networking/ingress/ < / а>
person
yosefrow
schedule
14.03.2019