Kubernetesクラスターのノードで使用されている証明書の有効期限が切れた場合、kubectlを使用するか、API操作を呼び出してクラスターAPIサーバーと通信することはできません。 期限切れの証明書は、テンプレートの展開に基づいて自動的に更新できません。 証明書を更新するには、各ノードにログインしてdocker runコマンドを実行します。
各マスターノードで期限切れの証明書を更新する
rootユーザーとしてマスターノードにログインし、次のコマンドを実行してマスターノードの証明書を更新します。
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説明
各クラスターマスターノードで上記の手順を繰り返して、すべてのマスターノードの証明書を更新します。
ワーカーノードで期限切れの証明書を更新する
rootユーザーとしてマスターノードにログインし、次のコマンドを実行してクラスター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ユーザーとしてログインし、次のコマンドを実行してワーカーノードの証明書を更新します。
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} は、Base64形式でエンコードされたクラスタールート秘密鍵を指定します。 ${base64CAKey} の値は、ステップ2で返されます。
クラスター内の各ワーカーノードで上記の手順を繰り返して、すべてのワーカーノードの証明書を更新します。