h3llo.cloudДокументация

Балансировщики и сеть

Сервисы типа LoadBalancer, публичные IP и сетевая политика в кластере.

Обновлено

Сервис LoadBalancer

Сервис type: LoadBalancer получает публичный IP-адрес. Адрес оплачивается как внешний IP.

apiVersion: v1
kind: Service
metadata:
  name: web
spec:
  type: LoadBalancer
  selector:
    app: web
  ports:
    - port: 80
      targetPort: 8080
kubectl get svc web   # EXTERNAL-IP — публичный адрес

Свой внешний IP

Закрепить за сервисом заранее выделенный внешний IP проекта можно аннотацией h3.io/eip-id:

metadata:
  annotations:
    h3.io/eip-id: <ID внешнего IP проекта>
  • адрес привязывается, если он свободен и принадлежит проекту; иначе в событиях сервиса появится предупреждение (EIPNotFree, EIPNotOwned, EIPNotFound);
  • смена ID переносит балансировщик на другой адрес примерно за 30 секунд;
  • после удаления сервиса адрес остаётся в проекте.
Preview

Аннотация h3.io/eip-id работает только в кластерах, размещённых в VPC проекта. Такие кластеры сейчас в режиме предварительного доступа. В остальных кластерах аннотация игнорируется, и сервис получает новый адрес.

Сетевые политики

В кластерах используется Cilium, поэтому работают стандартные NetworkPolicy Kubernetes. Сетевые потоки удобно смотреть в Hubble.

На странице