Балансировщики и сеть
Сервисы типа LoadBalancer, публичные IP и сетевая политика в кластере.
Обновлено
Сервис LoadBalancer
Сервис type: LoadBalancer получает публичный IP-адрес. Адрес оплачивается как внешний IP.
apiVersion: v1
kind: Service
metadata:
name: web
spec:
type: LoadBalancer
selector:
app: web
ports:
- port: 80
targetPort: 8080kubectl 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.