Kubernetes Tools Digest (Nov 2021): Represents All K8s Objects in a Graph
Every month, we curate the best tools from our weekly Kubernetes newsletter based on the interest that our subscribers showed. These tools have been discussed in this article.
Kubernetes being a platform for managing and orchestrating, has won the hearts of many and is still used to solve more problems, and its adoption keeps growing bigger.
With the wide adoption kubernetes have, its ecosystem has also grown comprehensive to the extent that you’ll hardly see any cloud-related problem that won’t have kubernetes or one of its associated tools be part of the solution. As earlier said, kubernetes has a big ecosystem of tools; we will briefly discuss some 5 kubernetes tools that you probably haven’t heard of but will undoubtedly ease some stresses you have in Kubernetes.
This is a Kubernetes tool written in Python to give developers the edge of writing and testing applications in a new way.
It is a tool that allows developers to have a local set up for development, either for Kubernetes or with Kubernetes. The tool has some benefits attached to it including, writing code in the IDE you’re used to, the ability to run feature-branches with adjacent services in a production-like kubernetes environment, using neat development features such as a debugger, and override environment variables. Gefyra can be used as soon as it’s installed on your computer. Gefyra controls locally installed kubernetes and Docker using Kubernetes Python Client. Once Gefyra gets installed, some conditions need to be met;
- Available Docker host for the user on the same machine that Gefyra is installed
- Container capabilities are required on both the computer and Kubernetes cluster.
- A node port needs to be open during development on the development cluster.
The tool aims to save developers the stress of switching back and forth by bringing the integration system closer to the developer and shortening the development cycles. The tool provides convenience for developers through its low setup time, high release cadence, and rapid development.
Before using Gefyra with Kubernetes, it does need a Kubernetes cluster, and there are Kubernetes distributions already made available on the local machine, but a KUBECONFIG connection is required. Cloud-based K8 clusters can be used as well.
A development setup triggers Gefyra to install any required cluster-side component then it becomes able to control both the development cluster and the machine.
After the development work is concluded, Gefyra totally removes all previously installed components. For Gefyra to execute all the above mentioned
- It needs to have a tunnel connecting the development cluster and machine
- A local end of the tunnel
- A cluster end of the tunnel
- A DNS resolver
- IP routing mechanisms
- A traffic interceptor
Kubecfg is a tool predefined to handle complex infrastructures. It manages Kubernetes resources as code and lets you reuse templates from patterns across your infrastructure on other services. Kubecfg has features like additional jsonnet built-in functions and optional garbage collection of removed objects from config. You can manage the templates/configuration as files in version control until the desired state of the configuration gets captured entirely. This can make its recreation easy to a QA cluster or recovery from disaster.
Kubecfg supports YAML, JSON, or jsonnet files. It relies on jsonnet to describe Kubernetes resources.
KubeScrape is an open source monitoring tool used in Kubernetes health tracking, metrics view, and cluster structure.
KubeScrape has a set of 5 pages for easy usage and tracking. There is the home page which is also the page that shows the cluster health and any important information about the cluster.
There is the node details page which shows basic information about your pods for a particular node. If you click on any pod, it will take you to the pod details page with all the graphical representations of CPU usage and saturation, Memory usage, and saturation for each container of that particular pod. Then there are the alert page and the visualizer page. The alert page shows the alerts in the firing state tracked by Prometheus. The Visualizer page shows a relational diagram of your Kubernetes cluster objects.
It is a set of solutions for reusing idle kubernetes resources of nodes by running extra batch jobs. The resources are from underutilized online jobs during low-traffic periods. Caelus manages multiple resource isolation mechanisms and checks metrics for abnormalities to make the batch jobs compatible with online jobs.
Caelus can run batch jobs on YARN or Kubernetes and also predicts the total usage of nodes. It can throttle or kill batch jobs if abnormalities like latency spikes are detected.
Caboto is a Kubernetes semantic analysis toolkit that contains a lightweight Python library for analyzing plain Kubernetes manifests without running a cluster.
All Kubernetes objects are represented in a graph structure based on NetworkX, a Python package for complex networks.
Caboto can also run as a CLI script. You can also plot the Caboto graph with mathplotlib
Get similar stories in your inbox weekly, for free
Share this story:
In this blog post, we’ll help you ensure that your backup systems will perform as …