Werk #22907: New Kubernetes monitoring architecture introduced with Checkmk 3.0
| Component | Checks & agents | ||
| Title | New Kubernetes monitoring architecture introduced with Checkmk 3.0 | ||
| Date | Oct 28, 2026 | ||
| Level | Prominent Change | ||
| Class | New Feature | ||
| Compatibility | Incompatible - Manual interaction might be required | ||
| Checkmk versions & editions |
|
As announced in Werk #22179, the former agent_kube special agent is now being
replaced. All of the work performed by agent_kube is now done by a new
in-cluster agent called Checkmk Kubernetes Agent.
Main features of the new Kubernetes monitoring architecture
The new Kubernetes monitoring in Checkmk 3.0 provides new ways of connecting Checkmk to your cluster and will allow you to scale in ways that were not possible before. With the new Kubernetes Quick Setup, setting it up is easier and faster than ever before.
Quick Setup for easy deployment of the Checkmk Kubernetes Agent
Checkmk 3.0 also introduces a new Kubernetes Quick Setup which guides you through setting up Checkmk Kubernetes Agent in your cluster.
Go to Setup > Quick Setup > Kubernetes and follow the wizard filling in the
necessary information, and Checkmk will generate a Helm values.yaml file for
you along with the required authentication Secret manifest for your environment.
Just download these files, run the commands that the Quick Setup provides, and
start monitoring your cluster.
Pull mode
The former agent_kube special agent has been replaced with agent_kube_v2
which can query Checkmk Kubernetes Agent and pull monitoring data from
it. Simply deploy the agent into your cluster, configure authentication, expose
a Service pointing at the agent, and let Checkmk pull your monitoring data in
from the agent.
Push mode
For Checkmk Ultimate and Checkmk Cloud customers, support for push mode is available, allowing you to push monitoring data from your cluster directly into Checkmk. You no longer need to expose anything in your cluster to Checkmk (over the public internet, in the case of Checkmk Cloud) in order to monitor it. The agent connects to Checkmk, not the other way around.
OpenTelemetry
For Checkmk Ultimate and Checkmk Cloud customers, support for monitoring your cluster's performance metrics via OpenTelemetry (OTel) is available, allowing you to monitor pods and their containers without creating Checkmk hosts. This reduces load on the monitoring core substantially. Enable Checkmk's built-in OpenTelemetry collector (see the user guide for its prerequisites) and configure Checkmk Kubernetes Agent via Helm to push data into the collector. You can view these metrics in custom graphs allowing you to quickly identify and troubleshoot problems that occur in your workloads. These metrics are pushed with the standard Kubernetes OpenTelemetry resource attributes, allowing you to apply filters on your graphs based on namespace, node, workload, among others.
Selective monitoring of Kubernetes objects
Ensure that your most important workloads are created as Checkmk hosts while avoiding the configuration churn caused by highly dynamic objects. Simply add a Kubernetes annotation to selectively include or exclude specific objects from host creation. This for example allows you to create hosts for selected pods while skipping the rest. The data for these skipped objects is still accounted for in the workload aggregation hosts such as node, deployment, daemonset, namespace, and cluster.
Performance and scalability
Checkmk Kubernetes Agent has been designed to work on large-scale clusters and to keep memory utilization as low as possible. It is comprised of 2 components, the node scraper and the cluster aggregator. A DaemonSet runs a very small scraper process on each node to collect and ship metrics about the node and its running workloads to the cluster aggregator. The aggregator caches the state of the cluster, so its memory usage is small by default and grows linearly with the size of your cluster.
The design of Checkmk Kubernetes Agent also places much less strain on your
cluster's API server than agent_kube in the past. The agent makes use of
Kubernetes watches which are a way to subscribe to updates in real-time without
having to re-scan the entire cluster for the current state each Checkmk check
cycle. When the agent's aggregator process begins, it will perform an initial
one-time list on the cluster for all monitored kinds and then maintain that
list via incremental, real-time updates for as long as the process runs. If a
network interruption occurs, it will automatically negotiate with Kubernetes to
synchronize internal state and "catch up" on missed events.
Migration
A manual migration is required from the old special agent to the new in-cluster agent
The new agent produces the same hosts and services as before, so you can switch without interrupting the monitoring of your Kubernetes objects.
-
Note the cluster name used in your existing Kubernetes rule and the name of your cluster host. Use the same names below, otherwise your Kubernetes objects will be created as new hosts.
-
In Setup, delete the existing cluster host and disable the old Kubernetes rule, but do not activate changes yet. Your current monitoring keeps running until you activate. Historic metrics are kept. Keep your existing dynamic host management connection, since it continues to manage the hosts it created.
-
Run the Kubernetes Quick Setup with these names and deploy the new agent as instructed. If you deploy it into the same namespace as the old agent, choose a configuration name that differs from the name of your old Helm release, otherwise Helm replaces the old release instead of installing next to it. The Quick Setup uses the cluster name as the host name by default. If your old cluster host has a different name, select "Use an explicit host name" under "Checkmk host name" and enter the old name.
-
Activate all pending changes together, then run a service discovery on the cluster host.
-
Once the new monitoring works, uninstall the old Helm release.
If you prefer not to use the Quick Setup, deploy the new Helm chart yourself, reconfigure the existing cluster host for the new agent, and disable the old rule in the same activation.
If your previous dynamic host management connection was only used for Kubernetes, you can later delete it together with the hosts it created. The connection created by the Quick Setup then recreates these hosts. Deleting only the connection leaves its hosts unmanaged.
All configuration of monitoring data now happens in-cluster, via the Helm chart.
-
Your old (and now deprecated) Kubernetes special agent rule set is no longer used and there is no direct replacement for it in Checkmk itself.
-
Properties such as which Kubernetes kinds or namespaces are monitored are now configured via the Helm chart and require redeploying the Helm chart when modifying them.
-
An initial
values.yamlcan be generated via the new Kubernetes Quick Setup mentioned above. It is expected that most administrators will then maintain this file via GitOps tooling and modify it as their environment and monitoring needs change. You can see the full list of configurable options by running the commandhelm show values oci://ghcr.io/checkmk/charts/checkmk-agent --version '~3.0.0'.
Monitoring history and rules remain
- Your history and rules will still apply once you set up the new agent,
provided you use the same cluster name (used for generating piggyback host
names in Checkmk) and cluster host name (the host that "owns" the cluster in
Checkmk). Configure these during the Quick Setup wizard or using the
clusterNameandclusterHostNametop-level fields in yourvalues.yamlfile when deploying the Helm chart.
Deprecation of agent_kube
- As mentioned in Werk #22179, we have deprecated the old special agent
(
agent_kube) in Checkmk 3.0 with plans to remove it in Checkmk 3.1.
No cluster-specific specialization
- Special support for OpenShift has been removed for the reason that it is simply no longer necessary: Checkmk Kubernetes Agent works out of the box in OpenShift without needing special security policies in the vast majority of cases. The agent is Kubernetes-flavor-agnostic and designed to work in every cluster.
Versioning
The major and minor version of the agent correspond to the Checkmk release it
supports: Checkmk Kubernetes
Agent 3.0.* is intended to work with all Checkmk 3.0 patch-levels; 3.1.* is
intended to work with all Checkmk 3.1 patch-levels, and so on.