After executing the automated certmgr certificate rotation script on a vSphere Supervisor guest cluster, the etcd-server certificates (/etc/kubernetes/pki/etcd/server.crt) are not updated. The certificates retain their original expiration dates across all control plane nodes, despite the script completing successfully. Other cluster certificates may rotate as expected, isolating the failure to the etcd server certificates.
List control plane certificates for a guest cluster.
certmgr tkc certificates list my-cluster -n my-namespace
etcd-server certificate shows as expiring or expired:
/etc/kubernetes/pki/etcd/server.crt | 2026-03-05 20:36:12 +0000 UTC | false |
| | | |
The automated certmgr script contains a defect that causes it to skip or fail to target the etcd-server certificates during its automated rotation loop.
To resolve the issue, manually rotate the etcd-server certificates using kubeadm and restart the static pods. Perform these steps sequentially on one control plane node at a time.
crictl ps | grep etcdalias etcdctl='crictl exec <etcd container id from step 1> etcdctl --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key --cacert /etc/kubernetes/pki/etcd/ca.crt' etcdctl member list -w table etcdctl --cluster=true endpoint health -w table etcdctl --cluster=true endpoint status -w tablekubeadm certs check-expiration | grep etcdkubeadm certs renew etcd-serverkubeadm certs check-expiration | grep etcdcrictl stop $(crictl ps --name etcd -q)crictl ps | grep etcdalias etcdctl='crictl exec <etcd container id from step 1> etcdctl --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key --cacert /etc/kubernetes/pki/etcd/ca.crt' etcdctl member list -w table etcdctl --cluster=true endpoint health -w table etcdctl --cluster=true endpoint status -w table