Deckhouse Virtualization Platform for bare metal
Platform installation is complete. Verify the cluster and configure DNS to access DVP web interfaces.
Verify the cluster
-
Connect to the master node:
ssh ubuntu@<MASTER_IP> -
Verify that all nodes are
Ready:sudo -i d8 k get nodesDVP components may take some time to start after installation.
-
Wait until the platform finishes converging — the task queue must be empty:
sudo -i d8 system queue listWhile the queue has tasks, platform components are still being deployed. This is normal right after installation and may take up to 15 minutes.
-
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.
-
Make sure the platform is ready to run VMs:
sudo -i d8 k get vmclass genericWait 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
genericclass stays in thePendingphase.
Configure DVP web interfaces
Make sure the cluster is healthy and set up DNS so you can open DVP web interfaces from your workstation.
-
On the master node, make sure the
ingress-nginxpods 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=controllerWait until the Ingress controller pods are
Ready. -
Configure DNS for DVP web interfaces. The DNS name template (
publicDomainTemplate) defines hostnames for Ingress: for%s.domain.my, Grafana is atgrafana.domain.my, the DVP web interface — atconsole.domain.my.The domain in the template must not match
clusterDomain(for examplecluster.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}'Add DNS records:
- Wildcard template (for example
%s.domain.my) — one wildcard A record pointing to the Ingress node IP. -
Non-wildcard template (for example
%s-kube.company.my) — A or CNAME records for each hostname: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
If you do not manage DNS, add static mappings on your workstation (on 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 " - Wildcard template (for example
The DVP cluster is deployed and ready to use.