#kubernetes #kubernetes-ingress #kubernetes-service
#kubernetes #kubernetes-вход #kubernetes-сервис
Вопрос:
Я знаю основную концепцию сервисов ClusterIP
and Headless
.
Я думаю, что ключевым отличием является ClusterIP
какая-то балансировка нагрузки между базовыми модулями путем применения некоторых правил iptable.
Затем Headless
просто список IP-адресов модулей, зарегистрированных в DNS.
И мой вопрос в том, если ClusterIP
выполняется задание «балансировка нагрузки», означает ли это, что контроллер входа просто выполняет маршрутизацию, но не балансировку нагрузки?
Что, если я использую Headless
в качестве типа сервиса, могу ли я настроить контроллер входа и позволить ему выполнять задание балансировки нагрузки?
Спасибо.
Комментарии:
1. проверьте это dev.to/kaoskater08 /…
Ответ №1:
Сервис выполняет сопоставление со всеми зарегистрированными в нем модулями с помощью меток селектора, и для отправки трафика в любой из модулей требуется просто связаться только с этой службой, и она выберет некоторый модуль для маршрутизации запроса, в то время как безголовый сервис не имеет ничего подобного ClusterIP, поэтому он использует только IP Pod, возможность осуществлять прямую связь с модулями.
Допустим, у вас развернут набор брокеров Kafka, и вы хотите получить информацию о теме, находящейся в одном брокере, тогда, вероятно, вы можете сделать это через безголовый сервис.
Теперь, чтобы эти модули могли взаимодействовать с внешним миром, они должны быть доступны на уровне балансировки нагрузки, здесь играет роль ingress, которая сопоставляет URL домена с серверными службами, и только служба ingress доступна на уровне балансировки нагрузки, остальные остаются под капотом.
Преимущество этого в том, что вы можете присоединять правила брандмауэра к ingress, можно выполнять перезапись URL-адресов, могут быть реализованы липкие сеансы, т.Е. В то время как сервисы не могут предлагать такие вещи.
Ответ №2:
И мой вопрос в том, если ClusterIP выполняет задание «балансировки нагрузки», означает ли это, что контроллер входа просто выполняет маршрутизацию, но не балансировку нагрузки?
AFAIK, Ingress
выставляет определенные Services
и направляет внешние запросы нескольким Services
. Обычно он интегрируется с уровнями балансировки нагрузки для обработки внешних запросов, но это не только для балансировки нагрузки.
Что, если я использую Headless в качестве типа сервиса, могу ли я настроить контроллер входа и позволить ему выполнять балансировку нагрузки?
В случае использования Headless
, он предназначен для самоуправляемого приложения для балансировки нагрузки и управления транзакциями. Иногда clusterIP
балансировка нагрузки в Kubernetes не подходит для приложения или промежуточного программного обеспечения, которые уже имеют свои собственные функции с теми же функциями.
Комментарии:
1. Что, если существует только одна служба, контроллер входа по-прежнему выполняет балансировку нагрузки на уровне pod? Я спрашиваю об этом, потому что при использовании
ClusterIP
контроллер входа должен знать только один IP-адрес, который генерируется K8s и балансируется нагрузкой K8s.