Deckhouse Platform в существующем кластере

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

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

Чтобы упростить настройку, далее будет использоваться сервис sslip.io.

Выполните следующую команду, чтобы настроить шаблон DNS-имён сервисов Deckhouse на использование sslip.io (укажите публичный IP-адрес узла, где запущен Ingress-контроллер):

BALANCER_IP=<INGRESS_CONTROLLER_IP> 
kubectl patch mc global --type merge \
  -p "{\"spec\": {\"settings\":{\"modules\":{\"publicDomainTemplate\":\"%s.${BALANCER_IP}.sslip.io\"}}}}" && echo && \
echo "Domain template is '$(kubectl get mc global -o=jsonpath='{.spec.settings.modules.publicDomainTemplate}')'."

Команда также выведет установленный шаблон DNS-имён. Пример вывода:

moduleconfig.deckhouse.io/global patched

Domain template is '%s.1.2.3.4.sslip.io'.

Перегенерация сертификатов после изменения шаблона DNS-имён может занять до 5 минут.

Другие варианты настройки...

Вместо сервиса sslip.io вы можете использовать другие варианты настройки.

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

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

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

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

Добавьте на DNS-сервере A- или CNAME-записи со значением адреса балансировщика для следующих 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-адрес балансировщика.

Затем выполните следующую команду, чтобы изменить шаблон DNS-имён в параметрах Deckhouse:

kubectl patch mc global --type merge -p "{\"spec\": {\"settings\":{\"modules\":{\"publicDomainTemplate\":\"${DOMAIN_TEMPLATE}\"}}}}"