返回
Kubernetes 证书续期:3Master + 3Node 集群的完整指南
见解分享
2024-01-29 07:57:43
轻松管理 Kubernetes 证书:3 Master + 3 Node 集群证书续期完整指南
简介
Kubernetes(k8s)的稳定性和安全性对于确保集群平稳运行至关重要。其中一个关键方面是管理证书,包括 CA 证书和节点证书。本指南将逐步引导您完成在使用 kubeadm 安装的 3 Master + 3 Node 集群中续订 k8s 证书。
前提条件
- 具有使用 kubeadm 安装的 k8s 集群,其中包含 3 个 Master 节点和 3 个工作节点。
- 集群中所有证书都已过期或即将过期。
- 具有集群管理员权限的终端访问权限。
步骤 1:查看证书到期时间
首先,让我们查看集群中所有证书的到期时间。有以下几种方法可以做到这一点:
1. 基础配置
kubectl get configmap -n kube-system kube-root-ca.crt -o yaml | grep expiration
2. CA 证书过期时间
openssl x509 -in /var/lib/kubernetes/pki/ca.crt -text -noout | grep "Not After"
3. 集群证书过期时间
kubectl get csr -o jsonpath='{.items[*].status.certificate}' | base64 -d | openssl x509 -text -noout | grep "Not After"
步骤 2:获取初始化配置文件
接下来,我们需要获取集群的初始化配置文件。这将提供创建证书所需的信息。
kubeadm init phase upload-config --upload-certs
步骤 3:更新证书
提示: 在继续之前,请务必备份现有证书和密钥,以便在出现问题时进行恢复。
1. 撤销旧证书
kubectl certificate revoke <certificate-name>
2. 续订证书
按照初始化配置文件中提供的说明,重新创建并续订所有证书。这将涉及使用 kubeadm 和 openssl 命令,具体取决于证书类型。
步骤 4:部署新证书
续订证书后,我们需要将它们部署到集群中。具体步骤因证书类型而异。
1. CA 证书
kubectl create secret generic ca.crt --from-file=ca.crt=/var/lib/kubernetes/pki/ca.crt --dry-run -o yaml | kubectl apply -f -
2. 集群证书
kubectl create secret generic kubeconfig --from-file=kubeconfig=/etc/kubernetes/admin.conf --dry-run -o yaml | kubectl apply -f -
3. 节点证书
kubectl create secret generic node-certs --from-file=ca.crt=/var/lib/kubernetes/pki/ca.crt --from-file=node.crt=/var/lib/kubernetes/pki/node.crt --from-file=node.key=/var/lib/kubernetes/pki/node.key --dry-run -o yaml | kubectl apply -f -
步骤 5:验证新证书
最后,我们需要验证新证书是否已成功部署。
kubectl get csr -o jsonpath='{.items[*].status.certificate}' | base64 -d | openssl x509 -text -noout | grep "Not After"
如果显示的新到期时间与预期相符,则表示证书续订已成功。
结论
通过遵循本指南中概述的步骤,您可以轻松续订 k8s 3 Master + 3 Node 集群中的证书。定期续订证书对于确保您的集群安全可靠地运行至关重要。
常见问题解答
-
我需要多频繁地续订证书?
- 一般建议每 90 天续订证书,以确保它们在过期之前保持有效。
-
我可以在不中断集群运行的情况下续订证书吗?
- 是的,本指南中概述的步骤允许您在不中断集群运行的情况下续订证书。
-
如果我错过了证书续订会发生什么?
- 如果您错过了证书续订,集群可能会出现安全问题,并且可能无法正常运行。
-
我可以自动化证书续订吗?
- 是的,可以通过使用自动化工具,例如 cert-manager,来自动化证书续订。
-
续订证书时我应该考虑哪些最佳实践?
- 始终备份现有证书和密钥。
- 遵循最佳实践,使用强密码和安全协议。
- 定期监视集群证书,以确保它们保持最新状态。