Як додати альтернативне ім’я суб’єкта до кластера Kubernetes

Додавання додаткового публічного доменного імені до кластеру Kubernetes.

Якщо ви налаштували кластер Kubernetes з публічним доменним іменем, але потім вирішили вдосконалити його та додати ще одне ім’я з будь-якої причини, ця стаття про це.

Кластер Kubernetes зберігає сертифікати apiserver в одному місці, це два файли:

  • /etc/kubernetes/pki/apiserver.crt
  • /etc/kubernetes/pki/apiserver.key

Перед будь-якими змінами ОБОВ'ЯЗКОВО збережіть! ці файли як резервну копію.

Продовжимо, перше, що потрібно зробити — перевірити існуючі альтернативні імена та IP-адреси, які вже використовуються.

sudo -i  
cd /etc/kubernetes/pki  

openssl x509 -in apiserver.crt -text -noout | grep -A 1 "Subject Alternative Name"

Після виконання цієї команди ви отримаєте повний список доменів і IP-адрес, що вже використовуються. Залиште цей список на випадок, якщо ви згенеруєте новий, і щось може бути втрачене без видимих причин.

Тепер видалимо! ці файли, пам'ятайте, що ви вже зробили резервну копію.

rm apiserver.crt  
rm apiserver.key

Час генерувати нові імена.

kubeadm init phase certs apiserver --apiserver-cert-extra-sans=extra.example.com

Нові файли з'являться, але не радійте завчасно, вам потрібно знову перевірити повний список альтернативних імен.

openssl x509 -in apiserver.crt -text -noout | grep -A 1 "Subject Alternative Name"

Тепер ви повинні мати старий список + нове додаткове ім’я, якщо щось відсутнє, видаліть і згенеруйте їх знову, додавши відсутні.

rm apiserver.crt  
rm apiserver.key  
kubeadm init phase certs apiserver --apiserver-cert-extra-sans=extra.example.com,missing-host.com,MISSING_IP

Перевіряйте ще раз і ще раз, і сподіваємось, тепер все в порядку.

ApiServer повинен перезапуститися автоматично, якщо цього не сталося, просто відредагуйте файл.

cd /etc/kubernetes/manifests  
nano kube-apiserver.yaml

Додайте туди

- --apiserver-cert-extra-sans=extrahost,EXTRA_IP

Це мені особисто не допомогло, тому я редагував щось інше, і apiServer був перезапущений.

Тепер перевірте нові сертифікати apiserver.

openssl s_client -connect YOUR_HOST_OR_IP_NO_HTTPS:6443 -showcerts | openssl x509 -text -noout | grep -A 1 "Subject Alternative Name"

І переконайтеся, що список альтернативних імен містить всі старі імена плюс нові.

Після цього ви можете зробити поетапне оновлення нового сертифікату в усіх інших конфігураціях.

kubeadm init phase kubeconfig all

Далі скопіюйте

/etc/kubernetes/admin.conf to .kube/config

на всі машини користувачів, де це потрібно.

Готово, тепер ваш кластер Kubernetes має нове ім’я в сертифікаті, і ви можете створювати CI/CD пайплайн.

Перекладено з: How to add Alternative Subject Name to Kubernetes cluster

Leave a Reply

Your email address will not be published. Required fields are marked *