证书轮换

轮换 Kubernetes 证书可能会导致集群在组件重启时暂时不可用。对于生产环境,建议在维护时段内执行此操作。

默认情况下,Kubernetes 集群需要证书,Rancher 启动的 Kubernetes 集群会自动为 Kubernetes 组件生成证书。在证书过期之前或被泄露后轮换证书非常重要。证书轮换后,Kubernetes 组件会自动重启。

可以为以下服务轮换证书:

  • RKE

  • RKE2

  • etcd

  • kubelet(节点证书)

  • kubelet(服务证书,如果启用

  • kube-apiserver

  • kube-proxy

  • kube-scheduler

  • kube-controller-manager

  • admin

  • api-server

  • controller-manager

  • scheduler

  • rke2-controller

  • rke2-server

  • cloud-controller

  • etcd

  • auth-proxy

  • kubelet

  • kube-proxy

如果你未轮换 webhook 证书,且证书用了一年后已经过期,请参阅此页面

证书轮换

Rancher 启动的 Kubernetes 集群能够通过 UI 轮换自动生成的证书。

  1. 在左上角,单击 ☰ > 集群管理

  2. 集群页面上,转到要轮换证书的集群,然后单击 ⋮ > 轮换证书

  3. 选择要轮换的证书。

    • 轮换所有服务证书(使用相同的 CA)

    • 轮换单个服务,并从下拉菜单中选择其中一项服务。

  4. 单击保存

结果:将轮换所选证书,相关服务将重新启动以使用新证书。

补充说明

  • RKE

  • RKE2

虽然 RKE CLI 可以为 Kubernetes 集群组件使用自定义证书,但 Rancher 目前不允许在 Rancher 启动的 Kubernetes 集群中上传这些证书。

在 RKE2 中,etcd 和 controlplane 节点都被视为相同的 server。因此,如果你轮换其中一个组件的服务证书,则两者的证书都会被轮换。证书只会针对指定的服务更改,但你会看到两个组件的节点都进入更新状态。你可能还会看到仅 Worker 节点进入更新状态。这是在证书更改后重启 Worker,以确保他们获得最新的客户端证书。