cert-manager

每个集群将自动部署 cert-manager 的证书

cert-manager 是一个原生的 Kubernetes 证书管理控制器,基于 Certificate 资源自动生成和管理 TLS 证书。Kubernetes 集群中的许多组件使用 cert-manager 来管理其 TLS 证书,确保通信安全。

目录

概述

Cert-manager 通过 Kubernetes 自定义资源定义(CRD)管理证书的生命周期:

  • Certificate:定义需要管理的证书
  • Issuer/ClusterIssuer:定义证书颁发者
  • CertificateRequest:处理证书请求的内部资源

工作原理

当创建 Certificate 资源时,cert-manager 会自动:

  1. 生成私钥和证书签名请求
  2. 从指定的 Issuer 获取签发的证书
  3. 将证书和私钥存储在 Kubernetes Secret 中

此外,cert-manager 会监控证书的有效期,并在证书过期前进行续签,以确保服务的持续可用性。

识别 cert-manager 管理的证书

由 cert-manager 管理的证书对应的 Secret 资源类型为 kubernetes.io/tls,并带有特定的标签和注解。

常见标签和注解

cert-manager 管理的 Secret 资源通常包含以下标签和注解:

标签:

  • 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 备用名称

相关资源