В чем разница между подключением по входному маршруту в ClusterIP и безголовым сервисом в Kubernetes?

#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.