Bird
Raised Fist0
Kubernetesdevops~30 mins

Kubernetes dashboard - Mini Project: Build & Apply

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Kubernetes dashboard
📖 Scenario: You are managing a Kubernetes cluster and want to set up the Kubernetes dashboard. This dashboard helps you see and manage your cluster resources visually through a web interface.
🎯 Goal: Set up the Kubernetes dashboard by deploying it, create a service account with admin rights, and access the dashboard using a secure token.
📋 What You'll Learn
Deploy the Kubernetes dashboard using the official YAML manifest
Create a service account named admin-user in the kubernetes-dashboard namespace
Bind the admin-user service account to the cluster-admin role
Retrieve the login token for the admin-user service account
Start the dashboard proxy to access the dashboard
💡 Why This Matters
🌍 Real World
Kubernetes dashboard is widely used by cluster administrators to monitor and manage cluster resources visually without using complex command-line commands.
💼 Career
Knowing how to deploy and secure the Kubernetes dashboard is a key skill for DevOps engineers and Kubernetes administrators to provide easy cluster management and troubleshooting.
Progress0 / 4 steps
1
Deploy the Kubernetes dashboard
Run the command kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml to deploy the Kubernetes dashboard in your cluster.
Kubernetes
Hint

This command downloads and applies the official dashboard manifest to your cluster.

2
Create the admin-user service account
Create a service account named admin-user in the kubernetes-dashboard namespace by running kubectl create serviceaccount admin-user -n kubernetes-dashboard.
Kubernetes
Hint

This creates a user that the dashboard can use to authenticate.

3
Bind admin-user to cluster-admin role
Bind the admin-user service account to the cluster-admin role by running kubectl create clusterrolebinding admin-user-binding --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:admin-user.
Kubernetes
Hint

This gives the admin-user full permissions to manage the cluster via the dashboard.

4
Get the admin-user token and start dashboard proxy
Run these two commands: kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath='{.secrets[0].name}') -o jsonpath='{.data.token}' | base64 --decode to get the token, then kubectl proxy to start the proxy. Print the token value as output.
Kubernetes
Hint

The token lets you log in to the dashboard. The proxy command lets you access the dashboard securely on your local machine.

Practice

(1/5)
1. What is the primary purpose of the Kubernetes dashboard?
easy
A. To automatically scale pods based on CPU usage
B. To replace the kubectl command-line tool entirely
C. To serve as a container runtime for Kubernetes
D. To provide a web-based user interface for managing Kubernetes clusters

Solution

  1. Step 1: Understand the role of Kubernetes dashboard

    The dashboard is designed as a web UI to help users visually manage and monitor their Kubernetes clusters.
  2. Step 2: Compare with other Kubernetes components

    It does not replace kubectl, nor does it handle scaling or container runtime tasks.
  3. Final Answer:

    To provide a web-based user interface for managing Kubernetes clusters -> Option D
  4. Quick Check:

    Kubernetes dashboard = Web UI for cluster management [OK]
Hint: Dashboard = visual cluster management tool [OK]
Common Mistakes:
  • Thinking dashboard replaces kubectl
  • Confusing dashboard with autoscaling
  • Assuming dashboard is a container runtime
2. Which command correctly installs the Kubernetes dashboard?
easy
A. kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
B. kubectl create dashboard
C. kubectl run dashboard --image=kubernetes/dashboard
D. kubectl install dashboard

Solution

  1. Step 1: Identify the installation method for the dashboard

    The official way to install the Kubernetes dashboard is by applying the recommended YAML manifest from the official GitHub repository.
  2. Step 2: Verify the command syntax

    kubectl apply -f [URL] is the correct syntax to apply a manifest file from a URL.
  3. Final Answer:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml -> Option A
  4. Quick Check:

    Install dashboard = kubectl apply -f URL [OK]
Hint: Use kubectl apply with official dashboard YAML URL [OK]
Common Mistakes:
  • Using kubectl create instead of apply
  • Trying kubectl run which is for pods
  • Using non-existent kubectl install command
3. After running kubectl proxy, what URL should you open in your browser to access the Kubernetes dashboard?
medium
A. http://localhost:8080/dashboard
B. http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
C. https://dashboard.kubernetes.local
D. http://127.0.0.1:6443/dashboard

Solution

  1. Step 1: Understand kubectl proxy behavior

    Running kubectl proxy creates a local proxy on port 8001 that forwards requests to the Kubernetes API server.
  2. Step 2: Identify the dashboard proxy URL

    The dashboard is accessed via the API server proxy path: /api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ on localhost port 8001.
  3. Final Answer:

    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ -> Option B
  4. Quick Check:

    Dashboard URL after proxy = localhost:8001/api/v1/... [OK]
Hint: Dashboard URL uses kubectl proxy on localhost:8001 [OK]
Common Mistakes:
  • Using wrong port like 8080 or 6443
  • Trying HTTPS without proxy
  • Using a made-up domain name
4. You installed the Kubernetes dashboard but get a 403 Forbidden error when accessing it. What is the most likely cause?
medium
A. You did not create a login token or proper access permissions
B. The dashboard service is not running
C. kubectl proxy is not installed
D. Your browser does not support HTTPS

Solution

  1. Step 1: Understand 403 Forbidden meaning

    A 403 error means access is denied due to lack of permissions or authentication.
  2. Step 2: Check dashboard access requirements

    The dashboard requires a valid login token with proper RBAC permissions to allow access.
  3. Final Answer:

    You did not create a login token or proper access permissions -> Option A
  4. Quick Check:

    403 Forbidden = missing token or permissions [OK]
Hint: 403 means missing token or permissions [OK]
Common Mistakes:
  • Assuming service is not running without checking
  • Thinking kubectl proxy is missing (it's a client tool)
  • Blaming browser HTTPS support
5. You want to securely access the Kubernetes dashboard remotely without exposing it publicly. Which approach is best?
hard
A. Expose the dashboard service with a LoadBalancer type service
B. Disable authentication on the dashboard for easy access
C. Use kubectl proxy on your local machine and SSH tunnel to the cluster
D. Access the dashboard directly via the cluster IP from anywhere

Solution

  1. Step 1: Consider security for remote access

    Exposing the dashboard publicly or disabling authentication is insecure and not recommended.
  2. Step 2: Use kubectl proxy with SSH tunneling

    Running kubectl proxy locally and creating an SSH tunnel to the cluster securely forwards traffic without exposing the dashboard publicly.
  3. Final Answer:

    Use kubectl proxy on your local machine and SSH tunnel to the cluster -> Option C
  4. Quick Check:

    Secure remote access = kubectl proxy + SSH tunnel [OK]
Hint: Secure access = kubectl proxy plus SSH tunnel [OK]
Common Mistakes:
  • Exposing dashboard publicly with LoadBalancer
  • Disabling authentication for convenience
  • Trying to access cluster IP directly without security