Essential Kubernetes Setup for DevOps and Developers - A Community Based Guide

Ofer Bar - Sr. Core Developer
Blog
7.1.25
Essential Kubernetes Setup for DevOps and Developers - A Community Based Guide

This post will be a work in progress, built from my own experiences as well as valuable insights and feedback from the community. Feel free to leave a comment and share what tools or techniques have made your day-to-day work easier!

Local K8s Environments

1. Minikube

Minikube is the most mature Kubernetes development tool that runs a single-node cluster inside a VM. It supports multiple hypervisors (VirtualBox, HyperKit, Hyper-V) and offers a dashboard out of the box. It's feature-rich with add-ons like ingress and storage classes, making it ideal for developers who want a production-like environment locally.

2. Kind

Kind creates Kubernetes clusters by running nodes as Docker containers. It's designed to test Kubernetes itself, but it works great for local development. Its cluster creation speed and low resource usage are key advantages since it runs in containers instead of VMs. Perfect for CI/CD pipelines and testing Kubernetes manifests locally.

3. K3s

K3s is a lightweight, production-ready Kubernetes distribution by Rancher. Unlike Kind and Minikube, it's not just for development - it's used in production, especially in edge and IoT scenarios. For development, it offers quick startup times and minimal resource usage (512MB RAM). It strips out legacy/alpha features and replaces etcd with SQLite for a smaller footprint.

Plugins

1. kubectx & kubens

kubectx - This plugin allows you to easily switch between Kubernetes contexts (clusters). It is especially useful if you work with multiple clusters.
kubens - a simple tool to quickly switch between namespaces in Kubernetes. If you manage multiple namespaces, kubens will save time by streamlining the context-switching process. github

2. kubetail

When troubleshooting microservices in a Kubernetes environment, it's often helpful to see logs from multiple pods at once. kubetail simplifies this by allowing you to simultaneously tail logs from multiple pods and containers. github

3. kube-ps1

If you constantly switch between Kubernetes clusters or contexts, kube-ps1 can be a game-changer. It's a shell prompt extension that displays the current Kubernetes context and namespace directly in your terminal prompt. github

Observability

1. Lens

Lens is an incredibly popular IDE for Kubernetes. It offers a powerful graphical interface for interacting with clusters. It simplifies the complexity of managing multiple clusters and provides tools for monitoring, logging, and troubleshooting. site

2. k9s

If you're more comfortable working from the terminal, k9s is a great tool. It provides a real-time, terminal-based UI for Kubernetes, allowing you to interactively view logs, pods, services, and resources. github

Package Manager

1. Helm

Helm Helm is widely used to deploy applications to Kubernetes through "charts" (pre-configured Kubernetes resources). It greatly simplifies managing Kubernetes resources and automates the deployment of complex applications. site

Terminal Setup

Zsh + Oh My Zsh default bash experience with features like better autocompletion, improved scripting, and a more user-friendly syntax. Oh, My Zsh is a framework that simplifies the management of Zsh configurations by providing a large collection of plugins, themes, and additional features. It helps improve your terminal productivity with tools like autocompletion for Git, Docker, Kubernetes, and more while also offering eye-catching themes and an easy-to-manage configuration system. github

Kubectl aliases

an amazing repo with all the aliaes you'll ever need. repo

Discover Validated Exposures within Your Unique K8s Ecosystem within Minutes

By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.