Deckhouse Platform in existing cluster: Finishing installation

To access the web interfaces of Deckhouse services, you need to:

The DNS names template is used to configure Ingress resources of system applications. For example, the name documentation is assigned to the in-cluster documentation module interface. Then, for the template %s.kube.company.my documentation will be available at documentation.kube.company.my, etc.

The guide will use sslip.io to simplify configuration.

Run the following command to configure template for DNS names to use the sslip.io (specify the public IP address of the node where the Ingress controller is running):

BALANCER_IP=<INGRESS_CONTROLLER_IP> 
kubectl patch mc global --type merge \
  -p "{\"spec\": {\"settings\":{\"modules\":{\"publicDomainTemplate\":\"%s.${BALANCER_IP}.sslip.io\"}}}}" && echo && \
echo "Domain template is '$(kubectl get mc global -o=jsonpath='{.spec.settings.modules.publicDomainTemplate}')'."

The command will also print the DNS name template set in the cluster. Example output:

moduleconfig.deckhouse.io/global patched

Domain template is '%s.1.2.3.4.sslip.io'.

Regenerating certificates after changing the DNS name template can take up to 5 minutes.

Other options...

Instead of using sslip.io, you can use other options.

  • 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 (e.g., %s.kube.company.my).

On the DNS server, add a wildcard A record containing the IP address of the load balancer.

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

On the DNS server, add A or CNAME records containing the address of the load balancer for the following DNS names:

  • api
  • code
  • commander
  • console
  • dex
  • documentation
  • grafana
  • hubble
  • istio
  • istio-api-proxy
  • kubeconfig
  • openvpn-admin
  • prometheus
  • registry
  • status
  • stronghold
  • tools
  • upmeter

The list above contains the DNS names that a cluster deployed using this guide requires. The complete list is given in the “List of Reserved Deckhouse Platform DNS Names” section of the documentation.

Use this option if you don’t have a DNS server. On the computer from which you need access to Deckhouse services, add static records to the hosts file (/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 load balancer.

Then, run the following command to change the DNS name template:

kubectl patch mc global --type merge -p "{\"spec\": {\"settings\":{\"modules\":{\"publicDomainTemplate\":\"${DOMAIN_TEMPLATE}\"}}}}"