Kubernetes are getting more pivotal in this era of cloud computing due to the efficiency they provide to developers who can now build and deploy application environments more easily using containerization.
Monitoring and securing these containers is a lot more difficult than managing databases and the whole process can sound more daunting than it should be. Especially since their clusters can be hazardous if they’re not properly managed.
Today’s article brings you a list of several free and open-source Kubernetes tools with which, mixed with professional insight, efficient monitoring, and sufficient resources, your work can be a walk in the park.
1. Weave Scope
Weave Scope is a management tool for container monitoring and visualization. With it, you can better understand containerized microservices-based applications.
Kube-Prometheus is designed for monitoring Kubernetes applications. It is written in jsonnet and features Grafana dashboards, the option to collect Kubernetes manifests, and Prometheus rules in combination with scripts to develop an easy-to-operate Kubernetes cluster monitoring and documentation.
3. Kube-state-metrics (KSM)
Kube-state-metrics enables users to assess the Kubernetes API server to produce accurate metrics without the need to modify the state of objects like pods, nodes, and deployment.
Its main selling point is its ability to show the same stability grade as the Kubernetes API objects by providing raw, unmodified data.
Goldpinger is a debugging tool for monitoring the connectivity of nodes in Kubernetes clusters. With it, you can troubleshoot, visualize and create alerts for network issues.
Its main selling point is running as a DaemonSet on Kubernetes and producing Prometheus metrics.
Kube-ops-view is designed for generating an operational picture for multiple Kubernetes clusters. It does not allow any interaction so it can’t replace your Kubernetes dashboard. It works to simply render pictorial views indicating nodes and their status, individual pods, resource usage, code capacity, and tooltips.
Zabbix-docker-monitoring is designed for monitoring Docker containers. It features components including bilkio, containers config details, and net container metrics.
It also has offers native support for Docker containers and other container types like Linux containers.
Kube-bench, is an open-source tool designed by the Center for Internet Security (a semi-regulatory industry body that provides guidelines and benchmarking tests for writing secure code) to check if selected Kubernetes clusters and nodes meet CIS’s benchmarks.
Its features are worthwhile because they enable the assurance of authorization and authentication by highlighting non-compliant areas of a Kubernetes environment.
BotKube is designed for monitoring Kubernetes clusters, debugging critical deployments, and giving recommendations for best practices. It supports integration with Microsoft Teams, Mattermost, and Slack.
With BotKube, you can execute Kubectl commands on the Kubernetes cluster for debugging and make use of its components among which are bot interface, executor, event manager, notifier, and informer controller.
SPEKT8 is a Kubernetes cluster visualization tool for automatically building app and infrastructure topologies. With it, you can monitor and control microservices-based applications.
SPEKT8 has a dashboard that displays the status of pods, a list of container images, and details on ingress and services. There is also the option to represent nodes in table or graph mode.
Prometheus-Kubernetes is designed for monitoring Kubernetes clusters on AWS, Azure, and GCP. It features a preconfigured Grafana dashboard, preconfigured alerts, a robust Prometheus manager, and in-cluster development.
11. Kayrus (Prometheus-Kubernetes)
Kayrus is the most popular example of a Prometheus deployment. Its main feature is pre-configured alerts for Kubernetes clusters.
Kube-Slack is a Slack-based monitoring tool built specifically for Kubernetes pods. In a situation where a pod fails, it creates alerts and sends ErrImagePull to the slack channel.
ELK-Kubernetes is a repo for configuring EFK/ELK on top of Kubernetes. With it, you can deploy the EFK (Elasticsearch, Fluentd, and Kibana) stack with a preconfigured fluentd example.
Kconmon is a node connectivity tool for running TCP, UDP, and DNS tests. It features two components, agents and controllers, and more importantly, Prometheus metrics which displays correlation issues based on availability zones and nodes.
Tobs is a monitoring tool for easily viewing stack installation in Kubernetes clusters with a command-line tool for Helm charts. It features Opentelemetry, TimescaleDB, Kube-Prometheus, Promlens, Jaeger Query components, and Promscale.
Kubetop is a popular command tool that lists all the running nodes, pods in the nodes, and containers in clusters. It displays relevant information of running nodes e.g. memory and CPU usage.
Kubernetes-Prometheus is an open-source repository of Kubernetes manifest files you can use for setting up Prometheus on Kubernetes clusters.
Kubeaudit is a command-line tool for auditing clusters by checking them against predefined security checks. Such checks include whether the root account is disabled, whether privilege escalation is permitted in the system, and whether any Kubernetes images have been incorrectly tagged.
Deprek8ion is a repo comprising of rego policies for monitoring Kubernetes API depreciations.
20. X.509 Certificate Exporter
X.509 Certificate Exporter is a Go-based Prometheus exporter for exporting certificates focused on expiration monitoring. Before certificates expire, it works independently in Kubernetes clusters to notify users about TLS secrets, PEM encoded files, and Kubeconfigs.
ThermaKube is an open-source Kubernetes web app for monitoring the health and performance of Kubernetes clusters. It features support for AWS EKS deployments and has the ability to track real-time data alerts for pod crashes. With it, you can also visualize clusters.
Deprek8 is a repository of an evergreen policy for monitoring Kubernetes API depreciation.
Kube-hunter is an open-source tool for systematically scanning Kubernetes clusters in order to uncover security threats. With it, admins can sniff out vulnerabilities before they can be exploited by attackers.
Active-Monitor works with Argo workflows to provide deep cluster monitoring and self-healing. It features a Kubernetes resource controller with the ability to run health checks, resource usage, pod thread statistics, pod storage capacity, etc.
25. K8s Security Dashboard
K8s Security Dashboard is an application for logging Kubernetes architecture. You can use it for storing and parsing audit logs. From the K8s Security Dashboard, you can run K8sCop for static or streaming analysis of logs, deploy Fluent daemon to push logs to Elasticsearch, label events, view and import the Security Dashboard in Kibana, etc.
26. Grafana Dashboard
Grafana dashboard uses Prometheus to enable Kubernetes cluster monitoring. For you to run a Grafana dashboard, your Kubernetes cluster needs to have been deployed with Prometheus.
KubraKai is a monitoring web application for Kubernetes that enables users to create a profile for storing and tracking multiple Kubernetes clusters.
Its feature highlights include metric data selection, user authorization, user authentication, a user profile for endpoint monitoring, drag-and-drop graphs that display metrics, etc.
KubeScrape is a Kubernetes monitoring tool for tracking cluster health, metrics view, and structure. It has 5 pages with a homepage that displays vital information about the cluster at a glance. You can click on individual pods to get more details complete with a graphical representation of saturation, memory and CPU usage, etc. Its tracking is done using Prometheus.
K8s-sentry is an open-source Kubernetes monitoring tool configured to report operational issues to Sentry. It watches all warnings, error events, failed pods, or pod containers terminating with a non-zero exit code.
Kube-netc is an easy-to-use eBPF network monitor for Kubernetes. It uses a Kubernetes daemonSet to generate nodes networking statics.
Sensu is an open-source scalable tool for multi-cloud monitoring. It ships with several predefined APIs for external input, configuration, and data access. Its feature highlights include built-in autodiscovery and service checkers for monitoring health.
Istio is an open-source service mesh with which you can connect, control, and secure your Kubernetes services. Its feature highlights include automatic metrics, secure service-to-service cluster communications, log collection, auto load balancing, and traffic control.
Kubenurse is a network monitoring service for analyzing network connections in Kubernetes clusters and exporting the metrics as Prometheus endpoint.
Kubernurse can be used to monitor pod-to-apiserver communication, service, and ingress roundtrip latencies and errors, Kube-apiserver issues, Kubelet-to-kubelet network latencies, errors, etc.
As might already know, Kubernetes has the ever-present need of balancing access and security. While you will need to plan ahead of time on how to sort those issues out, the applications listed in this list are freely available to support you in making managing your services significantly less cumbersome.
Are there other applications that you would like to see added to this list? Feel free to make your suggestions in the discussion box below.