文章目录cert-managerKubernetes 证书管理自动化到底它到底做了什么典型用法安装方式值得注意的点社区状态cert-managerKubernetes 证书管理自动化到底在 Kubernetes 集群里管 TLS 证书手动操作基本等于定时炸弹。证书过期导致服务中断的事故运维群里隔三差五就有人发。cert-manager 这个项目就是专门解决这个问题的。它把证书的申请、续期、分发全部自动化装上之后基本不用再操心证书的事。目前这个项目在 GitHub 上有 13,873 个 Star属于 CNCF 生态里比较成熟的工具。它到底做了什么cert-manager 在 Kubernetes 里注册了两个自定义资源Certificate 和 Issuer。你声明需要什么证书、从哪个签发机构申请它帮你跑完整个流程。支持的签发源包括 Let’s EncryptACME 协议、HashiCorp Vault、CyberArk Certificate Manager也支持集群内部自签。对大多数团队来说Let’s Encrypt 免费证书加上自动续期就已经覆盖了大部分场景。证书签发之后cert-manager 会在到期前自动续期。这个时间窗口是可配置的默认值足够安全。续期完成后引用证书的 Secret 会自动更新Ingress 或其他负载均衡器读到新证书整个过程对业务透明。典型用法最常见的场景是给 Kubernetes Ingress 自动申请 TLS 证书。流程大致是这样部署 cert-manager创建一个 ClusterIssuer配置 Let’s Encrypt 的 ACME 服务器在 Ingress 的注解里指定使用哪个 Issuer完成这三步之后只要 Ingress 创建cert-manager 就会自动申请对应域名的证书并挂载到 Ingress 上。域名换一个它就再申请一个。不用手动跑 certbot不用操心证书文件放在哪里。内部服务之间的 mTLS 也能用 cert-manager 管理。配合 Venafi 或 Vault 等企业级 CA可以实现集群内所有服务的证书统一签发和轮换。安装方式cert-manager 的安装走的是标准 Helm 流程helm repo add jetstack https://charts.jetstack.io helm repo update helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --set installCRDstrue装完之后kubectl 就能看到 Certificate、Issuer、ClusterIssuer 这几个资源类型。CRD 的设计比较规范字段命名和 Kubernetes 原生资源风格一致学习成本低。也支持 kubectl apply 直接安装 YAML 清单不依赖 Helm。两种方式文档里都有说明。值得注意的点cert-manager 对 Go 模块的兼容性没有硬性保证。官方明确说了pkg/ 下的代码可能在小版本甚至补丁版本里发生破坏性变更。如果你要在自己的 Go 项目里 import cert-manager 的代码做二次开发需要注意锁定版本。这个限制不影响 Kubernetes API 层面的稳定性。Certificate、Issuer 这些 CRD 遵循 Kubernetes 的弃用策略不会有突然删字段的情况。另外cert-manager 的排查文档比较全。出了问题先看 cert-manager.io 上的 troubleshooting 指南再到 Kubernetes Slack 的 #cert-manager 频道提问响应速度还行。社区状态cert-manager 基于早期的 kube-lego 项目发展而来现在是 CNCF 的一部分。有定期的社区会议Google Group 里会发公告。项目维护比较活跃Issue 区有人在跟进PR 审核速度中规中矩。对于需要在 Kubernetes 里管理 TLS 证书的团队cert-manager 目前是最成熟的选择。它不花哨做的事情很明确把证书管理这件事从运维清单里划掉。的团队cert-manager 目前是最成熟的选择。它不花哨做的事情很明确把证书管理这件事从运维清单里划掉。