Date: May 17, 2023
Author: Sangam Biradar
Category: Kubernetes
As Kubernetes continues to dominate the container orchestration landscape, DevOps engineers need a solid toolkit to effectively manage their clusters. This guide presents a curated list of essential Kubernetes tools that every DevOps engineer should know.
Command Line Tools
kubectl
The official Kubernetes command-line tool that allows you to run commands against Kubernetes clusters.
# Install on macOS
brew install kubectl
# Check version
kubectl version --client
kubectx & kubens
Faster way to switch between clusters and namespaces in kubectl.
# Install
brew install kubectx
# Switch context
kubectx my-cluster
# Switch namespace
kubens monitoring
helm
The package manager for Kubernetes, helping you manage applications through Helm Charts.
# Install
brew install helm
# Add a repository
helm repo add bitnami https://charts.bitnami.com/bitnami
# Install a chart
helm install my-release bitnami/nginx
k9s
A terminal UI to interact with your Kubernetes clusters, providing a more intuitive interface than plain kubectl.
# Install
brew install k9s
# Run
k9s
Development Tools
skaffold
Handles the workflow for building, pushing, and deploying your application, allowing you to focus on writing code.
# Install
brew install skaffold
# Run skaffold in development mode
skaffold dev
kustomize
Template-free way to customize application configuration.
# Install
brew install kustomize
# Build kustomization
kustomize build ./overlay/production
kubectl-debug
A kubectl plugin for debugging running pods in a Kubernetes cluster.
# Install
kubectl krew install debug
# Debug a pod
kubectl debug mypod -c mycontainer --image=busybox:1.28
Monitoring Tools
Prometheus
An open-source systems monitoring and alerting toolkit.
# Basic Prometheus deployment with Helm
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/prometheus
Grafana
Analytics platform that allows you to query, visualize, and alert on metrics.
# Install Grafana with Helm
helm repo add grafana https://grafana.github.io/helm-charts
helm install grafana grafana/grafana
kubewatch
Watch Kubernetes events and trigger handlers.
# Install with Helm
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install kubewatch bitnami/kubewatch
Networking Tools
cilium
Open source software for providing, securing, and observing network connectivity between container workloads.
# Install with Helm
helm repo add cilium https://helm.cilium.io/
helm install cilium cilium/cilium --namespace kube-system
istio
Service mesh that provides traffic management, security, and observability.
# Download Istio
curl -L https://istio.io/downloadIstio | sh -
# Install Istio core components
istioctl install --set profile=demo
ksniff
Kubectl plugin to capture network traffic in a pod.
# Install
kubectl krew install sniff
# Start capture
kubectl sniff mypod -n default
Security Tools
trivy
Comprehensive vulnerability scanner for containers and other artifacts.
# Install
brew install aquasecurity/trivy/trivy
# Scan an image
trivy image nginx:latest
kube-bench
Checks whether Kubernetes is deployed securely by running CIS Kubernetes Benchmark tests.
# Run as a Job in your cluster
kubectl apply -f https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job.yaml
falco
Cloud-native runtime security tool designed to detect anomalous activity.
# Install with Helm
helm repo add falcosecurity https://falcosecurity.github.io/charts
helm install falco falcosecurity/falco
Backup Tools
velero
Backup and migrate Kubernetes resources and persistent volumes.
# Install Velero CLI
brew install velero
# Create a backup
velero backup create my-backup --include-namespaces default
Conclusion
The Kubernetes ecosystem is vast and continues to grow. This guide provides a starting point for essential tools that can help DevOps engineers manage their Kubernetes infrastructure more effectively. Each tool has been selected for its utility, community support, and widespread adoption in production environments.
Choose the tools that fit your specific needs and workflows, and remember that mastering a few tools thoroughly is often more beneficial than having a superficial understanding of many.