
在 kubeadm 中,更新 Kubernetes 集群的证书并指定有效期,具体操作取决于你是初始化一个新集群,还是更新一个已存在的集群的证书。
如果你在初始化集群时需要指定证书的有效期,可以在 kubeadm 配置文件中指定证书的有效期。可以通过 --config 参数加载一个配置文件,并在该文件中设置证书有效期。
配置文件示例(kubeadm-config.yaml):
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
certificates:
duration: 87600h # 设置证书有效期为10年(87600小时)然后,使用以下命令初始化 Kubernetes 集群:
sudo kubeadm init --config kubeadm-config.yaml这会创建一个证书有效期为 10 年的集群。
对于已存在的集群,kubeadm 提供了证书更新功能,可以续期集群中的证书,并指定新证书的有效期。
步骤:
提醒:请提前备份/etc/kubernetes/目录
cp -r /etc/kubernetes/ /etc/kubernetes-backup你可以使用 kubeadm certs renew 命令续期所有证书。此命令会根据 kubeadm 配置的默认有效期(或者命令中指定的有效期)为当前证书生成新的有效期。
sudo kubeadm certs renew all # 续期所有证书你还可以单独续期某些证书。例如,要延长 apiserver 证书的有效期,可以使用:
sudo kubeadm certs renew apiserver目前,kubeadm certs renew 命令默认续期证书的有效期为1年。如果你希望延长证书的有效期,可以在执行 kubeadm init 或 kubeadm certs renew 时,通过 --certificate-duration 参数来设置新的证书有效期。
sudo kubeadm init --certificate-duration 87600h # 设置证书有效期为10年或者使用 kubeadm certs renew 续期时,指定有效期:
sudo kubeadm certs renew --certificate-duration 87600h all你可以通过以下命令检查当前集群中证书的过期时间,确认它们是否已成功更新:
sudo kubeadm certs check-expiration这会列出所有证书以及它们的过期时间。
证书续期后,通常需要重启相关的 Kubernetes 组件(如 kube-apiserver、kubelet 等)才能使新的证书生效:
sudo systemctl restart kubelet根据提示重启关键组件pod:
Done renewing certificates. You must restart the kube-apiserver, kube-controller-manager, kube-scheduler and etcd, so that they can use the new certificates.
kubectl delete pod -n kube-system kube-apiserver-k8s-master kube-controller-manager-k8s-master kube-scheduler-k8s-master etcd-k8s-master重新拷贝admin.conf文件
cp /etc/kubernetes/admin.conf /root/.kube/config原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。