重新部署 Kubernetes 集群时,如何保持客户端证书有效?

When re-deploying a Kubernetes cluster, how can I keep the client certificates valid?

我们希望能够随时重新部署我们的 Kubernetes 集群,以便在一切都搞砸时采取紧急措施,或者作为升级到新 Kubernetes 版本的简便方法。我们从头开始;特别是 /etc/kubernetes 被清除了。但这迫使我们之后分发新的用户证书。但是,当前的应该仍然有效。

我们该怎么做?在 /etc/kubernetes 中存储一些文件(肯定不是全部)并将它们复制回集群?如果是这样,哪些文件?并在 kubeadm init 调用之前或之后将它们复制回去?还是使用 kubeadm 的证书相关参数之一更好?

您可以将所有证书保存在与默认目录 /etc/kubernetes/pki 不同的目录中。您在 运行 kubeadm init 之前这样做。现在 运行 kubeadm init 通过 --cert-dir 标志或 kubeadm 的 ClusterConfiguration 的 certificatesDir 字段指定该目录。

另一种选择是通过在 kubeadm init 中指定 --skip-phases=certs,kubeconfig 来跳过证书和配置生成。

证书有时会过期,然后您可以续订它们kubeadm alpha certs renew

https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/