cert-manager
В каждом кластере автоматически разворачивается Certificate для cert-manager
cert-manager — это нативный контроллер управления сертификатами Kubernetes, который автоматически генерирует и управляет TLS-сертификатами на основе ресурсов Certificate. Многие компоненты в Kubernetes-кластерах используют cert-manager для управления своими TLS-сертификатами, обеспечивая безопасное взаимодействие.
Содержание
Overview
Cert-manager управляет жизненным циклом сертификатов через Custom Resource Definitions (CRD) Kubernetes:
- Certificate: Определяет сертификаты, которые необходимо управлять
- Issuer/ClusterIssuer: Определяет издателей сертификатов
- CertificateRequest: Внутренний ресурс для обработки запросов на сертификаты
How it works
При создании ресурса Certificate cert-manager автоматически:
- Генерирует приватные ключи и запросы на подпись сертификатов
- Получает подписанные сертификаты от указанного Issuer
- Сохраняет сертификаты и приватные ключи в Kubernetes Secrets
Кроме того, cert-manager отслеживает срок действия сертификатов и обновляет их до истечения, чтобы обеспечить непрерывную доступность сервиса.
Identifying cert-manager Managed Certificates
Сертификаты, управляемые cert-manager, имеют соответствующие ресурсы Secret с типом kubernetes.io/tls и определёнными метками и аннотациями.
Common Labels and Annotations
Ресурсы 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