cert-manager
В каждом кластере автоматически разворачивается Certificate для cert-manager
cert-manager — это нативный контроллер управления сертификатами Kubernetes, который автоматически генерирует и управляет TLS-сертификатами на основе ресурсов Certificate. Многие компоненты в Kubernetes кластерах используют cert-manager для управления своими TLS-сертификатами, обеспечивая безопасное взаимодействие.
Содержание
ОбзорКак это работаетОпределение сертификатов, управляемых cert-managerРаспространённые метки и аннотацииСвязанные ресурсыОбзор
Cert-manager управляет жизненным циклом сертификатов через Custom Resource Definitions (CRD) Kubernetes:
- Certificate: Определяет сертификаты, которые необходимо управлять
- Issuer/ClusterIssuer: Определяет эмитентов сертификатов
- CertificateRequest: Внутренний ресурс для обработки запросов на сертификаты
Как это работает
Когда создаётся ресурс Certificate, cert-manager автоматически:
- Генерирует приватные ключи и запросы на подпись сертификата (CSR)
- Получает подписанные сертификаты от указанного Issuer
- Сохраняет сертификаты и приватные ключи в Kubernetes Secrets
Кроме того, cert-manager отслеживает срок действия сертификатов и обновляет их до истечения срока, чтобы обеспечить непрерывную доступность сервиса.
Определение сертификатов, управляемых cert-manager
Сертификаты, управляемые cert-manager, имеют соответствующие ресурсы Secret с типом kubernetes.io/tls и определёнными метками и аннотациями.
Распространённые метки и аннотации
Ресурсы Secret, управляемые cert-manager, обычно содержат следующие метки и аннотации:
Метки:
controller.cert-manager.io/fao: "true": Указывает, что этот Secret управляется cert-manager и включает фильтрацию кеша Secret контроллером.
Аннотации:
cert-manager.io/certificate-name: Имя сертификатаcert-manager.io/common-name: Общее имя сертификатаcert-manager.io/alt-names: Альтернативные имена сертификатаcert-manager.io/ip-sans: IP-адреса сертификатаcert-manager.io/issuer-kind: Тип эмитента сертификатаcert-manager.io/issuer-name: Имя эмитента сертификатаcert-manager.io/issuer-group: API-группа эмитентаcert-manager.io/uri-sans: URI Subject Alternative Names