DEV Community

Cover image for 7 Tools To Make Kubernetes Management Easy
Prashant Ghildiyal for Devtron

Posted on • Originally published at devtron.ai

7 Tools To Make Kubernetes Management Easy

In the emerging Cloud-Native environment, Kubernetes is everywhere without any question. It has become the standard for orchestrating containers. But managing multiple Kubernetes clusters presents a new set of challenges. Let’s explore some of the popular tools to manage Kubernetes efficiently.

1. Kube-Prometheus-Stack

Prometheus is an open source tool used for metrics-based tool used for monitoring and alerting. Kube-Prometheus-Stack is a collection of kubernetes manifests, Prometheus rules and Grafana dashboards combined with documentation and scripts to provide easy to operate end-to-end kubernetes cluster monitoring with Prometheus using the Prometheus operator. As it includes both Prometheus operator and Grafana dashboards, there is no need to set them up separately.

Installation

In order to install Prometheus Stack, you must follow these steps:

  • Create the namespace for Prometheus Stack:
 kubectl create namespace prometheus
Enter fullscreen mode Exit fullscreen mode
  • Add the prometheus-community Helm repository:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
Enter fullscreen mode Exit fullscreen mode
  • Update your local Helm chart repository cache:
helm repo update
Enter fullscreen mode Exit fullscreen mode
  • To install the kube-prometheus-stack Helm chart in latest version:
helm install prometheus prometheus-community/kube-prometheus-stack --namespace=prometheus
Enter fullscreen mode Exit fullscreen mode
  • To install the kube-prometheus-stack Helm chart in specific version :
helm install prometheus prometheus-community/kube-prometheus-stack --namespace=prometheus --version=<version>
Enter fullscreen mode Exit fullscreen mode

2. Karpenter

Karpenter is an open-source, flexible, high-performance Kubernetes cluster autoscaler built with AWS that improves resource utilization and application availability. It observes the pod resource request of unscheduled pods and launches right-sized Amazon EC2 instances based on the needs of workloads of a cluster such as acceleration, compute, scheduling requirements, and storage.

Karpenter

Why Karpenter ?

  1. Karpenter can provision new EC2 instances and schedule the Kubernetes pods within a minute.
  2. With minimal infrastructural and configuration overhead, Karpenter dynamically selects the EC2 instance types that are best suited to what is needed by Kubernetes pods.
  3. Karpenter can work with Kubernetes cluster based on any environment or cloud.

Installation

Install Karpenter in the Kubernetes cluster using Helm charts. But before doing this, you must ensure that there is enough compute capacity available. Karpenter requires permissions to provision compute resources that are based on the cloud provider you have chosen. Please follow this link for installation.

3. Devtron

Devtron is an open source software delivery workflow for Kubernetes written in go. It is designed as a self-serve platform for operationalizing and maintaining applications (AppOps) on Kubernetes in a developer friendly way.

Some of the amazing features that Devtron provides are:

  • Zero code software delivery workflow
  • Multi cloud deployment
  • Easy DevSecOps integration
  • Application debugging dashboard
  • Enterprise Grade security and compliances
  • GitOps aware

To know more about devtron, please visit here.

Installation (Using Helm3)

Follow the steps mentioned below :

helm repo add devtron https://helm.devtron.ai
Enter fullscreen mode Exit fullscreen mode
helm install devtron devtron/devtron-operator --create-namespace --namespace devtroncd
Enter fullscreen mode Exit fullscreen mode
kubectl -n devtroncd get installers installer-devtron -o jsonpath='{.status.sync.status}'
Enter fullscreen mode Exit fullscreen mode

The command given above will show status of installation. It will print Downloaded If the installation is in progress and Applied if installation is completed.

kubectl get svc -n devtroncd devtron-service -o jsonpath='{.status.loadBalancer.ingress}'
Enter fullscreen mode Exit fullscreen mode
kubectl -n devtroncd get secret devtron-secret -o jsonpath='{.data.ACD_PASSWORD}' | base64 -d
Enter fullscreen mode Exit fullscreen mode

