Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Node Config Operator. Операции с узлами

Пользователь может создать любое количество конфигураций NodeConfig. Для применения NodeConfig к узлу кластера необходимо, чтобы метки (labels) ресурса NodeConfig и соответствующего Node совпадали. Каждый объект NodeConfig содержит блок spec.xConfigs, в котором описываются параметры конфигурации различных подсистем.

Добавление новых конфигураций

Для добавления конфигурации из примеров ниже создайте новый манифест при помощи кнопки + в верхнем углу экрана.

node-config-operator

После добавления манифеста примените его.

node-config-operator

Далее перечислены примеры конфигураций:

  • Настройка 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 сертификатов.