Доступно в редакциях: CE, BE, SE, SE+, EE, CSE Pro (1.67)
Модуль не включен по умолчанию в каком-либо наборе модулей.
Если модуль cni-cilium выключен, параметр ciliumHubbleEnabled: не повлияет на включение модуля cilium-hubble.
Конверсии
Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия :
- Обновление из версии 1 в 2:
Описание конверсии отсутствует.
Настройки
Чтобы настроить модуль, используйте ресурс ModuleConfig с именем cilium-hubble (подробнее о настройке Deckhouse…).
Пример ресурса ModuleConfig/cilium-hubble для настройки модуля:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: cilium-hubble
spec:
version: 2
enabled: true
settings: # <-- Параметры модуля из раздела "Параметры" ниже.
Параметры
Версия схемы: 2
- объектsettings
- объектsettings.auth
Опции, связанные с аутентификацией и авторизацией доступа к веб-интерфейсу Hubble.
- массив строкsettings.auth.allowedUserEmails
Массив адресов электронной почты, пользователям которых разрешен доступ к веб-интерфейсу.
Используется, если включен модуль
user-authnили задан параметрexternalAuthentication. - массив строкsettings.auth.allowedUserGroups
Список групп, пользователям которых разрешен доступ к веб-интерфейсу Hubble.
Используется, если включен модуль
user-authnили задан параметрexternalAuthentication. - объектsettings.auth.externalAuthentication
Параметры для подключения внешней аутентификации (используется механизм NGINX Ingress external-auth, работающий на основе модуля Nginx auth_request.
Внешняя аутентификация включается автоматически, если включен модуль user-authn.
- строкаsettings.auth.externalAuthentication.authSignInURL
URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP, отличный от 200).
Пример:
authSignInURL: https://example.com/dex/sign_in - строкаsettings.auth.externalAuthentication.authURL
URL сервиса аутентификации.
Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.
Пример:
authURL: https://example.com/dex/auth
- массив строкsettings.auth.whitelistSourceRanges
Список адресов (CIDR), которым разрешен доступ к веб-интерфейсу Hubble.
Пример:
whitelistSourceRanges: - 1.1.1.1/32
- булевыйsettings.debugLogging
Включает отладочный уровень логирования для компонентов Hubble.
По умолчанию:
false - объектsettings.https
Тип используемого сертификата.
При использовании этого параметра полностью переопределяются глобальные настройки
global.modules.https.Примеры:
https: mode: Disabledhttps: mode: OnlyInURIhttps: mode: CustomCertificate customCertificate: secretName: foobarhttps: mode: CertManager certManager: clusterIssuerName: letsencrypt- объектsettings.https.certManager
Настройки для certmanager.
- строкаsettings.https.certManager.clusterIssuerName
Тип ClusterIssuer, используемого для заказа SSL-сертификата. В данный момент доступны
letsencrypt,letsencrypt-staging,selfsigned, но вы можете определить свои.По умолчанию:
letsencryptПримеры:
clusterIssuerName: letsencryptclusterIssuerName: letsencrypt-stagingclusterIssuerName: selfsigned
- объектsettings.https.customCertificate
Настройки для использования пользовательского сертификата.
- строкаsettings.https.customCertificate.secretName
Имя Secret в пространстве имен
d8-system, который будет использоваться для веб-интерфейса Hubble.Secret должен быть в формате kubernetes.io/tls.
- строкаsettings.https.mode
Режимы работы HTTPS:
CertManager— доступ по HTTPS с заказом сертификата согласно ClusterIssuer, заданному в параметреcertManager.clusterIssuerName.CustomCertificate— доступ по HTTPS с использованием сертификата из пространства именd8-system.Disabled— доступ только по HTTP.OnlyInURI— доступ по HTTP с внешним HTTPS-балансировщиком. Балансировщик терминирует HTTPS, и все ссылки вuser-authnбудут генерироваться с HTTPS-схемой. Балансировщик должен обеспечивать перенаправление с HTTP на HTTPS.
По умолчанию:
CertManagerДопустимые значения:
Disabled,CertManager,CustomCertificate,OnlyInURI
- строкаsettings.ingressClass
Класс Ingress-контроллера, который используется для Hubble.
Опциональный параметр, по умолчанию используется глобальное значение
modules.ingressClass.Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ - объектsettings.nodeSelector
Структура, аналогичная
spec.nodeSelectorпода Kubernetes.Если значение не указано или указано
false, то Deckhouse попытается вычислить значениеnodeSelectorавтоматически. - массив объектовsettings.tolerations
Структура, аналогичная
spec.tolerationsпода Kubernetes.Если значение не указано или указано
false, то Deckhouse попытается вычислить значениеtolerationsавтоматически.- строкаsettings.tolerations.effect
- строкаsettings.tolerations.key
- строкаsettings.tolerations.operator
- целочисленныйsettings.tolerations.tolerationSeconds
- строкаsettings.tolerations.value
Аутентификация
По умолчанию используется модуль user-authn. Также можно настроить аутентификацию через externalAuthentication.
Если эти варианты отключены, модуль включит базовую аутентификацию со сгенерированным паролем.
Чтобы просмотреть сгенерированный пароль, выполните команду:
d8 k -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module values cilium-hubble -o json | jq '.ciliumHubble.internal.auth.password'
Чтобы сгенерировать новый пароль, удалите Secret:
d8 k -n d8-cni-cilium delete secret/hubble-basic-auth
Параметр auth.password больше не поддерживается.