クラスター証明書が期限切れの場合、kubectl によるクラスター API サーバーとの通信や API の呼び出しができません。クラスターノード上の期限切れの証明書は、テンプレートのデプロイを通じて自動的に更新されません。 証明書の更新のために、それぞれのクラスターノードにログインし、コンテナー起動コマンド docker run を実行します。

マスターノード上の期限切れ証明書の更新

  1. ルート権限でマスターノードにログインします。
  2. 以下のコマンドを実行し、マスターノード上の期限切れ証明書を更新します。コマンドを実行するディレクトリは問いません。
    $ 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
  3. 上記の手順をそれぞれのクラスターマスターノードで繰り返し、すべての期限切れ証明書を更新します。

ワーカーノード上の期限切れ証明書の更新

  1. ルート権限でマスターノードにログインします。
  2. 以下のコマンドを実行し、クラスター rootCA 秘密鍵を取得します。
    $ cat /etc/kubernetes/pki/ca.key
  3. 以下のコマンドのどちらかを実行し、base64 でエンコードされたクラスタールート秘密鍵を取得します。
    • クラスター rootCA 秘密鍵に空行がある場合、以下のコマンドを実行します。
      $ sed '1d' /etc/kubernetes/pki/ca.key| base64 -w 0
    • クラスター rootCA 秘密鍵に空行がない場合、以下のコマンドを実行します。
      $ cat /etc/kubernetes/pki/ca.key | base64 -w 0
  4. ルート権限でワーカーノードにログインします。
  5. 以下のコマンドを実行し、ワーカーノード上の期限切れ証明書を更新します。コマンドを実行するディレクトリは問いません。
    $ 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}
    手順 3 において、取得した "${base64CAKey}" は、base64 でエンコードされたクラスタールート秘密鍵です。
  6. 上記の手順をそれぞれのクラスターワーカーノードで繰り返し、すべての期限切れ証明書を更新します。