Deckhouse Virtualization Platform на bare metal
Убедитесь, что под Kruise controller manager запустился и находится в статусе Running
.
Выполните на master-узле следующую команду:
1sudo -i d8 k -n d8-ingress-nginx get po -l app=kruise
Настройте Ingress-контроллер и DNS.
Установка Ingress-контроллера
1sudo -i d8 k apply -f - <<EOF 2# Параметры контроллера NGINX Ingress. 3# https://deckhouse.ru/products/virtualization-platform/reference/cr/ingressnginxcontroller.html 4apiVersion: deckhouse.io/v1 5kind: IngressNginxController 6metadata: 7 name: nginx 8spec: 9 ingressClass: nginx 10 # Способ поступления трафика из внешнего мира. 11 inlet: HostPort 12 hostPort: 13 httpPort: 80 14 httpsPort: 443 15 # Описывает, на каких узлах будет находиться Ingress-контроллер. 16 # Возможно, захотите изменить. 17 nodeSelector: 18 node-role.kubernetes.io/control-plane: "" 19 tolerations: 20 - effect: NoSchedule 21 key: node-role.kubernetes.io/control-plane 22 operator: Exists 23EOF
Запуск Ingress-контроллера после завершения установки Deckhouse может занять какое-то время. Прежде чем продолжить убедитесь что Ingress-контроллер запустился (выполните на
master-узле
):1sudo -i d8 k -n d8-ingress-nginx get po -l app=controller
Дождитесь перехода подов Ingress-контроллера в статус
Running
.- Создание DNS-записи, для доступа в веб-интерфейсы кластера:
- Выясните публичный IP-адрес узла, на котором работает Ingress-контроллер.
- Если у вас есть возможность добавить DNS-запись используя DNS-сервер:
- Если ваш шаблон DNS-имен кластера является wildcard
DNS-шаблоном (например,
%s.kube.my
), то добавьте соответствующую wildcard A-запись со значением публичного IP-адреса, который вы получили выше. -
Если ваш шаблон DNS-имен кластера НЕ является wildcard DNS-шаблоном (например,
%s-kube.company.my
), то добавьте А или CNAME-записи со значением публичного IP-адреса, который вы получили выше, для следующих DNS-имен сервисов Deckhouse в вашем кластере:1api.example.com 2argocd.example.com 3dashboard.example.com 4documentation.example.com 5dex.example.com 6grafana.example.com 7hubble.example.com 8istio.example.com 9istio-api-proxy.example.com 10kubeconfig.example.com 11openvpn-admin.example.com 12prometheus.example.com 13status.example.com 14upmeter.example.com
- Важно: Домен, используемый в шаблоне, не должен совпадать с доменом, указанным в параметре clusterDomain и внутренней сервисной зоне сети. Например, если используется
clusterDomain: cluster.local
(значение по умолчанию), а сервисная зона сети — ru-central1.internal, то publicDomainTemplate не может быть%s.cluster.local
или%s.ru-central1.internal
.
- Если ваш шаблон DNS-имен кластера является wildcard
DNS-шаблоном (например,
Если вы не имеете под управлением DNS-сервер: добавьте статические записи соответствия имен конкретных сервисов публичному IP-адресу узла, на котором работает Ingress-контроллер.
Например, на персональном Linux-компьютере, с которого необходим доступ к сервисам Deckhouse, выполните следующую команду (укажите ваш публичный IP-адрес в переменной
PUBLIC_IP
) для добавления записей в файл/etc/hosts
(для Windows используйте файл%SystemRoot%\system32\drivers\etc\hosts
):1export PUBLIC_IP="<PUBLIC_IP>" 2sudo -E bash -c "cat <<EOF >> /etc/hosts 3$PUBLIC_IP api.example.com 4$PUBLIC_IP argocd.example.com 5$PUBLIC_IP dashboard.example.com 6$PUBLIC_IP documentation.example.com 7$PUBLIC_IP dex.example.com 8$PUBLIC_IP grafana.example.com 9$PUBLIC_IP hubble.example.com 10$PUBLIC_IP istio.example.com 11$PUBLIC_IP istio-api-proxy.example.com 12$PUBLIC_IP kubeconfig.example.com 13$PUBLIC_IP openvpn-admin.example.com 14$PUBLIC_IP prometheus.example.com 15$PUBLIC_IP status.example.com 16$PUBLIC_IP upmeter.example.com 17EOF 18"