Kubernetes Dashboard by Devtron

Kubernetes has become a de facto standard as an orchestration tool for containerized applications, it has changed the way organizations deploy, manage, and scale their services across regions. Some advanced features of Kubernetes that make this possible are Portability, Efficiency, Scalability, Automated Rollbacks, and Self-Healing. 

While Kubernetes provides powerful capabilities for scaling and managing services, it becomes complex for teams as they start to scale their operations from single Kubernetes clusters to multiple Kubernetes clusters. This complexity often leads to new operational challenges for teams, particularly when traditional practices and tools (command-line tool (CLI) like kubectl) are employed to manage Kubernetes. 

The Kubernetes Dashboard, a UI for managing Kubernetes, comes in handy to address the operational challenges of Kubernetes at scale and enable teams to operate efficiently and effectively. In this blog, we will explore the Kubernetes Dashboard and look at the Modern Kubernetes Dashboard offered by Devtron, focusing on its advanced capabilities and how we can quickly adapt to using it.

What is the Kubernetes Dashboard?

The Kubernetes Dashboard is a user interface (UI) that provides a complete overview of your Kubernetes clusters and their workloads with the capability to take action. The Kubernetes dashboard acts as a centralized management platform that enables teams to gain visibility and operational efficiency to operate over multiple Kubernetes clusters through a simplified UI. It abstracts the complexities of complex CLI tools like lack of visibility, error-prone operations, and multiple-time context switching. The Kubernetes dashboard helps teams like DevOps, SRE, and Operations teams to efficiently manage their Kubernetes clusters through an intuitive interface that simplifies resource creation and modification. By abstracting the complexities of CLI tools and providing streamlined application deployment and management capabilities, the Kubernetes dashboard also enhances developer productivity and experience, as they can now deploy and manage their applications on their own without getting into Kubernetes complexities. To read more about the Kubernetes dashboard refer to this blog.

Devtron's Kubernetes Dashboard

Devtron is an open-source platform that helps you manage your multiple Kubernetes clusters at scale through a single interface. The Modern Kubernetes Dashboard of Devtron provides an intuitive graphical interface with advanced features, giving you 360-degree visibility across multiple Kubernetes clusters while enhancing operational efficiency. Let’s look at its capabilities and how Devtron Kubernetes Dashboard can help you manage Kubernetes clusters and accelerate your journey.

Features of Devtron’s Kubernetes Dashboard

Visibility for Multiple Kubernetes Clusters

The Modern Kubernetes Dashboard of Devtron allows you to onboard multiple Kubernetes clusters and provides a single unified dashboard for all your Kubernetes clusters. The Resource Browser entity of Devtron lists out all the connected Kubernetes clusters and displays essential metrics like connection status, nodes, errors, K8s version, and resource capacity of each Kubernetes cluster. 

If you navigate to the specific Kubernetes cluster you can visualize all the Kubernetes workloads associated with that cluster and the capability to execute actions like visualizing and editing live Manifest, checking Events, Logs, and a dedicated Terminal for debugging specific pods.

Kubernetes Application Management 

Devtron's Modern Kubernetes Dashboard addresses the challenge of managing applications over multiple Kubernetes clusters. The dashboard provides a 360-degree view of all applications deployed through Helm, ArgoCD, and FluxCD, these applications can be spread across multiple Kubernetes clusters. Moreover, it provides a marketplace for Helm charts i.e. Chart Store from where you can quickly configure and deploy applications to specific Kubernetes clusters.

Advance Debugging Capabilities

Once an application is deployed or even for existing applications within your Kubernetes clusters the Kubernetes Dashboard by Devtron offers a logical grouping of application workloads. This logical grouping enables teams to quickly trace issues and capabilities like log streaming, integrated terminal, event tracking, and live manifest editing. These features facilitate faster debugging and troubleshooting, helping teams to resolve issues more efficiently.

Configuration Management 

The Devtron Kubernetes Dashboard tracks help you to track configuration drifts and enable single-click rollbacks. It also maintains a deployment history that shows all details of deployment with the user and the configurations used for it.

Fine-grained Resource Based Access Control (RBAC)

Security is paramount in any software environment, and the Kubernetes Dashboard by Devtron addresses this by providing a capability to configure a robust RBAC through a UI. The dashboard allows administrators to implement least-privileged access control by defining permission groups with specific roles and adding users accordingly. Developers can also generate API tokens with fine-grained RBAC attached, enabling secure CLI access to their application workloads without the need to share kubeconfig files. Read this blog to learn more about Devtron's RBAC.

Install Kubernetes Dashboard by Devtron: Quick Guide

Now that we've covered the theory, it's time to deep dive into Devtron's Kubernetes Dashboard. Let’s get hands-on and explore how effectively it manages Kubernetes clusters and applications.

Note: The only prerequisite for installing the Kubernetes Dashboard by Devtron is you need a Kubernetes cluster, it can be any Kubernetes cluster managed or self-managed (minikube, K3s, RKE2, or EKS, etc).

Step 1: Installation

  • Once a Kubernetes cluster is up and running, execute the following commands to install Devtron’s dashboard.
helm repo add devtron https://helm.devtron.ai
helm repo update devtron
helm install devtron devtron/devtron-operator \
--create-namespace --namespace devtroncd
  • Once the installation is complete, access the dashboard using the following command
kubectl get svc -n devtroncd devtron-service -o jsonpath='{.status.loadBalancer.ingress}'
  • The username is admin and we need to run the following command to get the admin password

