DEV Community

Ofer Bar
Ofer Bar

Posted on

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 for testing Kubernetes itself but works great for local development. Key advantages are its speed in creating clusters and low resource usage 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). This 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 you time by streamlining the context-switching process.
    github

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

  3. kube-ps1
    If youโ€™re constantly switching 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, offering a powerful graphical interface to interact 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 view logs, pods, services, and resources interactively.
    github

Package Manager

  1. Helm Helm is widely used for deploying 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

  1. Zsh + Oh My Zsh Zsh + Oh My Zsh (OMZ) is a powerful and highly customizable shell setup. Zsh is an advanced shell that enhances the 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

Top comments (0)