Deckhouse Kubernetes Platform на VMware vSphere
Подключение к master-узлу
Deckhouse завершил процесс установки кластера. Осталось выполнить некоторые настройки, для чего необходимо подключиться к master-узлу.
Подключитесь к master-узлу по SSH (IP-адрес master-узла был выведен инсталлятором по завершении установки, но вы также можете найти его используя веб-интерфейс или CLI‑утилиты облачного провайдера):
Проверьте работу kubectl, выведя список узлов кластера:
sudo /opt/deckhouse/bin/kubectl get nodes
Запуск Ingress-контроллера после завершения установки Deckhouse может занять какое-то время. Прежде чем продолжить убедитесь что Ingress-контроллер запустился:
sudo /opt/deckhouse/bin/kubectl -n d8-ingress-nginx get po
Дождитесь перехода Pod’ов в статус Ready
.
DNS
Для того чтобы получить доступ к веб-интерфейсам компонентов Deckhouse, нужно:
- настроить работу DNS
- указать в параметрах Deckhouse шаблон DNS-имен
Шаблон DNS-имен используется для настройки Ingress-ресурсов системных приложений. Например, за интерфейсом Grafana закреплено имя grafana
. Тогда, для шаблона %s.kube.company.my
Grafana будет доступна по адресу grafana.kube.company.my
, и т.д.
Настройте DNS для сервисов Deckhouse одним из следующих способов:
- Если у вас есть возможность добавить DNS-запись используя DNS-сервер:
- Если ваш шаблон DNS-имен кластера является wildcard
DNS-шаблоном (например,
%s.kube.company.my
), то добавьте соответствующую wildcard A-запись со значением IP-адреса master-узла. -
Если ваш шаблон DNS-имен кластера НЕ является wildcard DNS-шаблоном (например,
%s-kube.company.my
), то добавьте А или CNAME-записис адресом master-узла, для следующих DNS-имен сервисов согласно шаблону DNS-имен:- api
- argocd
- dashboard
- documentation
- dex
- grafana
- hubble
- istio
- istio-api-proxy
- kubeconfig
- openvpn-admin
- prometheus
- status
- upmeter
- Если ваш шаблон DNS-имен кластера является wildcard
DNS-шаблоном (например,
Если вы не имеете под управлением DNS-сервер, то на компьютере, с которого необходим доступ к сервисам Deckhouse, добавьте статические записи в файл
/etc/hosts
(%SystemRoot%\system32\drivers\etc\hosts
для Windows).Для добавления записей в файл
/etc/hosts
на на Linux-компьютере с которого необходим доступ к сервисам Deckhouse (далее — ПК), выполните следующие шаги:[Выполните на ПК] Укажите используемый шаблон DNS-имен в переменной
DOMAIN_TEMPLATE
(например,%s.kube.company.my
):[Выполните на ПК] Укажите IP-адрес балансировщика в переменной
BALANCER_IP
:[Выполните на ПК] Добавьте записи в файл
/etc/hosts
:for i in api argocd dashboard documentation dex grafana hubble istio istio-api-proxy kubeconfig openvpn-admin prometheus status upmeter; do echo "${BALANCER_IP} ${DOMAIN_TEMPLATE} "| sed "s/%s/$i/"; done | sudo bash -c "cat >>/etc/hosts"
for i in api argocd dashboard documentation dex grafana hubble istio istio-api-proxy kubeconfig openvpn-admin prometheus status upmeter; do echo "${BALANCER_IP} ${DOMAIN_TEMPLATE} "| sed "s/%s/$i/"; done | sudo bash -c "cat >>/etc/hosts"
Затем, на master-узле выполните следующую команду (укажите используемый шаблон DNS-имен в переменной DOMAIN_TEMPLATE
):
DOMAIN_TEMPLATE='<DOMAIN_TEMPLATE>'
sudo /opt/deckhouse/bin/kubectl 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>
(вы также можете найти его в CustomResourceUser
в файлеresource.yml
). - Выберите вкладку с ОС персонального компьютера.
- Последовательно скопируйте и выполните команды, приведенные на странице.
- Проверьте корректную работу
kubectl
(например, выполнив командуkubectl get no
).