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:
1. Create the namespace for Prometheus Stack:
kubectl create namespace prometheus
2. Add the prometheus-community Helm repository:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
3. Update your local Helm chart repository cache:
helm repo update
4. To install the kube-prometheus-stack Helm chart in latest version:
helm install prometheus prometheus-community/kube-prometheus-stack --namespace=prometheus
5. To install the kube-prometheus-stack Helm chart in specific version :
helm install prometheus prometheus-community/kube-prometheus-stack --namespace=prometheus --version=<version>
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.
Why Karpenter ?
- Karpenter can provision new EC2 instances and schedule the Kubernetes pods within a minute.
- With minimal infrastructural and configuration overhead, Karpenter dynamically selects the EC2 instance types that are best suited to what is needed by Kubernetes pods.
- 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
helm install devtron devtron/devtron-operator --create-namespace --namespace devtroncd
kubectl -n devtroncd get installers installer-devtron -o jsonpath='{.status.sync.status}'
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}'
kubectl -n devtroncd get secret devtron-secret -o jsonpath='{.data.ACD_PASSWORD}' | base64 -d
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
2. Update Helm repo:
helm repo update
3. Install keda helm chart
Helm 2
helm install kedacore/keda --namespace keda --version 1.4.2 --name keda
Helm 3
kubectl create namespace keda helm install keda kedacore/keda --version 1.4.2 --namespace keda
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.
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
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:
- Removed ApiVersion
- Deprecated ApiVersion
- Newer ApiVersion
- Unchanged ApiVersion
Within each category it identifies migration path to newer Api Version, possible paths are:
- It cannot be migrated as there are no common ApiVersions between source and target kubernetes version
- It can be migrated but has some issues which need to be resolved
- It can be migrated with just ApiVersion change
This activity is performed for both current and new ApiVersion.
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 .
Installaion
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/
2. Scan the new repository for charts:
helm repo update
3. Use Helm 3.2+ to create a Namespace and install Kyverno.
helm install kyverno kyverno/kyverno --namespace kyverno --create-namespace
Choose any one of the tools mentioned above and try it out on your Kubernetes cluster !