當叢集認證到期後,使用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節點已到期的認證
以Root許可權登入任意Master節點並執行以下命令,擷取叢集RootCA私密金鑰。
cat /etc/kubernetes/pki/ca.key
執行以下命令,擷取base64編碼後叢集的根私密金鑰。
若擷取的叢集RootCA私密金鑰中有一行空行,執行以下命令:
sed '1d' /etc/kubernetes/pki/ca.key| base64 -w 0
若擷取的叢集RootCA私密金鑰中無空行,執行以下命令:
cat /etc/kubernetes/pki/ca.key | base64 -w 0
以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}
為步驟2擷取的通過base64編碼後的叢集根私密金鑰。在叢集的每個Worker節點重複此步驟,完成所有Worker節點的認證更新。