Добавление балансировщика нагрузки (Load Balancer)

Сохраните следующую спецификацию для создания сервиса Load Balancer в YAML-файл с названием lb-service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: example-service-2
spec:
  selector:
    app: web
  ports:
    - port: 8080
      targetPort: 8080
  type: LoadBalancer
  loadbalancerIP: 192.168.0.101

Где:

  • port — порт сетевого балансировщика, на котором будут обслуживаться пользовательские запросы.

  • targetPort — порт контейнера, на котором доступно приложение.

  • selector — метки селектора, использованные в шаблоне подов при создании объекта Deployment.

  • loadbalancerIP — (опциональный праметр) IP-адресс для сервиса LoadBalancer. Для внутреннего кластера укажите IP-адрес из диапазона адресов (0.101 — 0.200), выделенных для узлов компонентов кластера (CIDR сети узлов). Для внешнего кластера по умолчанию выделяется публичный IP-адрес.

    Указать IP-адрес Load Balancer для внешнего кластера можно вручную с помощью аннотации:

    annotations:
    service.beta.kubernetes.io/sks-loadbalancer-network-type
    "cgnat"
    "internal"
    

    Где:

    cgnat — IP-адрес из диапазона 100.64.0.0/10.

    internal — IP-адрес из диапазона адресов (0.101 — 0.200), выделенных для узлов компонентов кластера (CIDR сети узлов).

Опционально, добавьте в спецификацию алгоритм балансировки. Для этого добавьте аннотацию:

annotations:
service.beta.kubernetes.io/sks-loadbalancer-algorithm: least_connection

См.также

Подробнее о Load Balancer смотрите в документации Kubernetes.