
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
すべてのコントロールプレーンノードで実行する必要があることに注意してください。