全部产品
Search
文档中心

容器服务 Kubernetes 版 ACK:更新ACK专有集群已过期的证书

更新时间:Dec 27, 2024

当集群证书过期后,使用kubectl或API接口与集群API Server的通讯将被禁止,因此无法通过模板部署的方式来自动更新集群各节点上的过期证书。在这种情况下,集群管理员可以通过登录各个节点使用docker run启动容器,以执行目标节点的证书更新任务。

更新Master节点已过期的证书

以Root权限登录Master节点并执行以下命令,更新Master节点的证书。

docker run -it --privileged=true  -v /:/alicoud-k8s-host --pid host --net host \
  registry.cn-hangzhou.aliyuncs.com/acs/cert-rotate:v1.0.0 /renew/upgrade-k8s.sh --role master
说明

需在集群的每个Master节点,重复上述步骤,完成所有Master节点的证书更新。

更新Worker节点已过期的证书

  1. 以Root权限登录任意Master节点并执行以下命令,获取集群RootCA私钥。

    cat /etc/kubernetes/pki/ca.key
  2. 执行以下命令,获取base64编码后集群的根私钥。

    • 若获取的集群RootCA私钥中有一行空行,执行以下命令:

      sed '1d' /etc/kubernetes/pki/ca.key| base64 -w 0
    • 若获取的集群RootCA私钥中无空行,执行以下命令:

      cat /etc/kubernetes/pki/ca.key | base64 -w 0
  3. 以Root权限登录Worker节点并执行如下命令,更新Worker节点的证书。

    docker run -it --privileged=true  -v /:/alicoud-k8s-host --pid host --net host \
      registry.cn-hangzhou.aliyuncs.com/acs/cert-rotate:v1.0.0 /renew/upgrade-k8s.sh --role node --rootkey ${base64CAKey}
    说明
    • ${base64CAKey}为步骤3获取的通过base64编码后的集群根私钥。

    • 在集群的每个Worker节点重复此步骤,完成所有Worker节点的证书更新。