![HA k8s クラスターの API サーバー証明書を更新する](https://rvso.com/image/756224/HA%20k8s%20%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E3%83%BC%E3%81%AE%20API%20%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8B.png)
kubeadmで作成したHA k8sクラスターがあります。APIサーバー証明書を更新してSANを追加したいと思います。この目的のために、別の記事で説明されている手順に従いました。役職しかし、HA クラスターに対して私が行ったことは次のとおりです。
APIサーバー証明書を削除しましたすべてのコントロールプレーンノードで
現在のkubeadm configmapを取得しました
kubectl get configmap kubeadm-config \ --namespace kube-system \ --output jsonpath={{ .data.ClusterConfiguration }}
- 必要な設定部分を拡張しました
apiServer: certSANs: - localhost - 127.0.0.1
- 更新された構成で新しい証明書を生成しましたすべてのコントロールプレーンノードで
kubeadm init phase certs apiserver --config <config_path>
APIサーバーコンテナを再起動しましたすべてのコントロールプレーンノードで
クラスタ内の構成を更新しました
kubeadm init phase upload-config kubeadm --config <config_path>
問題は、これらの手順が正しいのか、それとももっと簡単な方法があるのかということです。
答え1
私が思いついた最も早い方法は次のとおりです。
# remove current apiserver certificates
sudo rm /etc/kubernetes/pki/apiserver.*
# generate new certificates
sudo kubeadm init phase certs apiserver --apiserver-cert-extra-sans=localhost,127.0.0.1
すべてのコントロールプレーンノードで実行する必要があることに注意してください。