Deckhouse Kubernetes Platform on VMware vSphere
Accessing to the master node
Deckhouse have finished installation process. It remains to make some settings, for which you need to connect to the master node.
Connect to the master node via SSH (the IP address of the master node was printed by the installer upon completion of the installation, but you can also find it using the cloud provider web interface/CLI tool):
ssh ubuntu@<MASTER_IP>
Check the kubectl is working by displaying a list of cluster nodes:
sudo -i d8 k get nodes
It may take some time to start the Ingress controller after installing Deckhouse. Make sure that the Ingress controller has started before continuing:
sudo -i d8 k -n d8-ingress-nginx get po
Wait for the Pods to switch to Ready state.
DNS
To access the web interfaces of Deckhouse services, you need to:
- configure DNS
- specify template for DNS names
The DNS names template is used to configure Ingress resources of system applications. For example, the name grafana is assigned to the Grafana interface. Then, for the template %s.kube.company.my Grafana will be available at grafana.kube.company.my, etc.
Configure DNS for Deckhouse services using one of the following methods:
- If you have the DNS server and you can add a DNS records:
- If your cluster DNS name template is a wildcard
DNS (e.g.,
%s.kube.company.my), then add a corresponding wildcard A record containing the IP of the master-node. -
If your cluster DNS name template is NOT a wildcard DNS template (e.g.,
%s-kube.company.my), then add A or CNAME recordscontaining the IP of the master node, for the following DNS names according to the Deckhouse DNS templates:- api
- argocd
- dashboard
- documentation
- dex
- grafana
- hubble
- istio
- istio-api-proxy
- kubeconfig
- openvpn-admin
- prometheus
- status
- upmeter
- If your cluster DNS name template is a wildcard
DNS (e.g.,
If you don't have a DNS server, then on the computer from which you need access to Deckhouse services add static records to the file
/etc/hosts(for Linux, or%SystemRoot%\system32\drivers\etc\hostsfor Windows).Make the following steps to add records to the
/etc/hostsfile on Linux, from which you need access to Deckhouse services (the PC)[On the PC] Specify the DNS name template used in the
DOMAIN_TEMPLATEvariable (e.g.,%s.kube.company.my):DOMAIN_TEMPLATE='<DOMAIN_TEMPLATE>'[On the PC] Specify the load balancer IP used in the
BALANCER_IPvariable:BALANCER_IP='<BALANCER_IP>'[On the PC] Add records to the
/etc/hostsfile:for i in api argocd dashboard documentation dex grafana hubble istio istio-api-proxy kubeconfig openvpn-admin prometheus status upmeter; do echo "${BALANCER_IP} ${DOMAIN_TEMPLATE} "| sed "s/%s/$i/"; done | sudo bash -c "cat >>/etc/hosts"
Then, run the following command on the master node (specify the template for DNS names to use in the DOMAIN_TEMPLATE variable):
DOMAIN_TEMPLATE='<DOMAIN_TEMPLATE>'
sudo -i d8 k patch mc global --type merge -p "{\"spec\": {\"settings\":{\"modules\":{\"publicDomainTemplate\":\"${DOMAIN_TEMPLATE}\"}}}}"
Configure remote access to the cluster
On a personal computer follow these steps to configure the connection of kubectl to the cluster:
- Open Kubeconfig Generator web interface. The name
kubeconfigis reserved for it, and the address for access is formed according to the DNS names template (which you set up erlier). For example, for the DNS name template%s.1.2.3.4.sslip.io, the Kubeconfig Generator web interface will be available athttps://kubeconfig.1.2.3.4.sslip.io. - Log in as a user
admin@deckhouse.io. The user password generated in the previous step is<GENERATED_PASSWORD>(you can also find it in theUserCustomResource in theconfig.ymlfile). - Select the tab with the OS of the personal computer.
- Sequentially copy and execute the commands given on the page.
- Check that
kubectlconnects to the cluster (for example, execute the commandkubectl get no).