直接回答:kubeadm 集群默认 CA 十年、各组件证书一年到期。过期的后果是级联的:apiserver 证书过期则全集群失控(kubectl、controller、kubelet 全连不上);kubelet 客户端证书过期则节点 NotReady;etcd 证书过期则集群数据面瘫痪。预防的核心是把“证书有效期”变成监控指标(ssl_exporter 或 kubeadm certs check-expiration 进 Prometheus),到期前 30 天告警。
展开解析:轮换路径分托管与自建。托管集群(EKS/GKE/ACK)控制面证书由厂商管,用户只关心节点与 kubeconfig。自建 kubeadm 集群:kubeadm certs renew all 重新签发控制面证书(需重启 apiserver 等静态 Pod),同时分发新的 admin.conf;kubelet 开启了 serverTLSBootstrap 与 rotate 后会自动申请轮换(需 approver 控制器批准 CSR),没开就要手动续期。第三方组件(ingress controller、metrics-server、service mesh 的 mTLS)的证书常被遗漏,cert-manager 可以把它们的签发与轮换完全自动化——这是事实标准做法。容易踩的坑:证书换了但 kubeconfig 里的 CA 未更新;多控制面节点只轮换了一台;etcd 集群证书要逐成员滚动更换且保持 quorum。面试加分:把证书轮换归入“Day 2 运维自动化”,人工日历提醒一定会在某年某天爆雷。
追问方向:CA 本身要到期了怎么办(需要双 CA 过渡)?cert-manager 的签发链路是什么?
(约 480 字)