Добавление внешнего (белого) IP адреса в сертификат API сервера Kubernetes

Эта инструкция поможет добавить альтернативное имя субъекта (SAN) в TLS-сертификат сервера API Kubernetes, развернутого через Kubespray. Процесс полезен, например, при добавлении балансировщика нагрузки или нового имени хоста для доступа к серверу API. Инструкция подходит для кластеров с одной или несколькими мастер-нодами.

Шаги по обновлению сертификата сервера API

Зайдите на мастер ноду по ssh. 

Нам понадобится файл конфигурации kubeadm. Чтобы извлечь конфигурацию из кластера во внешний файл, выполните следующую команду:

kubectl -n kube-system get configmap kubeadm-config \
-o jsonpath='{.data.ClusterConfiguration}' > kubeadm.yaml

Это создает файл с именем kubeadm.yaml, содержимое которого может выглядеть примерно так (файл из вашего кластера может иметь другие значения):

В этом конкретном примере дополнительные SAN не указаны. Чтобы добавить хотя бы один SAN, добавьте их в certSANs в разделе apiServer:

Этот пример добавляет SAN для IP-адреса 185.205.3.15 - белый IP edge gateway vOrg, в которой развернут кластер. Это дополняет стандартный список имен SAN, включающий localhost и некоторые служебные имена для Kubernetes, которые создаются по умолчанию.

 

Теперь следует переместить существующие сертификаты, иначе кубернетес не даст выпустить новые.

Выполняем команду:

mv /etc/kubernetes/pki/apiserver.{crt,key} ~

Она переместит сертификаты в домашнюю директорию пользователя.

Генерируем новые сертификаты и ключ для API-сервера, с помощью следующей команды:

kubeadm init phase certs apiserver --config kubeadm.yaml

 

Перезапустим API сервер, для применения изменений:

Выполните команду 

crictl pods | grep kube-apiserver | cut -d' ' -f1

чтобы получить идентификатор пода API.

 

Останавливаем под:

crictl stopp <id_пода_API>

Удаляем под:

crictl rmp <id_пода_API>

Kubelet автоматически перезапустит контейнер, который получит новый сертификат. Как только API-сервер перезапустится, вы сразу же сможете подключиться к нему, используя один из добавленных IP-адресов или имён хостов.

Осталось только добавить порт 6443 в правила NAT и создать разрешающее правило на фаерволе. О том как это сделать описано в этой статье.

  • k8s, kubernetes, kubespray
  • 0 utilizatori au considerat informația utilă
Răspunsul a fost util?

Articole similare

Управление нодой NFS и создание PV

Основные преимущества использования NFS в Kubernetes   Использовать существующее хранилище, вы...

Управление кластером kubernetes

Обзор На этой странице представлены основные команды, которые позволяют пользователям создавать,...

Добавление баллансировщика сетевой нагрузки

Данная инструкция описывает как настроить баллансировщик для Kubernetes Cluster созданного c...

Введение в CSE

Описание Container Service Extension (CSE) - это расширение VMware Cloud Director (VCD), которое...

Создание кластера Kubernetes через vCloud Director

Для создания кластера нужно войти в личный tenant с пользователем который обладает правами...