Node Config Operator. Операции с узлами
Пользователь может создать любое количество конфигураций NodeConfig. Для применения NodeConfig к узлу кластера необходимо, чтобы метки (labels) ресурса NodeConfig и соответствующего Node совпадали. Каждый объект NodeConfig содержит блок spec.xConfigs, в котором описываются параметры конфигурации различных подсистем.
Добавление новых конфигураций
Для добавления конфигурации из примеров ниже создайте новый манифест при помощи кнопки + в верхнем углу экрана.
После добавления манифеста примените его.
Далее перечислены примеры конфигураций:
-
Настройка Registry для Containerd. Раздел RegistryConfigs используется для задания параметров Registry в Containerd.
Пример манифеста
apiVersion: nodeconfiguration.nova-platform.io/v1alpha1 kind: NodeConfig metadata: labels: beta.kubernetes.io/os: linux annotations: node-config-operator.nova-platform.io/generated-by-controller-version: 03399f38e22f783539eef3ba12d646de node-config-operator.nova-platform.io/target-node-name: nodeconfigdevinfra1.lb name: nco-private-registry namespace: nova-node-configurations spec: registryConfigs: (1) - authConfig: (2) secretRef: nco-priv-creds (3) capabilities: (4) - pull - resolve - push headers: (5) X-Test-Header: header_value server: '<server_url>' (6) tlsConfig: (7) insecureSkipVerify: false (8) secretRef: nco-priv-tls (9)1 spec.registryConfig(тип: array of obect) - определяет желаемое состояние NodeConfig.2 spec.registryConfig.authConfig(тип: object) - параметры аутентификации.3 spec.registryConfig.authConfig.secretRef(тип: string) - ссылка на Secret с данными аутентификации.4 spec.registryConfig.capabilities(тип: array of string) - возможные значения:push,pull,resolve.5 spec.registryConfig.headers(тип: array of object) - заголовки согласно конфигурации containerd. Содержит следующие поля:-
spec.registryConfig.headers.key(тип: string) - ключ; -
spec.registryConfig.headers.value(тип: string) - значение.
6 spec.registryConfig.server(тип: string) - URL адрес.7 spec.registryConfig.tlsConfig(тип: object) - параметры TLS.8 spec.registryConfig.tlsConfig.insecureSkipVerify(тип: bool) - необязателен, если заполнен secretRef. Пропуск проверки сертификатов.9 spec.registryConfig.tlsConfig.secretRef(тип: string) - необязателен, еслиinsecureSkipVerify = true. Ссылка на Secret с приватным ключом. -
-
Пример полной настройки доступа, с использованием секрета подключения и сертификата к harbor.
Пример манифеста
apiVersion: v1 kind: Secret metadata: name: harbor-secret (1) namespace: nova-node-configurations type: Opaque data: credentials: YWRtaW46SGFyYm9yMTIzNDU= (2) --- apiVersion: v1 kind: Secret metadata: name: harbor-ca-cert (1) namespace: nova-node-configurations type: Opaque data: ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0........ (3) --- apiVersion: nodeconfiguration.nova-platform.io/v1alpha1 kind: NodeConfig metadata: labels: beta.kubernetes.io/os: linux annotations: node-config-operator.nova-platform.io/generated-by-controller-version: 03399f38e22f783539eef3ba12d646de node-config-operator.nova-platform.io/target-node-name: nodeconfigdevinfra1.lb name: nco-private-registry-harbor-orion-soft (1) namespace: nova-node-configurations spec: registryConfigs: - authConfig: secretRef: harbor-secret (4) capabilities: - pull - resolve - push headers: X-Test-Header: header_value server: "https://harbor.orion.soft" (5) tlsConfig: insecureSkipVerify: true caBundleSecretRef: harbor-ca-cert (6)1 metadata.name(тип: string) - имя объекта.2 data.credentials(тип: string) - логин и пароль в формате base64.3 data.ca.crt(тип: string) - CA-сертификат в формате base64 для проверки TLS-сертификата реестра.4 spec.registryConfigs[].authConfig.secretRef(тип: string) – ссылка на Secret (harbor-secret) с учетными данными доступа к Harbor.5 spec.registryConfigs[].server(тип: string) – URL приватного реестра Harbor (https://harbor.orion.soft).6 spec.registryConfigs[].tlsConfig.caBundleSecretRef(тип: string) – ссылка на Secret (harbor-ca-cert) с доверенным CA‑сертификатом реестра. Используется для валидации TLS‑сертификата Harbor. -
Настройка Proxy - это настройка переменных для проксирования запросов в системе и приложениях.
Возможно создание одного ресурса Proxy, который применяет на все узлы кластера.
Пример манифеста
apiVersion: nodeconfiguration.nova-platform.io/v1alpha1 kind: Proxy metadata: name: cluster spec: httpProxy: (1) server: "http://172.10.23.41" (2) port: 8080 (3) username: "username" (4) password: "password" (5) httpsProxy: (6) server: "http://172.10.23.41" (2) port: 8080 (3) username: "username" (4) password: "password" (5) noProxy: "google.com" (7) trustedCA: "" (8)1 spec.httpProxy(опционально) - является блоком конфигурации переменныхhttp_proxy,HTTP_PROXYдля ОС и приложений.2 spec.<httpProxy/httpsProxy>.server- указывается в формате<http/https>://<ip/fqdn>за указание на какой сервер и по какому протоколу делать запрос на проксирование.3 spec.<httpProxy/httpsProxy>.port- порт на который нужно проксировать запрос(на какой сервер указывается из параметраserver).4 spec.<httpProxy/httpsProxy>.username(опционально) - имя пользователя(basic auth, можно использовать только с паролем).5 spec.<httpProxy/httpsProxy>.password(опционально) - пароль (можно использовать только с именем пользователя).6 spec.httpsProxy(опционально) - является блоком конфигурации переменныхhttps_proxy,HTTPS_PROXYдля ОС и приложений.7 spec.noProxy(опционально) - указание на какие адреса/ip не нужно проксировать запросы(доступно только списком разделенным запятыми без пробела).8 spec.trustedCA(опционально) - указание в base64 формате цепочку доверенных CA сертификатов.