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