12 tools that make Kubernetes easier

Take advantage of these Kubernetes companions to improve monitoring, command-line ops, multi-cluster management, and more

11 tools that make Kubernetes easier
Thinkstock

Kubernetes has become a standard way—many would say the standard way—to deploy containerized applications at scale. But if Kubernetes helps us to tame sprawling and complex container deployments, what’s available to help us tame Kubernetes? It too can be complex, messy, and difficult to manage.

As Kubernetes grows and evolves, no doubt many of its excesses will be tamed from within the project. But some users aren’t waiting around for Kubernetes to get any easier to work with, and have rolled their own solutions to many common problems with Kubernetes in production.

Goldpinger: Visualize Kubernetes clusters

Humans are visual creatures. Graphs and charts make it easier for us to understand the big picture. And given the scope and complexity of a Kubernetes cluster, we could use all of the visual help we can get.

The amusingly-named Goldpinger, open sourced by Bloomberg’s tech division, is a simple tool that runs inside a Kubernetes cluster and displays an interactive map of the relationships between the nodes. Healthy nodes appear in green, and unhealthy nodes in red. Just click on a node for details. You can customize the API with Swagger to roll in additional reporting, metrics, or other integrations.

K9s: Full-screen Kubernetes CLI UI

Admins love “single pane of glass” utilities. K9s is a full-screen CLI UI for Kubernetes clusters. It gives you views of running pods, logs, and deployments at a glance, along with quick access to a shell. Note that you will need to grant users Kubernetes read privileges at the user and namespace level for K9s to work properly.

Kops: Command-line ops for Kubernetes clusters

Developed by the Kubernetes team, Kops allows you to manage Kubernetes clusters from the command line. It supports clusters running on AWS and GCE, with VMware vSphere and other environments in the works. In addition to automating the setup and teardown process, Kops helps with other kinds of automation. For instance, it can generate Terraform configurations to allow a cluster to be redeployed using Terraform.

Kubebox: Terminal console for Kubernetes

An advanced terminal console for Kubernetes, Kubebox provides more than just a glorified shell to Kubernetes and its API. It provides interactive displays of memory and CPU utilization, lists of pods, running logs, and configuration editors. Best of all, it’s available as a standalone application for Linux, Windows, and MacOS.

Kube-applier

Running as a Kubernetes service, Kube-applier fetches declarative configuration files for a Kubernetes cluster from a Git repository and applies them to the pods in the cluster. Whenever changes are made to the definition files, they’re pulled from the repo and applied to the pods in question. In essence, Kube-applier is like Google’s Skaffold, except it’s for managing a whole Kubernetes cluster instead of a single app.

Kube-applier can apply configuration changes on a schedule or on demand. It logs its behavior each time it runs, and it provides Prometheus-compatible metrics so that you’re not in the dark about how it might affect cluster behavior.

Kube-ps1: Smart Kubernetes command prompt

No, Kube-ps1 isn’t a first-gen Sony PlayStation emulator for Kubernetes (although that would be rather nifty). It’s a simple addition to Bash that displays the current Kubernetes context and namespace in the prompt. Kube-shell includes this along with a great many other features, but if all you want is the smarter prompt, Kube-ps1 provides it with little overhead.

Kube-prompt: Interactive Kubernetes client

Another minimal but useful modification to the Kubernetes CLI, Kube-prompt allows you to enter what amounts to an interactive command session with the Kubernetes client. Kube-prompt spares you from having to type kubectl to prefix every command, and provides autocomplete with contextual information for each command.

Kubespy: Real-time monitoring of Kubernetes resources

Pulumi’s Kubespy is a diagnostic tool that allows you to trace changes to a Kubernetes resource in real time, providing you with a kind of text-view dashboard of the goings-on. For instance, you could watch the changes to a pod’s status as it is booted up: the pod definition being written to Etcd, the pod being scheduled to run on a node, the Kubelet on the node creating the pod, and the pod finally being marked as running. Kubespy can run as a standalone binary or as a plug-in to Kubectl.

Kubeval: Validate Kubernetes configurations

Kubernetes’ YAML configuration files are meant to be human-readable, but that doesn’t always mean they’re human-validatable. It’s easy to miss a dropped comma or fat-fingered name and not find out about it until it’s too late. Better to use Kubeval. Used locally or integrated into your CI/CD pipeline, Kubeval takes in a Kubernetes YAML configuration definition and reports back on its validity. It can produce JSON or TAP-formatted output, and can even parse the source templates referenced in a Helm chart configuration without needing additional prompting.

Kube-ops-view: Dashboard for multiple Kubernetes clusters

Kubernetes has a useful dashboard for general-purpose monitoring, but the Kubernetes community is experimenting with other ways to present data usefully to the Kubernetes admin. Kube-ops-view is one such experiment; it provides a broad at-a-glance view of multiple Kubernetes clusters, rendered graphically, so one can see at a glance the CPU and memory usage and status of pods across a cluster. Note that it doesn’t allow you to invoke any commands; it’s strictly for visualization. But the visualizations it provides are striking and efficient, born for a wall monitor in your operations center.

Rio: App deployment engine for Kubernetes

Rio, a project of Rancher Labs, implements common application deployment patterns in Kubernetes such as continuous delivery from Git and A/B or blue/green deployments. Rio can deploy a new version of your app whenever you make a commit, helpfully managing complexities like DNS, HTTPS, and service meshes.

Stern and Kubetail: Log tailing for Kubernetes

Stern lets you produce color-coded output (as per the tail command) from pods and containers in Kubernetes. It’s a quick way to pipe all the output from multiple resources into a single stream that can be read at a glance. At the same time, you have an at-a-glance way (the color coding) to distinguish the streams. 

Kubetail similarly aggregates logs from multiple pods into a single stream, color-coding different pods and containers. But Kubetail is a Bash script, so it requires nothing more than a shell.

Copyright © 2020 IDG Communications, Inc.