SuperAPI AI 工具集

cert_manager

部署与运维

查看项目

更新于 10-16 05:05

技能介绍

用途:cert-manager 在 Kubernetes 中自动化 TLS 证书的完整生命周期,包括申请、验证、签发和续期,常与 Let's Encrypt 配合,使证书不会过期并减少手动维护 TLS 的工作。

主要能力:支持通过 ClusterIssuer 配置 Let's Encrypt 的 ACME 签发,使用 HTTP-01 挑战(Nginx Ingress)完成域名验证;为 Ingress 添加注解后可自动签发并写入指定 Secret;证书在到期前 30 天自动续期。也可用于内部服务通信:若不使用 Istio,可用自签或 Vault PKI 的 ClusterIssuer 实现 mTLS。

使用方式:安装命令为 kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.0/cert-manager.yaml。随后创建 ClusterIssuer(acme 服务器为 https://acme-v02.api.letsencrypt.org/directory,指定邮箱与 privateKeySecretRef,solver 使用 http01 与 ingress class nginx)。在 Ingress 上加注解 cert-manager.io/cluster-issuer: "letsencrypt-prod",并在 spec.tls 中填写 hosts 与 secretName。查看状态用 kubectl get certificates -A 和 kubectl describe certificate kyc-api-tls。

适用场景:生产 Kubernetes 集群中所有对外暴露的服务(Nginx Ingress)以及内部微服务通信(不使用 Istio 时)。

限制与注意事项:Let's Encrypt 有速率限制,测试应使用 letsencrypt-staging;集群内部域名(.svc.cluster.local)应改用 Vault PKI 管理的内部 CA;可用 Prometheus 在证书剩余不足 14 天时告警,以发现续期失败。