检查证书是否过期

1kubeadm certs check-expiration

该命令显示 /etc/kubernetes/pki 文件夹中的客户端证书以及 kubeadm(admin.confcontroller-manager.conf 和 scheduler.conf) 使用的 kubeconfig 文件中嵌入的客户端证书的到期时间/剩余时间。

手动更新证书

  1. 在所有 Master 节点上执行证书更新命令
1kubeadm certs renew all
  1. 手动重启 Master 节点上的 Pod

由于动态证书重载目前还不被所有组件和证书支持,所有这项操作是必须的。静态 Pod 由本地 kubelet 而不是 API 服务器管理,所以 kubectl 不能用来删除或重启他们。

首先,将清单文件从 /etc/kubernetes/manifests/ 移除并等待 20 秒 (参考 KubeletConfiguration 中的 fileCheckFrequency 值)。如果 Pod 不在清单目录里,kubelet 将会终止它。 在另一个 fileCheckFrequency 周期之后将文件移回去,kubelet 可以完成 Pod 的重建,而组件的证书更新操作也得以完成。

参考资料

  1. https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#check-certificate-expiration