Configure web-based Kubernetes user interface

In this post, you will learn how to configure web-based Kubernetes user interface or deploy Web GUI on Kubernetes cluster and access the Kubernetes Dashboard

The dashboard is a web-based Kubernetes user interface. You can use Dashboard to deploy containerized applications to a Kubernetes cluster, troubleshoot your containerized application, and manage the cluster itself along with its attendant resources.
You can use Dashboard to get an overview of applications running on your cluster, as well as for creating or modifying individual Kubernetes resources, such as Deployments, Jobs, Daemon Sets, etc.
Dashboard also provides information on the state of Kubernetes resources in your cluster and on any errors that may have occurred.
In this Lab, you will learn the below items:

Deploy Dashboard UI
Configure Dashboard
Create Service Account for Dashboard
Deploy Application from Dashboard

Note: Ensure you have the running cluster deployed.

Learn How to Deploy Kubernetes Cluster on Centos 7 from Scratch

1.1 Ensure that you have logged-in as root user on kube-master node.
1.2 Let us clone the git repository which contains manifests to deploy and configure the Dashboard UI, by executing the below command.

# git clone


1.3 Let us deploy the Dashboard UI, by executing the below command.

# kubectl apply -f ~/k8s-dashboard/recommended.yaml


1.4 Dashboard Configuration
Kubernetes supports two ways of authenticating and authorizing users.

Authorization: is handled by Kubernetes API server. Dashboard only acts as a proxy and passes all auth information to it. In case of forbidden access, corresponding warnings will be displayed in Dashboard.

Authentication Based on:

• Bearer Token that can be used on Dashboard.
• Kubeconfig file that can be used on Dashboard.

1.5 Verify the kubernetes-dashboard pod is in running state under kubernetes-dashboard namespaces.

# kubectl get pods -n kubernetes-dashboard


1.6 Verify the services status.

# kubectl get svc -n kubernetes-dashboard


7. Edit the kubernetes-dashboard service file.

# kubectl -n kubernetes-dashboard edit service kubernetes-dashboard

Note: change “type: ClusterIP” to “type: NodePort” and Save and exit by press Esc:wq!

8. Verify the services status, once after saving the changes to kubernetes-dashboard

# kubectl get svc -n kubernetes-dashboard


9. Let us create a Service account named “admin-user”, by executing the below command.

# kubectl apply -f ~/k8s-dashboard/admin-user.yaml


10. Let us add cluster-admin role to the admin-user, by executing the below command.

# kubectl apply -f ~/k8s-dashboard/dashboard-admin.yaml


1.11 Execute below commands to capture the dashboard token.

# kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')


2 Let us access the Kubernetes Dashboard now!

a. Enter the above your URL with SERVICE PORT and click on “Token” to access the dashboard

Copy the TOKEN value from the above output and paste in the box below

b. View the Dashboard now!

3 Deploy the MyEmp Application using dashboard service.

Deploy the mongo container by clicking “+” button and then click on “Create from form”.

Deploy the node.js container by clicking “+” button on the right side. Enter the following details:
a. App name: myemp
b. Container image: eyesoncloud/k8s-images:employee
c. Number of Pods: 1
d. Service: External
e. Port: 80
f. Target port: 8888

a. Review the Deployments, pods status

Take a note of the NodePort from the Services section, by scrolling down in the same screen.

4 Access the Employee Application

5 Let us clean up by deleting the deployment, by executing the below command.

# kubectl delete deploy myemp


5.1 Let us delete the service, by executing the below command.

# kubectl delete svc myemp


Leave a Comment