Top Kubernetes Tools You Need for 2021 – Devtron

Thanks to Collabnix community members Abhinav DubeyAshutosh Kale and Vinodkumar Mandalapu for all the collaboration and contribution towards these blog post series.

What’s the biggest benefit you’ve seen for your business or team from adopting Kubernetes? What are the primary reasons your organization is using Kubernetes? Which areas of the Kubernetes tech stack need to mature the most to make it easier to deploy cloud-native apps? – Portworx by Pure Storage commissioned a new survey of enterprise users to assess the state of Kubernetes and to find out how its adoption and usage evolved in the last 12 months and what the future may hold. They also explored how the pandemic impacted IT users’ attitudes toward their jobs. Interestingly, around 68% of the respondent said they increased their usage of Kubernetes as a result of the pandemic, primarily to accelerate their deployment of new applications and increase their use of automation. Reducing IT costs was also a significant factor, and more than a quarter of respondents said they expect to reduce costs by 30% or more annually as a result of using Kubernetes.

In our first blog, we talked about the rising pain of Enterprise businesses and discussed about how Popeye solved that problem. In our 2nd blog, we look at the most popular tools like K3d and Portainer in detail. Under this blog post, we will discuss about Devtron – an open source software delivery workflow for Kubernetes written in Go language.

GitHub - devtron-labs/devtron: Software Delivery Workflow For Kubernetes

Devtron is a free-to-use open source platform providing a ‘seamless,’ ‘implementation agnostic uniform interface’ across Kubernetes Life Cycle integrated with widely used open source, and commercial tools. It runs a self-serve Model with a slick user experience. It’s a no-code solution written in Go, for all your deployments over Kubernetes and helps you to monitor various metrics for CI-CD processes like Build Logs, Deployment Failure, Lead Time, Deployment Size and others with an interactive dashboard.

Why Devtron?

There are plenty of tools in the ocean of DevOps which serve you with various use-cases such as Prometheus for monitoring,  Jenkins for continuous integration, Argo CD for continuous delivery, Clair or Trivy for security, and more. But the major challenge is that these tools are completely isolated and don’t interact with each other and hence it becomes very difficult for the DevOps team to manage different tools simultaneously.  This lack of integration was a pain point and a gap that needs to be filled. 

https://collabnix.com/top-10-kubernetes-tool-you-need-for-2021-part-2/

With Devtron, it integrates with the existing open-source systems like Argo CD, Argo Workflow, Clair, Hibernator, Grafana, Prometheus, Casbin, and many others and adds capabilities on top of them to enable self-serve for developers and DevOps. It supports multi-cluster deployments. You can connect multiple clusters to it and deploy applications across them. Devtron is an application-first way of looking at Kubernetes, meaning deep integrations with existing open-source and commercial software to quickly onboard state-of-the-art systems. They call it ‘The AppOps approach.’

Features

No code self-serve DevOps platform

  • Workflow which understands the domain of Kubernetes, testing, CD, SecOps so that you don’t have to write scripts
  • Reusable and composable pipelines so that workflows are easy to construct and visualize

Multi-cloud/Multi-cluster deployment

  • Devtron gives the ability to deploy you applications to multiple clusters/cloud just with the same dashboard

Built-in SecOps tools and integration

  • UI driven hierarchical security policy (global, cluster, environment and application) for efficient policy management
  • Integration with Clair for vulnerability scanning

UI-enabled Application debugging dashboard

  • Application centric view for K8s components
  • Built-in monitoring for cpu, ram, http status code and latency
  • Advanced logging with grep and json search
  • Access all manifests securely for e.g. secret obfuscation
  • Auto issue identification

Enterprise-grade access control and compliances

  • Easy to control roles and permissions for users and also can club the users of similar roles provide the required permissions through the slick User Interface.

Automated Gitops based deployment using argocd

  • Automated git repository and application manifest management
  • Reduces complexity(configuration, access control) in adopting gitops practices
  • Gitops backed by Postgres for easier analysis

Getting Started

System Requirements

  • 2 CPUs+ cores
  • 4GB+ of free memory
  • 20GB+ free disk space

Installation

Now that we have understood about Devtron, its needs, system requirements and features, we are ready to move ahead with its installation process. Installing Devtron is quite straightforward with few commands. Devtron can be installed using helm3 (recommended), helm2 and kubectl. 

For this demonstration we will be using helm3 as it is recommended according to the official documentation. If you don’t have helm3 installed in your system, please refer to this docs for installation.

[NOTE: The only prerequisite to install Devtron is to have a kubernetes cluster installed ]

Let’s move ahead with the installation using helm3. Please follow the commands below for successful installation.

Firstly, we need to add devtron repo in the helm known repo list. Execute the following commands to add devtron in helm known repos. 

$ helm repo add devtron https://helm.devtron.ai

After adding helm repo, execute the below command to install devtron. It will initiate the Devtron-operator, which spins up all the Devtron micro-services one by one in about 15-20 mins.

$ helm install devtron devtron/devtron-operator --create-namespace --namespace devtroncd

To check the status of the installation, please execute the following command. If the installation is still in progress, it will print Downloaded. And when the installation is complete, it prints Applied.

$ kubectl -n devtroncd get installers installer-devtron -o jsonpath='{.status.sync.status}'

After the successful installation, we need to access the Devtron dashboard. If you are installing Devtron on cloud premises, run the following command. It will give you the link of LoadBalancer created to access the service.

$ kubectl get svc -n devtroncd devtron-service -o jsonpath='{.status.loadBalancer.ingress}'

But, if you are installing devtron in your local system, please change the service from LoadBalancer to NodePort in devtron-service and then access the dashboard with the localhost:NodePort.

You can install devtron over minikube as well as k3s cluster and access the dashboard easily on your local system.

Now after accessing the dashboard, we need to find out the credentials to login into the platform. For admin credentials, the username is admin , and for password, run the below command.

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

Tada! We have successfully installed Devtron in our system and are ready to deploy our applications over kubernetes without any hassles. 

Application Deployment

After successful installation of Devtron, we are ready to begin with our first deployment. Before creating an application and its deployment, we need to make sure Global Configuration is configured properly. After its configuration please follow along with this tutorial for creating your first application and deploying over kubernetes using Devtron. 


For more information about the tool, please refer to the Github link.