Deckhouse Virtualization Platform for bare metal: Complete installation

Platform installation is complete. Verify the cluster and configure DNS to access DVP web interfaces.

Verify the cluster

  1. Connect to the master node:

    ssh ubuntu@<MASTER_IP>
    
  2. Verify that all nodes are Ready:

    sudo -i d8 k get nodes
    

    Example output

    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 components may take some time to start after installation.

  3. Wait until the platform finishes converging — the task queue must be empty:

    sudo -i d8 system queue list
    

    Example output

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

    While the queue has tasks, platform components are still being deployed. This is normal right after installation and may take up to 15 minutes.

  4. Make sure every enabled module is running:

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

    The command lists modules that are enabled but not ready yet. Empty output means all of them are ready.

  5. Make sure the platform is ready to run VMs:

    sudo -i d8 k get vmclass generic
    

    Wait until the status is Ready.

    On RHEL-based operating systems (AlmaLinux, Rocky Linux, CentOS), the initial node configuration downloads additional packages — while this is in progress, the generic class stays in the Pending phase.

Configure DVP web interfaces

Make sure the cluster is healthy and set up DNS so you can open DVP web interfaces from your workstation.

  1. On the master node, make sure the ingress-nginx pods are running:

    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
    

    Wait until the Ingress controller pods are Ready.

    Example output

    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. Configure DNS for DVP web interfaces. The DNS name template (publicDomainTemplate) defines hostnames for Ingress: for %s.domain.my, Grafana is at grafana.domain.my, the DVP web interface — at console.domain.my.

    The domain in the template must not match clusterDomain (for example cluster.local) or internal service zones from your cluster configuration.

    On the master node, check the template and the Ingress node IP:

    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}'
    

    Configure DNS in one of the following ways:

    • Wildcard DNS record
    • Individual DNS records
    • Hosts file

    Use this option if you have a DNS server and your cluster DNS name template is a wildcard template (for example, %s.domain.my).

    On the DNS server, add a wildcard A record pointing to the IP address of the Ingress controller node.

    Use this option if you have a DNS server and your cluster DNS name template is not a wildcard template (for example, %s-kube.company.my).

    On the DNS server, add A or CNAME records pointing to the IP address of the Ingress controller node for the following DNS names:

    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
    prometheus.domain.my
    registry.domain.my
    status.domain.my
    tools.domain.my
    upmeter.domain.my
    virtualization.domain.my
    

    Use this option if you don’t have a DNS server. Add static records to the hosts file on your workstation (/etc/hosts for Linux, %SystemRoot%\system32\drivers\etc\hosts for Windows).

    To get the command for adding the records, use the hosts file data generator: enter the DNS name template and the IP address of the Ingress controller node. The commands above print both values.

The DVP cluster is deployed and ready to use.