Deckhouse Platform на Zvirt: Получение доступа к кластеру

Подключение к master-узлу

Deckhouse завершил процесс установки кластера. Осталось выполнить некоторые настройки, для чего необходимо подключиться к master-узлу.

Подключитесь к master-узлу по SSH (IP-адрес master-узла был выведен инсталлятором по завершении установки, но вы также можете найти его, используя веб-интерфейс или CLI‑утилиты облачного провайдера):

ssh ubuntu@<MASTER_IP>

Проверьте работу d8 k, выведя список узлов кластера:

sudo -i d8 k get nodes

Пример вывода...

$ sudo -i d8 k get nodes
NAME                                     STATUS   ROLES                  AGE   VERSION
cloud-demo-master-0                      Ready    control-plane,master   12h   v1.33.13
cloud-demo-worker-01a5df48-84549-jwxwm   Ready    worker                 12h   v1.33.13

Чтобы увеличить количество worker-узлов, измените параметр maxPerZone в NodeGroup worker с помощью CLI (d8 k edit ng worker) или веб-интерфейса администратора. Чтобы добавить дополнительные узлы, воспользуйтесь инструкцией по масштабированию кластера.

Запуск Ingress-контроллера после завершения установки Deckhouse может занять какое-то время. Прежде чем продолжить, убедитесь, что Ingress-контроллер запустился:

sudo -i d8 k -n d8-ingress-nginx get po

Дождитесь перехода подов в статус Ready.

Пример вывода...

$ sudo -i d8 k -n d8-ingress-nginx get po
NAME                                       READY   STATUS    RESTARTS   AGE
controller-nginx-r6hxc                     3/3     Running   0          16h
kruise-controller-manager-78786f57-82wph   3/3     Running   0          16h

DNS

Для того чтобы получить доступ к веб-интерфейсам компонентов Deckhouse, нужно:

Шаблон DNS-имён используется для настройки Ingress-ресурсов системных приложений. Например, за интерфейсом Grafana закреплено имя grafana. Тогда для шаблона %s.kube.company.my Grafana будет доступна по адресу grafana.kube.company.my и т. д.

Настройте DNS для сервисов Deckhouse одним из следующих способов:

  • Wildcard DNS-запись
  • Отдельные DNS-записи
  • Файл hosts

Используйте этот вариант, если у вас есть DNS-сервер, а шаблон DNS-имён кластера — wildcard-шаблон (например, %s.kube.company.my).

Добавьте на DNS-сервере wildcard A-запись со значением IP-адреса master-узла.

Используйте этот вариант, если у вас есть DNS-сервер, а шаблон DNS-имён кластера — не wildcard-шаблон (например, %s-kube.company.my).

Добавьте на DNS-сервере A- или CNAME-записи со значением адреса master-узла для следующих DNS-имён:

  • api
  • code
  • commander
  • console
  • dex
  • documentation
  • grafana
  • hubble
  • istio
  • istio-api-proxy
  • kubeconfig
  • openvpn-admin
  • prometheus
  • registry
  • status
  • stronghold
  • tools
  • upmeter

В списке — DNS-имена, которые нужны кластеру, развёрнутому по этому руководству. Полный список приведён в разделе «Список зарезервированных DNS-имён Deckhouse Platform» документации.

Используйте этот вариант, если у вас нет DNS-сервера. На компьютере, с которого нужен доступ к сервисам Deckhouse, добавьте статические записи в hosts-файл (/etc/hosts для Linux, %SystemRoot%\system32\drivers\etc\hosts для Windows).

Чтобы получить команду для добавления записей, воспользуйтесь генератором данных для hosts-файла: укажите шаблон DNS-имён и IP-адрес master-узла.

Затем на master-узле выполните следующую команду (укажите используемый шаблон DNS-имён в переменной DOMAIN_TEMPLATE):

DOMAIN_TEMPLATE='<DOMAIN_TEMPLATE>'
sudo -i d8 k patch mc global --type merge -p "{\"spec\": {\"settings\":{\"modules\":{\"publicDomainTemplate\":\"${DOMAIN_TEMPLATE}\"}}}}"

Настройка удалённого доступа к кластеру

На персональном компьютере выполните следующие шаги, для того чтобы настроить подключение kubectl к кластеру:

  • Откройте веб-интерфейс сервиса Kubeconfig Generator. Для него зарезервировано имя kubeconfig, и адрес для доступа формируется согласно шаблону DNS-имён (который вы установили ранее). Например, для шаблона DNS-имён %s.1.2.3.4.sslip.io веб-интерфейс Kubeconfig Generator будет доступен по адресу https://kubeconfig.1.2.3.4.sslip.io.
  • Авторизуйтесь под пользователем admin@deckhouse.io. Пароль пользователя, сгенерированный на предыдущем шаге, — <GENERATED_PASSWORD> (вы также можете найти его в манифесте User в файле config.yml).
  • Выберите вкладку с ОС персонального компьютера.
  • Последовательно скопируйте и выполните команды, приведённые на странице.
  • Проверьте корректную работу kubectl (например, выполнив команду kubectl get no).