Уточнение балансировки нагрузки Ingress - PullRequest
0 голосов
/ 11 января 2019

Я не уверен, как балансировка нагрузки работает с Ingress.
Если я правильно понимаю, что происходит на самом деле что-то вроде этого:

enter image description here

Я не вижу, как выполняется балансировка нагрузки.
Что не так в приведенной мной схеме?
Можете ли вы помочь мне исправить это?

Примечания:
- Следующий ответ говорит мне, что сам контроллер Ingress имеет тип loadbalancer: Тип службы Ingress
- Я использую добрый ClusterIP, потому что я не хочу выставлять балансировщик нагрузки внешнему миру. Следующая статья не поддерживает это утверждение, когда служба балансировки нагрузки будет предоставлена ​​службой:

https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0

enter image description here

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Кажется, первая нарисованная вами схема верна. Но я думаю, что вы запутались в терминологии. Особенно в разнице между ingress и ingress-controller.

Ingress - это тип ресурсов в k8s (например, Service, Deployment, ReplicaSet и т. Д.). Мы используем ingress, если хотим показать некоторые сервисы внешнему миру с привязкой к некоторому пути и хосту (т.е. myapp.com/api -> my-api-service).

Задача ingress-controller состоит в том, чтобы обрабатывать создание / обновление / удаление входящих ресурсов и реализовывать все функции, необходимые для входа. Под внутренним контроллером капота находится простое развертывание, представляемое как LoadBalancer или NodePort, в зависимости от того, где развернуты k8s. И контроллер изображения пересылает полученный запрос далее в один из модулей службы, который соответствует хосту и пути в некоторых из развернутых входных ресурсов.

0 голосов
/ 11 января 2019

Сервисы ClusterIP сами выполняют балансировку нагрузки. Названия могут вводить в заблуждение, так как LoadBalancer сервисы - не единственные сервисы, которые включают балансировку нагрузки - LoadBalancer на самом деле означает что-то вроде «облачного провайдера, создайте внешний балансировщик нагрузки и направьте его на этот сервис». Kubernetes ClusterIP обслуживает также балансировку нагрузки между модулями в разных узлах, используя kube-proxy . Если вы не хотите, чтобы kubernetes выполнял балансировку нагрузки, вы должны специально отключить его путем , создавая безголовую службу .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...