В настоящее время тестируется Kubernetes 1.0.7 на AWS, и он отлично создает внешний балансировщик нагрузки, но я хочу знать, возможно ли создать внутренний балансировщик нагрузки, доступный только во внутренней подсети.
Создание внутреннего балансировщика нагрузки
Ответы (3)
Не из коробки (на момент написания этой статьи), но API Kubernetes Ingress развивается для поддержки внутренних балансировщиков нагрузки. Обратите внимание на следующее:
- Службы Kubernetes по умолчанию используют циклическую балансировку нагрузки.
- Вы можете развернуть что-то вроде балансировщика нагрузки службы [1] и получить доступ к своим службам на ClusterIP модуля балансировщика нагрузки, просто удалите строку hostPort в конфигурации rc [2], чтобы не показывать их на общедоступном IP-адресе виртуальной машины.
[1] https://github.com/kubernetes/contrib/tree/master/service-loadbalancer
[2] https://github.com/kubernetes/contrib/blob/master/service-loadbalancer/rc.yaml#L35
Как упомянул Прашант, на данный момент нет встроенной поддержки, но я сделал следующее, и все работает отлично. Создал тип службы NodePort и вручную создал балансировщик нагрузки как внутренний lb и перенаправил трафик на узлы в указанном порту узла.
Внутренние ELB поддерживаются, по крайней мере, начиная с версии Kubernetes 1.2.
В этой темы примените аннотацию services.beta.kubernetes.io/aws-load-balancer-internal к определению сервиса.
kind: Service
apiVersion: v1
metadata:
name: someService
annotations:
- name: services.beta.kubernetes.io/aws-load-balancer-internal
value: 0.0.0.0/0