Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.

Стадия жизненного цикла модуля: General Availability

ControlPlaneNode

Short names: cpn

Scope: Namespaced
Version: v1alpha1

Описывает желаемое и наблюдаемое состояние компонентов control plane на конкретном узле: etcd, kube-apiserver, kube-controller-manager, kube-scheduler.

Ресурс создаётся и обновляется модулем control-plane-manager автоматически. Создавать и редактировать его вручную не требуется.

Используется для диагностики состояния control plane на узле:

  • колонки ETCD, APISERVER, CONTROLLERMANAGER, SCHEDULER (kubectl get cpn) показывают готовность каждого компонента;
  • колонка CERTIFICATES показывает общее состояние сертификатов;
  • spec.components содержит ожидаемые отпечатки конфигурации, status.components — фактически применённые.
  • apiVersion
    строка
  • kind
    строка
  • metadata
    объект
  • spec
    объект

    Желаемое состояние компонентов control plane на узле.

    • spec.caChecksum
      строка

      Контрольная сумма секрета d8-pki с CA-сертификатами, которая должна быть применена ко всем компонентам узла.

    • spec.components
      объект

      Содержит ожидаемые контрольные суммы конфигурации и PKI для каждого компонента control plane.

      Если значение в spec.components.<component>.checksums отличается от соответствующего значения в status.components.<component>.checksums, модуль запускает операцию ControlPlaneOperation, чтобы привести компонент к желаемому состоянию.

      • spec.components.etcd
        объект

        Желаемое состояние компонента etcd.

        • spec.components.etcd.checksums
          объект

          Ожидаемые контрольные суммы компонента.

          • spec.components.etcd.checksums.ca
            строка

            Контрольная сумма CA-сертификатов, применённых к компоненту.

          • spec.components.etcd.checksums.config
            строка

            Контрольная сумма манифеста статического пода компонента и связанных конфигурационных файлов.

          • spec.components.etcd.checksums.pki
            строка

            Контрольная сумма PKI-настроек компонента (certSANs, encryption-algorithm).

      • spec.components.kube-apiserver
        объект

        Желаемое состояние компонента kube-apiserver.

        • spec.components.kube-apiserver.checksums
          объект

          Ожидаемые контрольные суммы компонента.

          • spec.components.kube-apiserver.checksums.ca
            строка

            Контрольная сумма CA-сертификатов, применённых к компоненту.

          • spec.components.kube-apiserver.checksums.config
            строка

            Контрольная сумма манифеста статического пода компонента и связанных конфигурационных файлов.

          • spec.components.kube-apiserver.checksums.pki
            строка

            Контрольная сумма PKI-настроек компонента (certSANs, encryption-algorithm).

      • spec.components.kube-controller-manager
        объект

        Желаемое состояние компонента kube-controller-manager.

        • spec.components.kube-controller-manager.checksums
          объект

          Ожидаемые контрольные суммы компонента.

          • spec.components.kube-controller-manager.checksums.ca
            строка

            Контрольная сумма CA-сертификатов, применённых к компоненту.

          • spec.components.kube-controller-manager.checksums.config
            строка

            Контрольная сумма манифеста статического пода компонента и связанных конфигурационных файлов.

          • spec.components.kube-controller-manager.checksums.pki
            строка

            Контрольная сумма PKI-настроек компонента (certSANs, encryption-algorithm).

      • spec.components.kube-scheduler
        объект

        Желаемое состояние компонента kube-scheduler.

        • spec.components.kube-scheduler.checksums
          объект

          Ожидаемые контрольные суммы компонента.

          • spec.components.kube-scheduler.checksums.ca
            строка

            Контрольная сумма CA-сертификатов, применённых к компоненту.

          • spec.components.kube-scheduler.checksums.config
            строка

            Контрольная сумма манифеста статического пода компонента и связанных конфигурационных файлов.

          • spec.components.kube-scheduler.checksums.pki
            строка

            Контрольная сумма PKI-настроек компонента (certSANs, encryption-algorithm).

  • status
    объект

    Наблюдаемое состояние компонентов control plane на узле.

    • status.caChecksum
      строка

      Фактически применённая контрольная сумма CA-сертификатов.

    • status.components
      объект

      Наблюдаемое состояние каждого компонента: применённые контрольные суммы и сроки действия сертификатов.

      • status.components.etcd
        объект

        Наблюдаемое состояние компонента etcd.

        • status.components.etcd.certificatesExpirationTime
          объект

          Срок действия сертификатов компонента в формате «имя файла сертификата → время истечения (NotAfter)».

          Заполняется на этапе CertObserve.

        • status.components.etcd.checksums
          объект

          Применённые контрольные суммы компонента.

          • status.components.etcd.checksums.ca
            строка

            Применённая контрольная сумма CA-сертификатов компонента.

          • status.components.etcd.checksums.config
            строка

            Применённая контрольная сумма манифеста статического пода компонента и связанных конфигурационных файлов.

          • status.components.etcd.checksums.pki
            строка

            Применённая контрольная сумма PKI-настроек.

        • status.components.etcd.lastCertObserveTime
          строка

          Время последнего успешного выполнения этапа CertObserve для компонента.

      • status.components.kube-apiserver
        объект

        Наблюдаемое состояние компонента kube-apiserver.

        • status.components.kube-apiserver.certificatesExpirationTime
          объект

          Срок действия сертификатов компонента в формате «имя файла сертификата → время истечения (NotAfter)».

          Заполняется на этапе CertObserve.

        • status.components.kube-apiserver.checksums
          объект

          Применённые контрольные суммы компонента.

          • status.components.kube-apiserver.checksums.ca
            строка

            Применённая контрольная сумма CA-сертификатов компонента.

          • status.components.kube-apiserver.checksums.config
            строка

            Применённая контрольная сумма манифеста статического пода компонента и связанных конфигурационных файлов.

          • status.components.kube-apiserver.checksums.pki
            строка

            Применённая контрольная сумма PKI-настроек.

        • status.components.kube-apiserver.lastCertObserveTime
          строка

          Время последнего успешного выполнения этапа CertObserve для компонента.

      • status.components.kube-controller-manager
        объект

        Наблюдаемое состояние компонента kube-controller-manager.

        • status.components.kube-controller-manager.certificatesExpirationTime
          объект

          Срок действия сертификатов компонента в формате «имя файла сертификата → время истечения (NotAfter)».

          Заполняется на этапе CertObserve.

        • status.components.kube-controller-manager.checksums
          объект

          Применённые контрольные суммы компонента.

          • status.components.kube-controller-manager.checksums.ca
            строка

            Применённая контрольная сумма CA-сертификатов компонента.

          • status.components.kube-controller-manager.checksums.config
            строка

            Применённая контрольная сумма манифеста статического пода компонента и связанных конфигурационных файлов.

          • status.components.kube-controller-manager.checksums.pki
            строка

            Применённая контрольная сумма PKI-настроек.

        • status.components.kube-controller-manager.lastCertObserveTime
          строка

          Время последнего успешного выполнения этапа CertObserve для компонента.

      • status.components.kube-scheduler
        объект

        Наблюдаемое состояние компонента kube-scheduler.

        • status.components.kube-scheduler.certificatesExpirationTime
          объект

          Срок действия сертификатов компонента в формате «имя файла сертификата → время истечения (NotAfter)».

          Заполняется на этапе CertObserve.

        • status.components.kube-scheduler.checksums
          объект

          Применённые контрольные суммы компонента.

          • status.components.kube-scheduler.checksums.ca
            строка

            Применённая контрольная сумма CA-сертификатов компонента.

          • status.components.kube-scheduler.checksums.config
            строка

            Применённая контрольная сумма манифеста статического пода компонента и связанных конфигурационных файлов.

          • status.components.kube-scheduler.checksums.pki
            строка

            Применённая контрольная сумма PKI-настроек.

        • status.components.kube-scheduler.lastCertObserveTime
          строка

          Время последнего успешного выполнения этапа CertObserve для компонента.

    • status.conditions
      массив объектов

      Список условий, отражающих готовность компонентов control plane на узле.

      Возможные типы условий:

      • EtcdReady — etcd на узле работает и принимает запросы (колонка ETCD);
      • APIServerReady — kube-apiserver работает и принимает запросы (колонка APISERVER);
      • ControllerManagerReady — kube-controller-manager работает (колонка CONTROLLERMANAGER);
      • SchedulerReady — kube-scheduler работает (колонка SCHEDULER);
      • CertificatesHealthy — все сертификаты компонентов узла действительны и до истечения остаётся достаточно времени (колонка CERTIFICATES).

      Если значение status равно False, причину сбоя можно посмотреть в полях reason и message.

      • status.conditions.lastTransitionTime
        строка

        Обязательный параметр

        Время последнего изменения статуса условия.

      • status.conditions.message
        строка

        Обязательный параметр

        Человекочитаемое описание текущего состояния условия.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный

        Значение .metadata.generation, для которого было рассчитано условие.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка

        Обязательный параметр

        Машиночитаемая причина текущего состояния условия.

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

        Длина: 1..1024

      • status.conditions.status
        строка

        Обязательный параметр

        Статус условия.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка

        Обязательный параметр

        Тип условия в CamelCase или в формате foo.example.com/CamelCase.

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

        Максимальная длина: 316

