Cert-manager 是一个用于自动管理 Kubernetes 集群中 SSL/TLS 证书的工具,它基于 Kubernetes CRD(Custom Resource Definition)实现,并结合了 Let’s Encrypt 等公共 CA (Certificate Authority)和 ACME 协议(Automated Certificate Management Environment)等技术来实现证书的自动化管理。
其工作原理如下:
- 用户通过创建 Kubernetes 中的 CRD 自定义资源对象来定义需要签发证书的域名、证书配置及相关信息。
- cert-manager 监听到用户创建 CRD 对象后,会根据对象内包含的信息向对应的 CA 发送签发证书的请求。
- CA 审核并签发相应的证书,并将其返回给 cert-manager。
- cert-manager 根据用户配置,将签发好的 SSL/TLS 证书保存为 Secret 对象,并将其挂载到需要使用该证书服务所在 Pod 的文件系统中。
- 服务容器可以从挂载路径中读取到 Secret 对象里面存储的 SSL/TLS 证书文件,并进行 HTTPS 加密通信。
总体而言,cert-manager 在 Kubernetes 中利用 CRD 及控制器机制来管理和维护集群内各个服务所需 SSL/TLS 证书。它可以自动化地申请、更新和分发这些证书,减少手动操作并提高安全性。同时还支持多种主流公共 CA 和 ACME 协议,可灵活适配不同场景和需求。




