Модуль управления сетями кластера (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.
Скриншоты применения патча

Cilium Hubble
Hubble обеспечивает наблюдение за сетевым взаимодействием между компонентами кластера. Для включения примените ShturvalServicePatch (SSP). Параметры настройки отличаются в зависимости от контура.
В открытом контуре образ hubble-relay подставляется по digest из чарта. Включите Hubble, Relay и UI:
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
SHA-256 образа hubble-relay в открытом контуре и закрытом контуре различаются. Применение SSP в закрытом контуре, в котором Hubble включён только флагами enabled, завершиться ошибкой. В hubble.relay.image укажите тег образа из зеркала поставки и задайте useDigest: false.
Блок ingress публикует Hubble UI.
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: shturval-networking-hubble
spec:
shturvalServiceConfigName: shturval-networking
customvalues:
hubble:
enabled: true
relay:
enabled: true
image:
tag: <ваше значение>
useDigest: false
ui:
enabled: true
ingress:
enabled: true
className: <ваше значение>
annotations:
cert-manager.io/cluster-issuer: <ваше значение>
hosts:
- <ваше значение>
tls:
- secretName: <ваше значение>
hosts:
- <ваше значение>
| Параметр | Описание |
|---|---|
hubble.relay.image.tag | Тег образа hubble-relay из зеркала поставки. |
hubble.relay.image.useDigest: false | Не использовать digest из чарта: SHA-256 образа в чарте и в зеркале различаются. |
hubble.ui.ingress.className | Имя Ingress Class для публикации Hubble UI. |
hubble.ui.ingress.annotations | Аннотации Ingress. Для сертификата укажите ClusterIssuer cert-manager. |
hubble.ui.ingress.hosts | DNS-имя Hubble UI. |
hubble.ui.ingress.tls.secretName | Имя TLS-секрета. |
hubble.ui.ingress.tls.hosts | Имена хостов в секции TLS. |
Для временного проброса порта к UI Hubble выполните команду:
kubectl -n kube-system port-forward services/hubble-ui 12000:80
Hubble UI будет доступен по адресу: http://127.0.0.1:12000
Скриншоты настройки Hubble

Контроллер Gateway API в Cilium
CRD Gateway API поставляет CRD Gateway API, но не обрабатывает трафик. Для маршрутизации необходим контроллер, связанный с GatewayClass. В платформе «Штурвал» вы можете включить контроллер Gateway API на базе Cilium io.cilium/gateway-controller.
Если кластер принимает входящий трафик через Gateway API контроллер Gateway API на базе Cilium включён по умолчанию. Отдельно применять ShturvalServicePatch (SSP) не требуется. CRD модуля Gateway API входят в критически важные сервисы и устанавливаются вместе с кластером.
Если в клиентском кластере входящий трафик обрабатывается NGINX Ingress Controller, контроллер Gateway API в Cilium по умолчанию выключены. Чтобы включить его, проверьте, что установлен сервис CRD модуля Gateway API (shturval-gateway-api-crds) в неймспейсе gateway-system, и примените ShturvalServicePatch (SSP):
ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: shturval-networking-cilium
spec:
customvalues:
gatewayAPI:
enabled: true
externalTrafficPolicy: Cluster
secretsNamespace:
sync: true
shturvalServiceConfigName: shturval-networking
| Параметр | Описание |
|---|---|
externalTrafficPolicy: Cluster | Service Gateway принимает внешний трафик на узлах кластера. |
secretsNamespace.sync: true | Cilium синхронизирует TLS-секреты в свой неймспейс. |
После применения 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"
Дополнительно
- Как управлять CustomValues сервисов — применение ShturvalServicePatch.
- CRD модуля Gateway API — установка CRD Gateway API в кластер.
- Gateway API — обзор и настройка GatewayClass, Gateway и маршрутов.
- Модуль подключения нескольких сетевых интерфейсов — Multus CNI.
- Hubble UI — просмотр сетевого взаимодействия через Hubble.