ControlPlaneOperation

Short names: cpo

Scope: Namespaced
Version: v1alpha1

Описывает операцию обновления компонента control plane на конкретном узле — например, перевыпуск сертификатов или применение нового манифеста.

Ресурс создаётся и обновляется модулем control-plane-manager автоматически. Создавать и редактировать его вручную не требуется.

Используется для диагностики: показывает, какая операция выполняется на узле, на каком этапе и завершилась ли она успешно (см. колонки Phase и CurrentStep при kubectl get cpo).

  • apiVersion
    строка
  • kind
    строка
  • metadata
    объект
  • spec
    объект

    Желаемое состояние операции.

    • spec.approved
      булевый

      Обязательный параметр

      Признак того, что операцию разрешено выполнять.

      Одновременно на одном узле может выполняться только одна подтверждённая операция. Подтверждение проставляется модулем автоматически с учётом текущей конфигурации control plane.

      По умолчанию: false

    • spec.component
      строка

      Обязательный параметр

      Компонент control plane, к которому относится операция.

      Допустимые значения: Etcd, KubeAPIServer, KubeControllerManager, KubeScheduler

    • spec.desiredCaChecksum
      строка

      Ожидаемая контрольная сумма CA-сертификатов после завершения операции.

      Заполняется только для этапов, обновляющих корневой CA-сертификат (SyncCA и другие связанные).

    • spec.desiredConfigChecksum
      строка

      Ожидаемая контрольная сумма конфигурации компонента (манифест статического пода и сопутствующие файлы) после завершения операции.

      Используется для подтверждения того, что операция действительно применила нужную конфигурацию. После перезагрузки пода контрольная сумма в ControlPlaneNode.status должна совпасть с этим значением.

    • spec.desiredPkiChecksum
      строка

      Ожидаемая контрольная сумма PKI-настроек компонента (certSANs, encryption-algorithm) после завершения операции.

      Заполняется только для этапов, изменяющих PKI (RenewPKICerts и другие связанные).

    • spec.nodeName
      строка

      Обязательный параметр

      Имя узла control plane, на котором должна быть выполнена операция.

    • spec.steps
      массив строк

      Обязательный параметр

      Упорядоченный список этапов, которые должны быть выполнены в рамках операции.

      Возможные значения:

      • Backup — резервное копирование текущей конфигурации компонента (манифест статического пода, связанные конфигурационные файлы) перед изменениями в папку /etc/kubernetes/deckhouse/backup;
      • SyncCA — синхронизация CA-сертификатов (ca.crt, ca.key) с актуальной версией секрета d8-pki;
      • RenewPKICerts — перевыпуск сертификатов компонента (server, peer, client);
      • RenewKubeconfigs — перевыпуск kubeconfig-файлов, с помощью которых компонент аутентифицируется в API;
      • SyncManifests — обновление манифеста статического пода и сопутствующих файлов (/etc/kubernetes/manifests, связанные конфигурационные файлы) а так же фиксация изменений сопутствующих файлов в папку /etc/kubernetes/deckhouse/diffs;
      • JoinEtcdCluster — присоединение нового члена к etcd-кластеру;
      • WaitPodReady — ожидание готовности статического пода после перезагрузки;
      • CertObserve — сбор данных о текущих сроках действия сертификатов компонента и их публикация в status.observedState.
      • RenewSignature — перевыпуск ключа подписи для kube-apiserver (CSE).
      • Элемент массива
        строка

        Имя этапа операции.

        Допустимые значения: Backup, SyncCA, RenewPKICerts, RenewKubeconfigs, SyncManifests, JoinEtcdCluster, DefragEtcd, WaitPodReady, CertObserve, RenewSignature

  • status
    объект

    Наблюдаемое состояние операции.

    • status.conditions
      массив объектов

      Список условий, отражающих ход выполнения операции.

      Главное условие — Completed. Его поле reason выводится в колонку Phase при kubectl get cpo:

      • InProgress — операция выполняется. Имя текущего этапа можно увидеть в колонке CurrentStep;
      • Succeeded — операция успешно завершена;
      • Failed — операция завершилась с ошибкой; подробности — в поле message.
      • status.conditions.lastTransitionTime
        строка

        Обязательный параметр

        Время последнего изменения статуса условия.

      • status.conditions.message
        строка

        Обязательный параметр

        Человекочитаемое описание текущего состояния. При ошибке здесь будет текст последней ошибки этапа.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный

        Значение .metadata.generation, для которого было рассчитано условие.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка

        Обязательный параметр

        Машиночитаемая причина текущего значения условия (например, InProgress, Succeeded, Failed).

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

        Длина: 1..1024

      • status.conditions.status
        строка

        Обязательный параметр

        Статус условия.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка

        Обязательный параметр

        Тип условия.

        Помимо общего Completed для каждого выполненного этапа создаётся отдельное условие с именем этапа (например, RenewPKICerts, SyncManifests).

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

        Максимальная длина: 316

    • status.observedState
      объект

      Состояние компонента, наблюдаемое на этапе CertObserve.

      Заполняется только для статических подов компонентов (etcd, kube-apiserver, kube-controller-manager, kube-scheduler).

      • status.observedState.certificatesExpirationTime
        объект

        Срок действия сертификатов компонента в формате «имя файла сертификата → время истечения (NotAfter)».

        Используется модулем для своевременного перевыпуска сертификатов и для алертов.