kubectl -n devtroncd get secret devtron-secret \ -o jsonpath='{.data.ADMIN_PASSWORD}' | base64 -d

Step 2: Onboarding a Kubernetes Cluster

  • To onboard a Kubernetes cluster to Devtron's Kubernetes dashboard, navigate to Global Configurations > Clusters > + Add Cluster. 
  • To add a Kubernetes Cluster, choose between two authentication methods: Use Server URL & Bearer token or From kubeconfig. Fill in the required fields, click Save Cluster and your Kubernetes cluster will be onboarded.
[Fig. 1] Add K8s Cluster

Step 3: Navigating Through the Kubernetes Cluster

  • Now that our cluster is on-boarded on Devtron, navigate to the Resource Browser on the dashboard, and we can see the listing of all the Kubernetes clusters. 
[Fig. 2] Kubernetes Resource Browser
  • Click the specific Kubernetes cluster to get an overview of the cluster. Where you can visualize information about the utilization and availability of assigned resources, the owner of the cluster, and a Readme file where you can describe the cluster.
[Fig. 3] Cluster Overview
  • Click on Node to visualize all Kubernetes Components such as Nodes, Namespaces, Workloads, Configurations, and Storage.
[Fig. 4] K8s Workload Visibility
  • For Kubernetes workloads, you can perform actions such as visualizing and editing live Manifests, checking Events, and Logs, and using a dedicated Terminal for debugging.
[Fig. ]5 Perform Various Actions on K8s Workloads

Step 4: Managing Applications over Kubernetes

Helm Applications

  • Let’s see how we can manage and visualize our Kubernetes applications through Devtron's Kubernetes dashboard.
  • Navigate to the Applications tab to view a listing of Helm applications deployed across multiple Kubernetes clusters.
[Fig. 6] Helm Apps
  • Selecting a specific Helm application provides a 360-degree view, including Kubernetes resource grouping, current status, deployment history, and configuration drift management.
  • The dashboard offers advanced capabilities like visibility for logs, events, manifests, and terminal access for troubleshooting applications
[Fig. 7] App Details
  • By navigating to the Configure tab you can visualize the current configuration YAML file. Moreover, you can also compare the configurations of different deployments.
[Fig. 8] Config Diff
  • To keep the trace and accountability of deployments and their configuration, navigate to the Deployment history tab. Here, you can visualize all the details regarding the specific deployment.
[Fig. 9] Deployment History

ArgoCD Applications

  • To view applications deployed via ArgoCD on Kubernetes clusters, click ArgoCD Apps on the dashboard.
  • Here, we can visualize the listing of all ArgoCD applications deployed across multiple environments and clusters. 
  • Navigating to a specific ArgoCD application shows its current status, and grouped Kubernetes workloads.
  • Some of the advanced capabilities that you get are visualization of logs, events, app manifest, and terminal support for the selected application.
[Fig. 10] ArgoCD Apps

listing all FluxCD applications

  • To visualize applications deployed through FluxCD over Kubernetes clusters, click FluxCD Apps on the dashboard.
  • Here, you can visualize listing all FluxCD applications deployed across multiple environments and clusters. 
  • Selecting a specific FluxCD application displays its current status, logical grouping of related Kubernetes workloads, and advanced capabilities.
  • The dashboard lets you visualize the logs, events, and manifests and provides terminal support for troubleshooting applications.
  • Devtron's Kubernetes dashboard adds significant value by providing visual insights for FluxCD, primarily a CLI tool, enhancing observability and management.
[Fig. 11] FluxCD Apps

Step 4: Setting a Robust RBAC

  • To configure robust access control for your Kubernetes environment, navigate to the Global Configuration > Authorization > User Permissions > + Add Users.
  • Here, you can get the option to configure access control, you can either provide an Super admin permission or Specific permissions.
  • At  Specific permissions, you can create Permission Groups and add users to it or provide Direct Permissions to users. 
  • In case you need to provide kubectl access to developers, you can generate API tokens with controlled access and share them with developers. For access through API tokens refer to this blog.
[Fig. 12] User Permissions
[Fig. 13] SSO-Logins

That’s the Modern Kubernetes Dashboard By Devtron, it provides us with a unified and intuitive interface that streamlines complex Kubernetes management across multiple clusters. From a single pane of glass, we get comprehensive visibility and control over the entire Kubernetes infrastructure, it also provides real-time metrics and advanced debugging capabilities.  The Devtron’s Kubernetes Dashboard sprints the extra mile and provides the ability to manage Kubernetes applications by extending support for Helm deployments and complete visibility for ArgoCD and FluxCD applications. Moreover, with features like robust RBAC, live manifest editing, configuration drift handling, logs streaming, and built-in terminals for troubleshooting, Devtron eliminates the complexities of CLI-based tools like ‘kubectl’ and enhances operation efficiency.

Conclusion

In today's rapidly evolving cloud-native landscape, managing Kubernetes at scale using a CLI tool become cumbersome and error-prone. The complexities of the CLI tools can be eliminated through an intuitive UI that provides complete visibility and operational efficiency. The Devtron’s Kubernetes Dashboard stands out by providing unified visibility across multiple Kubernetes clusters and their workloads. Features like robust RBAC, manifest editing, configuration management, configuration drift handling, and deployment history help teams manage their Kubernetes infrastructure more efficiently. Moreover, capabilities like Helm application deployment and complete visibility for ArgoCD and FluxCD allow teams to manage their Kubernetes application smoothly. Whether you're scaling your Kubernetes operations or seeking to improve developer productivity, Devtron's Modern Kubernetes Dashboard offers a comprehensive solution.