RKE 集群证书管理
v0.2.0 开始可用
注意:这不是 "Kubernetes 中的 TLS 证书管理"。更多细节请参考Kubernetes 文档和 RKE cluster.yaml 示例。
证书是 Kubernetes 集群的重要组成部分,所有的 Kubernetes 组件都需要用到证书。您可以使用 RKE 的rke cert命令管理证书。
轮换证书
默认状态下,Kubenetes 集群使用由 RKE 自动生成的证书。当证书临近过期时,或当证书被泄露时,用户应该及时轮换证书。
完成证书轮换后,Kubernetes 组件会自动重启,重启后,新的证书就会生效。您可以为以下这些服务轮换证书:
- etcd
- kubelet (节点证书)
- kubelet (启用 Kubelet 选项后,可以轮换服务证书。)
- kube-apiserver
- kube-proxy
- kube-scheduler
- kube-controller-manager
RKE 具有轮换证书的能力,您可以使用rke cert命令轮换服务证书:
- rke cert rotate:轮换全部服务证书。
- rke cert rotate --service
:轮换单个服务证书。 - rke cert rotate --rotate-ca:轮换 CA 证书和全部服务证书。
只要您在进行证书轮换,都需要用到cluster.yml 文件。如果您修改了cluster.yml 默认的存储路径,在执行证书轮换的时候,您可以使用rke cert rotate --config指向cluster.yml 的路径。
轮换服务证书
轮换全部服务证书
运行rke cert rotate命令,可以将所有服务正在使用的证书替换为同一证书签发机构颁发的新证书。在命令行工具输入该命令后,返回信息如下。完成证书轮换后,Kubernetes 组件会自动重启,然后新的证书就会生效。
轮换单个服务证书
运行rke cert rotate --service
- etcd
- kubelet
- kube-apiserver
- kube-proxy
- kube-scheduler
- kube-controller-manager
以下代码示例演示的是替换kubelet组件使用的证书:
rke cert rotate --service kubelet
INFO[0000] Initiating Kubernetes cluster
INFO[0000] Rotating Kubernetes cluster certificates
INFO[0000] [certificates] Generating Node certificate
INFO[0000] Successfully Deployed state file at [./cluster.rkestate]
INFO[0000] Rebuilding Kubernetes cluster with rotated certificates
.....
INFO[0033] [worker] Successfully restarted Worker Plane..
轮换 CA 证书
如果需要轮换 CA 证书,您需要为所有的服务轮换证书。使用--rotate-ca选项,可以轮换 CA 证书和所有服务的证书。完成证书轮换后,Kubernetes 组件会自动重启,然后新的证书就会生效。
轮换 CA 证书会导致其他 system pods 重启,这些 pods 重启后也会使用新的 CA 证书:
- 网络组件 Pods(canal、calico、flannel 和 weave)
- Ingress Controller pods
- KubeDNS pods
rke cert rotate --rotate-ca
INFO[0000] Initiating Kubernetes cluster
INFO[0000] Rotating Kubernetes cluster certificates
INFO[0000] [certificates] Generating CA kubernetes certificates
INFO[0000] [certificates] Generating Kubernetes API server aggregation layer requestheader client CA certificates
INFO[0000] [certificates] Generating Kubernetes API server certificates
INFO[0000] [certificates] Generating Kube Controller certificates
INFO[0000] [certificates] Generating Kube Scheduler certificates
INFO[0000] [certificates] Generating Kube Proxy certificates
INFO[0000] [certificates] Generating Node certificate
INFO[0001] [certificates] Generating admin certificates and kubeconfig
INFO[0001] [certificates] Generating Kubernetes API server proxy client certificates
INFO[0001] [certificates] Generating etcd-xxxxx certificate and key
INFO[0001] [certificates] Generating etcd-yyyyy certificate and key
INFO[0001] [certificates] Generating etcd-zzzzz certificate and key
INFO[0001] Successfully Deployed state file at [./cluster.rkestate]
INFO[0001] Rebuilding Kubernetes cluster with rotated certificates
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下