Deckhouse Virtualization Platform на bare metal

Установка платформы завершена. Проверьте кластер и настройте DNS для доступа к веб-интерфейсам DVP.

Проверка кластера

  1. Подключитесь к master-узлу:

    ssh ubuntu@<MASTER_IP>
    
  2. Убедитесь, что все узлы в статусе Ready:

    sudo -i d8 k get nodes
    

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

    NAME            STATUS   ROLES                  AGE   VERSION
    dvp-master-0    Ready    control-plane,master   30m   v1.29.x
    dvp-worker-1    Ready    worker                 5m    v1.29.x
    

    Запуск компонентов DVP после установки может занять некоторое время.

  3. Дождитесь, пока платформа завершит настройку — очередь задач должна опустеть:

    sudo -i d8 system queue list
    

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

    Summary:
    - 'main' queue: empty.
    - 132 other queues (0 active, 132 empty): 0 tasks.
    - no tasks to handle.
    

    Пока в очереди есть задачи, компоненты платформы ещё разворачиваются. Сразу после установки это нормально и может занять до 15 минут.

  4. Убедитесь, что все включённые модули запущены:

    sudo -i d8 k get module | grep -E "True[[:space:]]+False"
    

    Команда выводит модули, которые включены, но ещё не готовы. Пустой вывод означает, что готовы все.

  5. Убедитесь, что платформа готова к запуску ВМ:

    sudo -i d8 k get vmclass generic
    

    Дождитесь статуса Ready.

    На ОС семейства RHEL (AlmaLinux, Rocky Linux, CentOS) при первой настройке узлов загружаются дополнительные пакеты — пока это происходит, класс generic остаётся в статусе Pending.

Настройка веб-интерфейсов DVP

Убедитесь, что кластер работает, и настройте DNS для доступа к веб-интерфейсам DVP с рабочей станции.

  1. На master-узле убедитесь, что поды ingress-nginx запущены:

    sudo -i d8 k -n d8-ingress-nginx get po -l app=kruise
    sudo -i d8 k -n d8-ingress-nginx get po -l app=controller
    

    Дождитесь статуса Ready у подов Ingress-контроллера.

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

    NAME                                         READY   STATUS    RESTARTS   AGE
    kruise-controller-manager-7dfcbdc549-b4wk7   3/3     Running   0          15m
    
    NAME                   READY   STATUS    RESTARTS   AGE
    controller-nginx-r6hxc   3/3     Running   0          5m
    
  2. Настройте DNS для веб-интерфейсов DVP. Шаблон DNS-имён (publicDomainTemplate) задаёт имена для Ingress: для %s.domain.my Grafana — grafana.domain.my, веб-интерфейс DVP — console.domain.my.

    Домен в шаблоне не должен совпадать с clusterDomain (например cluster.local) или внутренними сервисными зонами из конфигурации кластера.

    На master-узле проверьте шаблон и IP-адрес узла с Ingress:

    sudo -i d8 k get mc global -ojsonpath='{.spec.settings.modules.publicDomainTemplate}{"\n"}'
    sudo -i d8 k get pods -n d8-ingress-nginx -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.hostIP}{"\n"}{end}' | grep '^controller' | awk '{print $2}'
    

    Добавьте DNS-записи:

    • Wildcard-шаблон (например %s.domain.my) — одна wildcard A-запись на IP узла с Ingress.
    • Шаблон без wildcard (например %s-kube.company.my) — A- или CNAME-записи для каждого имени:

      api.domain.my
      code.domain.my
      commander.domain.my
      console.domain.my
      dex.domain.my
      documentation.domain.my
      grafana.domain.my
      hubble.domain.my
      istio.domain.my
      istio-api-proxy.domain.my
      kubeconfig.domain.my
      openvpn-admin.domain.my
      registry.domain.my
      prometheus.domain.my
      status.domain.my
      tools.domain.my
      upmeter.domain.my
      virtualization.domain.my
      

    Если DNS-сервера нет, добавьте записи на рабочей станции (в Windows — %SystemRoot%\system32\drivers\etc\hosts):

    export PUBLIC_IP="<MASTER_IP>"
    sudo -E bash -c "cat <<EOF >> /etc/hosts
    $PUBLIC_IP api.domain.my
    $PUBLIC_IP code.domain.my
    $PUBLIC_IP commander.domain.my
    $PUBLIC_IP console.domain.my
    $PUBLIC_IP dex.domain.my
    $PUBLIC_IP documentation.domain.my
    $PUBLIC_IP grafana.domain.my
    $PUBLIC_IP hubble.domain.my
    $PUBLIC_IP istio.domain.my
    $PUBLIC_IP istio-api-proxy.domain.my
    $PUBLIC_IP kubeconfig.domain.my
    $PUBLIC_IP openvpn-admin.domain.my
    $PUBLIC_IP registry.domain.my
    $PUBLIC_IP prometheus.domain.my
    $PUBLIC_IP status.domain.my
    $PUBLIC_IP tools.domain.my
    $PUBLIC_IP upmeter.domain.my
    $PUBLIC_IP virtualization.domain.my
    EOF
    "
    

Кластер DVP развёрнут и готов к работе.