Как включить Hubble UI

Hubble UI в платформе на базе Cilium.

Введение

Hubble обеспечивает наблюдение за сетевым взаимодействием между компонентами кластера и сетевой инфраструктурой. В платформе «Штурвал» сеть обеспечивается Модулем управления сетями кластера (shturval-networking, Cilium CNI).


Включение Hubble

Для включения Hubble загрузите в кластер ShturvalServicePatch (SSP) для Модуля управления сетями кластера (shturval-networking). Параметры настройки отличаются в зависимости от контура.

В открытом контуре образ 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

Применение в закрытом контуре 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 из зеркала поставки string тег из зеркала поставки
hubble.relay.image.useDigest Не использовать digest из чарта: SHA-256 образа в чарте и в зеркале различаются boolean false
hubble.ui.ingress.className Имя Ingress Class для публикации Hubble UI string nginx
hubble.ui.ingress.annotations Аннотации Ingress. Для сертификата укажите ClusterIssuer cert-manager object cert-manager.io/cluster-issuer: <имя ClusterIssuer>
hubble.ui.ingress.hosts DNS-имя Hubble UI array hubble-ui.example.com
hubble.ui.ingress.tls.secretName Имя TLS-секрета string hubble-ui-tls
hubble.ui.ingress.tls.hosts Имена хостов в секции TLS array hubble-ui.example.com

Загрузите манифест через импорт манифестов в интерфейсе кластера (см. скриншот ниже).

Импорт манифеста

Загрузка ShturvalServicePatch для Hubble


Проверка применения патча

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

Иллюстрация: Проверка применения патча

Страница сервиса shturval-networking с Hubble

Иллюстрация: Проверка применения патча

Применённый ShturvalServicePatch


Доступ к Hubble UI

Чтобы временно прокинуть порт со своей рабочей станции до UI Hubble, в CLI введите команду:

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

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

С дополнительной информацией можно ознакомиться на официальном сайте Cilium.