AWS, Cloud Computing, DevOps

5 Mins Read

A Guide to Setup Kubernetes Dashboard on Amazon EKS Cluster

Voiced by Amazon Polly

Introduction

A Kubernetes dashboard is a web-based user interface for managing Kubernetes clusters. It facilitates the creation, viewing, and editing of resources (pods, deployments, replica sets, etc.). Kubernetes dashboard also displays basic resource usage information done by the workloads. It also enables us to create, deploy and scale any containerized application via the wizard. The dashboard allows us to monitor our cluster as well as create and modify individual Kubernetes resources. It allows us to easily manage all our cluster resources visually, without having to go to the command line.

Customized Cloud Solutions to Drive your Business Success

  • Cloud Migration
  • Devops
  • AIML & IoT
Know More

Prerequisites

  1. AWS (Amazon Web Services) Account/User
  2. eksctl
  3. kubectl
  4. Permissions
  1. AWS Account

As a first step, we need an Amazon Web Services account. If we do not have an AWS account, we can either assume an EKS (Elastic Kubernetes Service) role or become a user with the listed permissions. This will enable us to create an EKS cluster and deploy the Kubernetes dashboard.

2. Eksctl

To configure the Amazon EKS cluster, we need to install eksctl on our local system, Follow the instructions in the eksctl reference to install eksctl. eksctl reference

3. Kubectl

This is another command line tool, that is being used to work with Kubernetes clusters. Kubectl allows us to run commands against Kubernetes clusters. We can use kubectl to deploy applications, examine and manage cluster resources, and see logs. For more information include a complete list of kubectl operations. To install kubectl or kubernetes-Cli follow  kubectl reference

4. Permission

To configure our EKS cluster and interact with it, the following set of IAM (Identity and Access Management) policies are required. This includes both managed and unmanaged policies.

  • AmazonEC2FullAccess
  • AWSCloudFormationFullAccess
  • EksAllAccess
  • IamLimitedAccess

permission

To configure permission Follow: EKS policies

Step-by-Step Guide to Setup Kubernetes Dashboard on Amazon EKS Cluster

  1. Create an eks cluster

To perform this lab, we need to have an eks cluster ready with us. If you are already ready with one jump to step II, or else follow Step I.

  • Run eksctl create cluster –name=yourclustername –without-nodegroup

The example output is as follows.

step1

step1b

  • Run eksctl create nodegroup –cluster my-cluster –region us-east-1 –name my-mng –node-type t2. micro –nodes 2 –nodes-min 2 –nodes-max 3 –ssh-access –ssh-public-key my-key

The example output is as follows.

step1c

step1d

2. Deploy Metric Server

There is no default integration of the Kubernetes Metrics Server into Amazon EKS clusters. Hence, we need to install it. The Metric server gathers resource usage data in the cluster and provides a scalable and efficient source of data for the autoscaling pipeline as a part of the Kubernetes cluster.

In the metrics server metrics collected from kubelets are exposed in the Kubernetes API server via the metrics API, hence making them useful to horizontal and vertical pod auto-scalers. The Matrix API can also be accessed through kubectl top, making it easier to troubleshoot autoscaling pipelines.

To install Run kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

The example output is as follows.

step2

Note: Verify that the metrics-server deployment is running the desired number of pods with the following command.

  • Run kubectl get deployment metrics-server -n kube-system

The example output is as follows.

step2b

3. Deploy Kubernetes Dashboard

Kubernetes Dashboard is a web-based UI that enables users to access cluster resources and workload in a User based interface. Kubernetes Dashboard eventually gives users a much more friendly and interactive session that supports all possible features to create, update, replace, and delete except alerting.

The example output is as follows.

step3

4. Create an eks-admin service account and cluster role binding

Run the following command to create a file named eks-admin-service-account.yaml.txt with the following text. This manifest defines a service account and cluster role binding named eks-admin.

The example output is as follows.

step4

step4b

5. Connect to the dashboard

Now that the Kubernetes Dashboard is deployed to your cluster, and you have an administrator service account that you can use to view and control your cluster, you can connect to the dashboard with that service account.

To connect to the Kubernetes dashboard

  1. Retrieve an authentication token for the eks-admin service account.
  • Run kubectl get secrets

step5

  • Run kubectl describe secret eks-admin-token-mhqbt –n kubernetes-dashboard

step5b

6. Start the kubectl proxy

Kubectl proxy will enable us to access the Kubernetes dashboard on our local system via port 8001, you can also try to use a load balancer service type or node port service type to run the dashboard.

  • Run kubectl proxy

The example output is as follows.

step6

Output

Copy the token and paste it into the mentioned section > Sign in.

output1

Default Sample View

output2

output3

output4

Conclusion

Kubernetes Dashboard is indeed useful and user-friendly and hence can be easily utilized to perform day-to-day tasks. All the DevOps jobs done through cli can be easily accomplished via the UI of the Kubernetes dashboard, & the plus point of using the dashboard is it gives you more data and hence can be beneficial for newbies and those who are less familiar with Kubernetes commands.

Get your new hires billable within 1-60 days. Experience our Capability Development Framework today.

  • Cloud Training
  • Customized Training
  • Experiential Learning
Read More

About CloudThat

CloudThat is also the official AWS (Amazon Web Services) Advanced Consulting Partner and Training partner and Microsoft gold partner, helping people develop knowledge of the cloud and help their businesses aim for higher goals using best-in-industry cloud computing practices and expertise. We are on a mission to build a robust cloud computing ecosystem by disseminating knowledge on technological intricacies within the cloud space. Our blogs, webinars, case studies, and white papers enable all the stakeholders in the cloud computing sphere.

Drop a query if you have any questions regarding Kubernetes and I will get back to you quickly.

To get started, go through our Consultancy page and Managed Services Package that is CloudThats offerings.

FAQs

1. What is Kubernetes Dashboard?

ANS: – Kubernetes Dashboard is an interactive web-based user interface, that enables users to create, view, update and manage Kubernetes resources and workloads.

2. How does Kubernetes Dashboard help us?

ANS: – The Kubernetes Dashboard simplifies cluster resource management, allowing us to manage workloads and provide a handy dashboard for automating deployments, resource allocation, and resource updates.

3. How do I enable the Kubernetes Dashboard?

ANS: – To open the Kubernetes Dashboard, enter the kubectl proxy in a new terminal window. Open a browser and go to http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetesdashboard:/proxy/#!/login to view the Kubernetes Dashboard that was automatically deployed when the cluster was created.

WRITTEN BY Shivani Gandhi

Shivani Gandhi is a Research Associate (Kubernetes) at CloudThat technologies. She holds a master's degree in Computer Application. She is passionate about cloud computing and has a strong urge to learn new cloud-native technologies. She has experience in GCP & AWS and enjoys leveraging clients with efficient cloud-based solutions. She is adaptive, a good team player, and enjoys reading.

Share

Comments

    Click to Comment

Get The Most Out Of Us

Our support doesn't end here. We have monthly newsletters, study guides, practice questions, and more to assist you in upgrading your cloud career. Subscribe to get them all!