To check the devtron installation steps in detail, please visit here.

4. KEDA

KEDA is a Kubernetes-based Event Driven Autoscaler. With KEDA, we can scale any container in Kubernetes based on the events. KEDA can be installed into any Kubernetes cluster and can work alongside standard Kubernetes components like the Horizontal Pod Autoscaler(HPA).

Installing KEDA (using helm)

  • Add helm repo:
helm repo add kedacore https://kedacore.github.io/charts
Enter fullscreen mode Exit fullscreen mode
  • Update Helm repo:
helm repo update
Enter fullscreen mode Exit fullscreen mode
  • Install keda helm chart

Helm 2

helm install kedacore/keda --namespace keda --version 1.4.2 --name keda
Enter fullscreen mode Exit fullscreen mode

Helm 3

kubectl create namespace keda helm install keda kedacore/keda --version 1.4.2 --namespace keda
Enter fullscreen mode Exit fullscreen mode

5. Silver Surfer

Currently there is no easy way to upgrade kubernetes objects in case of kubernetes upgrade. It's a tedious task to know whether the current ApiVersion of the Object is Removed, Deprecated or Unchanged. It provides details of issues with the kubernetes object in case they are migrated to cluster with newer kubernetes version.

Silver Surfer

Installation

Just with few commands, it's ready to serve your cluster.

git clone https://github.com/devtron-labs/silver-surfer.git
cd silver-surfer
go mod vendor
go mod download
make
Enter fullscreen mode Exit fullscreen mode

It's done. A bin directory might have created with the binary ready to use ./kubedd command.

It categorises kubernetes objects based on change in ApiVersion. Categories are:

  1. Removed ApiVersion
  2. Deprecated ApiVersion
  3. Newer ApiVersion
  4. Unchanged ApiVersion

Within each category it identifies migration path to newer Api Version, possible paths are:

  1. It cannot be migrated as there are no common ApiVersions between source and target kubernetes version
  2. It can be migrated but has some issues which need to be resolved
  3. It can be migrated with just ApiVersion change

This activity is performed for both current and new ApiVersion.

You can check the Repo here

6. Winter Soldier

Winter soldier can be used to scale down or delete unneeded workload after work hours based on conditions. Winter Soldier is an operator which expects conditions to be defined using hibernator CRD.

It’s very often that in a kubernetes cluster, workloads remains up which are not being utilized since long or having no need anymore and increase TCO of infrastructure. Over the weekend, it’s very rare that a kubernetes cluster or workloads are being used but still it remains up. In such user-cases, we can use winter soldier. To know more about winter-soldier, please follow this link.

Installation

Please visit this link to get installation steps for winter soldier.

7. Kyverno

In kubernetes, we need to set some rules or policies and we need to do that in a way that allows everybody else to use their cluster without a high risk or destroying everybody else’s work. So, here we are going to explore a kubernetes native solution for policies and that is Kyverno. Kyverno is an open-source policy management system for kubernetes. Kyverno allows cluster administrators to validate, mutate and generate resources.

Installation

  • In order to install Kyverno with Helm, first add the Kyverno Helm repository:
helm repo add kyverno https://kyverno.github.io/kyverno/
Enter fullscreen mode Exit fullscreen mode
  • Scan the new repository for charts:
helm repo update
Enter fullscreen mode Exit fullscreen mode
  • Use Helm 3.2+ to create a Namespace and install Kyverno.
helm install kyverno kyverno/kyverno --namespace kyverno --create-namespace
Enter fullscreen mode Exit fullscreen mode

Choose any one of the tools mentioned above and try it out on your Kubernetes cluster !

Follow Devtron for all things Kubernetes, DevOps and Opensource.

Discussion (1)

Collapse
deadwin19 profile image
Mrityunjaya Prajapati

Good insights on tools, thanks for sharing