Introduction to Devtron Kubernetes Client

Kubernetes is one of the most adopted container orchestrators globally. With the rising demands of Kubernetes, many different tools, be it a dashboard or command line utility, have been built to abstract out the complexities it brings and ease the life of developers and operational teams. Kubernetes clients are tools/ dashboards that don’t reside within a Kubernetes cluster but interact with the clusters and manage Kubernetes workloads. These clients use the Kubernetes API server to commute with clusters and help you interact with Kubernetes resources deployed in respective clusters.

Why do we need a Kubernetes Client for Kubernetes Management?

Before talking about the Kubernetes client or the value proposition it adds to the cloud native ecosystem, let’s understand the need for a client/ dashboard. Isn’t the Kubernetes-native command line utility, i.e., kubectl, enough for managing workloads?

The answer to the above question would be a big “YES.” Kubectl is efficient enough to perform all Kubernetes-related operations like deploying an object, checking logs, getting into a terminal, debugging nodes/ pods, fetching metrics, and many other activities. But when it comes down to monitoring/ observing Kubernetes applications at scale, it becomes really difficult to debug and monitor with any command line utility. To address this challenge, Kubernetes client/ dashboard is born.

A Kubernetes client can act as an intuitive  Kubernetes dashboard or as a command line utility installed outside a Kubernetes cluster. The client can be installed on a desktop running any OS and interact with all your Kubernetes clusters and workloads through an API server. In this blog, we will discuss the Kubernetes Client by Devtron and how it can contribute to Kubernetes management.

Getting Started with Kubernetes Client by Devtron

Devtron team is one step closer to their mission of “Democratizing Kubernetes Adoption” and helping the open source community run Kubernetes under the hood. Devtronians have built a lightweight Kubernetes client that helps users manage and operate the Kubernetes clusters and workloads in the easiest possible way through a graphical user interactive dashboard.

Let’s get started with some hands-on.

Installation

The installation of the Devtron Kubernetes client is pretty straightforward. It is a binary, packaged in a bash script that users can download and install by using the following set of commands -

Step-1: Download the bash script from the below URL

https://cdn.devtron.ai/k8s-client/devtron-install.bash

Step-2: Download the executable using the script downloaded. It will automatically download the executable depending on the system architecture and open the dashboard in the respective browser.

sh devtron-install.bash start

Hurray!! Kubernetes Client by Devtron is up and running.

Some Peripheral Commands

Step-1: To access the UI of the Kubernetes client, execute the following command. It will open the dashboard through a port in the available web browser and store the Kubernetes client's state.

sh devtron-install.bash open

Step-2: To stop the dashboard, you can execute the following command:

sh devtron-install.bash stop

Step-3: To update the client, use the following command. It will stop the running dashboard and download the latest executable and open it in the browser.

sh devtron-install.bash upgrade

How does it improve Kubernetes Management?

The Kubernetes client by Devtron is a very lightweight dashboard that can be installed on arm64/amd64-based architectures. It comes with features like Kubernetes Resources Browser and Cluster Management that can provide control and observability for resources across clouds and clusters.

Managing Kubernetes Resources at scale:
Clusters vary on business and architectural needs. Organizations tend to build smaller clusters for more decentralization. This practice leads to the creation of multiple clusters and much more nodes. Managing them on a CLI requires multiple files, making it difficult to perform resource operations.

Avoiding Kubeconfig version mismatch errors:
Users are now relieved from maintaining the Kubeconfig versions for their respective clusters (v1.16 - 1.26 i.e, current version) because the Devtron Kubernetes Client performs self Kubeconfig version control. Unlike other tools for instance OpenLens, where you must manage multiple kubectl versions manually, Devtron eliminates the chances of errors occurring due to configuration mismatch. Check how Devtron stacks against OpenLens.

Unifying information in one place:
When information is scattered across clusters, and users have to type commands with arguments to fetch desired output, the process becomes slow and error-prone. Without a single point of configuration source, the configurations of different config files diverge, making them even more challenging to restore and track. The Devtron Kubernetes Client unifies all the information and tools into one interface to perform various contextual tasks.

Accessibility during an outage for troubleshooting:
As the Devtron Kubernetes Client runs outside a cluster, users can exercise basic control over their failed resources when there is a cluster-level outage. The Client helps users to gather essential logs and data to pinpoint the root cause of the issue and reduce the time to restore service.

By using the Devtron client on your existing Kubernetes infrastructure, users can:

  • Gain more visibility into resources
  • Reduce the complexity of configuring access and authorization at the resource level
  • Limit Cluster sprawl
  • Monitor metrics with integrated Prometheus

Let’s talk about these features in-depth.

Kubernetes Resource Browser

Kubernetes resource browser provides a graphical user interface for interacting and managing all your Kubernetes (k8s) resources across clusters. It also helps you deploy and manage Kubernetes resources and allows pod operations such as

  • View real-time logs
  • Check manifest and edit live manifests of k8s resources
  • Exec into terminal
  • View Events
  • Or delete a resource

With Kubernetes resource browser, users can

  • check the real-time health status
  • search for any workloads
  • manage multiple clusters and
  • change cluster contexts in a go
  • deploy multiple K8s manifests through the create option
  • Perform resource grouping at the Cluster level.

Take a look at this blog for a detailed understanding of how a resource browser can help you manage your k8s cluster and workloads.

Clusters Management

The Devtron Kubernetes client is packaged with cluster management features that help you manage all your clusters running on-prem or on a cloud. It is a cluster and cloud agnostic platform where you can add as many clusters as you want, be it a lightweight cluster such as k3s/ microk8s or managed clusters like Amazon EKS.

It enables you to observe and monitor the cluster health and real-time node conditions. The Kubernetes client also provides a summary of nodes with all available labels, annotations, taints, and other parameters, along with complete resource usage. In addition to that, it helps you to perform node operations such as:

  • taint a node
  • cordon a node
  • exec into node (terminal)
  • drain a node
  • edit the live node manifest
  • Or delete a node

With its rich features and intuitive interface, you can easily manage and debug clusters through cluster terminal access and use any CLI debugging tools like busybox, kubectl, netshoot or any custom CLI tools like k9s.

Please refer to our well-maintained documentation for more details on Cluster management.

Conclusion

The Devtron Kubernetes Client is a powerful dashboard that can enable Developers and DevOps to perform powerful troubleshooting with granular visibility into Kubernetes resources on any infrastructure. The Client proves to be an indispensable tool in case of outages where clusters are not responsive.

Feel free to connect with us on our community discord for any doubts. The team would be more than happy to help. Get started with the Devtron Kubernetes client in minutes. Devtorn Kubernetes Client is free and open source for life. Do star our primary project on GitHub if you helped manage your clusters with ease.