Модуль управления сетями кластера (shturval-networking)

О сервисе

Параметр Значение
Название в интерфейсе Модуль управления сетями кластера
Системное название (идентификатор) shturval-networking
Назначение в кластере Сетевое взаимодействие между контейнерами, подами, узлами и сервисами; CNI-плагин для кластера.
Критический Да
Публичный репозиторий Cilium
Зависимости shturval-monitoring-crds
Неймспейс kube-system

Назначение

shturval-networking — модуль управления сетями кластера на базе Cilium CNI. Обеспечивает сетевую функциональность и взаимодействие между компонентами кластера. При совместном использовании с Multus CNI (shturval-metacni) может потребоваться ShturvalServicePatch с cni.exclusive: false.

Развёртывание и управление

shturval-networking — критический сервис платформы. В платформе «Штурвал» его включение и жизненный цикл в кластере обеспечивает cluster-manager (сервис платформы); объекты ShturvalServiceConfig (SSC) для Cilium создаются и сопровождаются как часть платформенной конфигурации. В поставке модуль опирается на CRD мониторинга: в кластере должен быть учтён компонент shturval-monitoring-crds (см. зависимости в таблице выше).

Рекомендация: не правьте ShturvalServiceConfig вручную для смены параметров Cilium, Hubble и режима cni.exclusive — объект относится к платформенной конфигурации и может быть перезаписан при обновлениях. Изменения вносите через ShturvalServicePatch (SSP), как в примерах ниже на этой странице (Multus, Hubble).

Где настраивать

Сервисы и репозиторииУстановленные сервисы → shturval-networking → Управлять.

Совместное использование с Multus CNI

При одновременном использовании Cilium CNI (shturval-networking) и Multus CNI (shturval-metacni) необходимо применить ShturvalServicePatch с cni.exclusive: false:

ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  name: shturval-networking-cni
spec:
  shturvalServiceConfigName: shturval-networking
  customvalues:
    cni:
      exclusive: false

После применения ShturvalServicePatch перейдите в Установленные сервисы → shturval-networking → Управлять. На вкладке Примененные ShturvalServicePatch отобразится загруженный патч; когда он будет применён, на вкладке Сервис статус изменится на Patched.

Скриншоты применения патча

Импорт ShturvalServicePatch для настройки Cilium Страница сервиса shturval-networking Примененный ShturvalServicePatch для shturval-networking

Cilium Hubble

Hubble обеспечивает наблюдение за сетевым взаимодействием между компонентами кластера. Для включения Hubble примените ShturvalServicePatch:

ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  name: shturval-networking-hubble
spec:
  shturvalServiceConfigName: shturval-networking
  customvalues:
    hubble:
      enabled: true
      relay:
        enabled: true
      ui:
        enabled: true

Для временного проброса порта к UI Hubble выполните команду:

kubectl -n kube-system port-forward services/hubble-ui 12000:80

Hubble UI будет доступен по адресу: http://127.0.0.1:12000

Скриншоты настройки Hubble

Импорт ShturvalServicePatch для включения Hubble Hubble в составе shturval-networking Примененный ShturvalServicePatch для shturval-networking

Контроллер Gateway API в Cilium

CRD Gateway API поставляет CRD Gateway API, но не обрабатывает трафик. Для маршрутизации необходим контроллер, связанный с GatewayClass. В платформе «Штурвал» вы можете включить контроллер Gateway API на базе Cilium io.cilium/gateway-controller.

Для включения контроллера в кластере примените ShturvalServicePatch:

ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  name: shturval-networking-cilium
spec:
  customvalues:
    gatewayAPI:
      enabled: true
  shturvalServiceConfigName: shturval-networking

После применения ShturvalServicePatch перейдите в Установленные сервисы → shturval-networking → Управлять. На вкладке Примененные ShturvalServicePatch отобразится загруженный ShturvalServicePatch. Когда он будет применён, Cilium развернёт контроллер Gateway API и создаст соответствующий GatewayClass с именем cilium.

Для выделения адресов Gateway создайте ресурс с пулом IP-адресов CiliumLoadBalancerIPPool или настройте CIDR или диапазон IP-адресов в ConfigMap kubevip — см. подробнее в разделе Конфигурация доступных IP-адресов.

Пример CiliumLoadBalancerIPPool:

apiVersion: "cilium.io/v2"
kind: CiliumLoadBalancerIPPool
metadata:
  name: pool
spec:
  blocks:
    - cidr: "192.168.0.216/29"

Дополнительно