![Обновление сертификатов apiserver для кластера HA k8s](https://rvso.com/image/756224/%D0%9E%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D0%B2%20apiserver%20%D0%B4%D0%BB%D1%8F%20%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0%20HA%20k8s.png)
У меня есть кластер HA k8s, созданный kubeadm. Я хотел бы обновить сертификат сервера API, чтобы добавить дополнительные SAN. Для этого я выполнил некоторые шаги, описанные в другомпочта, а вот что я сделал для кластера HA:
Удалены сертификаты API-серверана всех узлах плоскости управления
Получена текущая карта конфигурации kubeadm
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
Помните, что вам необходимо запустить его на всех узлах control-plain.