KubeSchedulerWebhookConfiguration

Scope: Cluster
Version: v1alpha1

Определяет конфигурацию внешнего вебхука планировщика (kube-scheduler).

Подключение внешнего вебхука к планировщику позволяет расширить возможности планировщика, и учитывать более сложные условия при планировании нагрузки в кластере.

  • webhooks
    массив объектов

    Обязательный параметр

    • webhooks.clientConfig
      объект

      Обязательный параметр

      ClientConfig определяет параметры доступа к вебхуку.

      • webhooks.clientConfig.caBundle
        строка

        Обязательный параметр

        caBundle - это пакет CA в PEM-кодировке, который будет использоваться для проверки сертификата сервера webhook.

        Шаблон: ^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{4}|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}={2})$

      • webhooks.clientConfig.service
        объект

        Обязательный параметр

        Параметры доступа к вебхуку через сервис в кластере.

        • webhooks.clientConfig.service.name
          строка

          Обязательный параметр

          Имя сервиса.

          Шаблон: ^[0-9a-z\-]+$

          Длина: 1..255

        • webhooks.clientConfig.service.namespace
          строка

          Обязательный параметр

          Namespace сервиса.

          Шаблон: ^[0-9a-z\-]+$

          Длина: 1..255

        • webhooks.clientConfig.service.path
          строка

          Обязательный параметр

          URI путь.

          Шаблон: ^[0-9a-zA-Z._\/-]+$

          Длина: 1..255

        • webhooks.clientConfig.service.port
          целочисленный

          Обязательный параметр

          Порт сервиса.

          Допустимые значения: 1 <= X <= 65535

    • webhooks.failurePolicy
      строка

      Политика реакции на событие, если вебхук вернул ошибку или недоступен:

      • Fail — падать с ошибкой;
      • Ignore — пропускать (игнорировать).

      По умолчанию: Fail

      Допустимые значения: Fail, Ignore

    • webhooks.filterVerb
      строка

      Verb, который добавляется к URLPrefix при выполнении вызова filter к расширению планировщика (scheduler extender). Если значение не задано, используется filter(для обратной совместимости, без необходимости не менять). Укажите пустую строку "", чтобы отключить вызовы filter для этого расширения.

    • webhooks.preemptVerb
      строка

      Verb, который добавляется к URLPrefix при выполнении вызова preempt к расширению планировщика (scheduler extender). Оставьте пустую строку "", если не нужно выполнять вызовы preempt для этого расширения.

    • webhooks.prioritizeVerb
      строка

      Verb, который добавляется к URLPrefix при выполнении вызова prioritize к расширению планировщика (scheduler extender). Если значение не задано, используется prioritize(для обратной совместимости, без необходимости не менять). Укажите пустую строку "", чтобы отключить вызовы prioritize для этого расширения.

    • webhooks.timeoutSeconds
      целочисленный

      Таймаут срабатывания вебхука.

      По умолчанию: 10

      Допустимые значения: 1 <= X <= 60

    • webhooks.weight
      целочисленный

      Обязательный параметр

      Числовой множитель для оценок узла, которые генерирует вызов расчета приоритезации.

      Допустимые значения: 1 <= X