Skip to content

Commit 5a1ade2

Browse files
AugustasVTim Bannisterchrismetz09reylejanotengqm
authored
“Migrating telemetry and security agents from dockershim” task (#31607)
* Telemetery_and_security_agents_vendors Signed-off-by: AugustasV <[email protected]> * rename_dockershim Signed-off-by: AugustasV <[email protected]> * formatting and links update Signed-off-by: AugustasV <[email protected]> * Update content/en/docs/tasks/administer-cluster/migrating-from-dockershim/migrating-telemetry-and-security-agents.md Co-authored-by: Tim Bannister <[email protected]> * Apply suggestions from code review Co-authored-by: Tim Bannister <[email protected]> * spaces and thirdparty-content tag Signed-off-by: AugustasV <[email protected]> * formatting Signed-off-by: AugustasV <[email protected]> * Update content/en/docs/tasks/administer-cluster/migrating-from-dockershim/migrating-telemetry-and-security-agents.md Co-authored-by: chrismetz09 <[email protected]> * Apply suggestions from code review Co-authored-by: Rey Lejano <[email protected]> * formatting Signed-off-by: AugustasV <[email protected]> * Apply suggestions from code review Co-authored-by: Qiming Teng <[email protected]> * zacharysarah-code-review-suggestions Co-authored-by: ZSC <[email protected]> Co-authored-by: Tim Bannister <[email protected]> Co-authored-by: chrismetz09 <[email protected]> Co-authored-by: Rey Lejano <[email protected]> Co-authored-by: Qiming Teng <[email protected]> Co-authored-by: ZSC <[email protected]>
1 parent 1995a41 commit 5a1ade2

File tree

1 file changed

+100
-13
lines changed

1 file changed

+100
-13
lines changed

content/en/docs/tasks/administer-cluster/migrating-from-dockershim/migrating-telemetry-and-security-agents.md

Lines changed: 100 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,33 @@ weight: 70
88

99
<!-- overview -->
1010

11-
Kubernetes' support for direct integration with Docker Engine is deprecated, and will be removed. Most apps do not have a direct dependency on runtime hosting containers. However, there are still a lot of telemetry and monitoring agents that has a dependency on docker to collect containers metadata, logs and metrics. This document aggregates information on how to detect these dependencies and links on how to migrate these agents to use generic tools or alternative runtimes.
11+
{{% thirdparty-content %}}
12+
13+
Kubernetes' support for direct integration with Docker Engine is deprecated and
14+
has been removed. Most apps do not have a direct dependency on runtime hosting
15+
containers. However, there are still a lot of telemetry and monitoring agents
16+
that have a dependency on Docker to collect containers metadata, logs, and
17+
metrics. This document aggregates information on how to detect these
18+
dependencies as well as links on how to migrate these agents to use generic tools or
19+
alternative runtimes.
1220

1321
## Telemetry and security agents
1422

15-
Within a Kubernetes cluster there are a few different ways to run telemetry or security agents.
16-
Some agents have a direct dependency on Docker Engine when they run as DaemonSets or
17-
directly on nodes.
23+
Within a Kubernetes cluster there are a few different ways to run telemetry or
24+
security agents. Some agents have a direct dependency on Docker Engine when
25+
they run as DaemonSets or directly on nodes.
1826

1927
### Why do some telemetry agents communicate with Docker Engine?
2028

2129
Historically, Kubernetes was written to work specifically with Docker Engine.
22-
Kubernetes took care of networking and scheduling, relying on Docker Engine for launching
23-
and running containers (within Pods) on a node. Some information that is relevant to telemetry,
24-
such as a pod name, is only available from Kubernetes components. Other data, such as container
25-
metrics, is not the responsibility of the container runtime. Early telemetry agents needed to query the
26-
container runtime **and** Kubernetes to report an accurate picture. Over time, Kubernetes gained
27-
the ability to support multiple runtimes, and now supports any runtime that is compatible with
28-
the container runtime interface.
30+
Kubernetes took care of networking and scheduling, relying on Docker Engine for
31+
launching and running containers (within Pods) on a node. Some information that
32+
is relevant to telemetry, such as a pod name, is only available from Kubernetes
33+
components. Other data, such as container metrics, is not the responsibility of
34+
the container runtime. Early telemetry agents needed to query the container
35+
runtime *and* Kubernetes to report an accurate picture. Over time, Kubernetes
36+
gained the ability to support multiple runtimes, and now supports any runtime
37+
that is compatible with the [container runtime interface](/docs/concepts/architecture/cri/).
2938

3039
Some telemetry agents rely specifically on Docker Engine tooling. For example, an agent
3140
might run a command such as
@@ -68,12 +77,90 @@ The script above only detects the most common uses.
6877

6978
### Detecting Docker dependency from node agents
7079

71-
In case your cluster nodes are customized and install additional security and
72-
telemetry agents on the node, make sure to check with the vendor of the agent whether it has dependency on Docker.
80+
If your cluster nodes are customized and install additional security and
81+
telemetry agents on the node, check with the agent vendor
82+
to verify whether it has any dependency on Docker.
7383

7484
### Telemetry and security agent vendors
7585

86+
This section is intended to aggregate information about various telemetry and
87+
security agents that may have a dependency on container runtimes.
88+
7689
We keep the work in progress version of migration instructions for various telemetry and security agent vendors
7790
in [Google doc](https://docs.google.com/document/d/1ZFi4uKit63ga5sxEiZblfb-c23lFhvy6RXVPikS8wf0/edit#).
7891
Please contact the vendor to get up to date instructions for migrating from dockershim.
7992

93+
## Migration from dockershim
94+
95+
### [Aqua](https://www.aquasec.com)
96+
97+
No changes are needed: everything should work seamlessly on the runtime switch.
98+
99+
### [Datadog](https://www.datadoghq.com/product/)
100+
101+
How to migrate:
102+
[Docker deprecation in Kubernetes](https://docs.datadoghq.com/agent/guide/docker-deprecation/)
103+
The pod that accesses Docker Engine may have a name containing any of:
104+
105+
- `datadog-agent`
106+
- `datadog`
107+
- `dd-agent`
108+
109+
### [Dynatrace](https://www.dynatrace.com/)
110+
111+
How to migrate:
112+
[Migrating from Docker-only to generic container metrics in Dynatrace](https://community.dynatrace.com/t5/Best-practices/Migrating-from-Docker-only-to-generic-container-metrics-in/m-p/167030#M49)
113+
114+
Containerd support announcement: [Get automated full-stack visibility into
115+
containerd-based Kubernetes
116+
environments](https://www.dynatrace.com/news/blog/get-automated-full-stack-visibility-into-containerd-based-kubernetes-environments/)
117+
118+
CRI-O support announcement: [Get automated full-stack visibility into your CRI-O Kubernetes containers (Beta)](https://www.dynatrace.com/news/blog/get-automated-full-stack-visibility-into-your-cri-o-kubernetes-containers-beta/)
119+
120+
The pod accessing Docker may have name containing:
121+
- `dynatrace-oneagent`
122+
123+
### [Falco](https://falco.org)
124+
125+
How to migrate:
126+
127+
[Migrate Falco from dockershim](https://falco.org/docs/getting-started/deployment/#docker-deprecation-in-kubernetes)
128+
Falco supports any CRI-compatible runtime (containerd is used in the default configuration); the documentation explains all details.
129+
The pod accessing Docker may have name containing:
130+
- `falco`
131+
132+
### [Prisma Cloud Compute](https://docs.paloaltonetworks.com/prisma/prisma-cloud.html)
133+
134+
Check [documentation for Prisma Cloud](https://docs.paloaltonetworks.com/prisma/prisma-cloud/prisma-cloud-admin-compute/install/install_kubernetes.html),
135+
under the "Install Prisma Cloud on a CRI (non-Docker) cluster" section.
136+
The pod accessing Docker may be named like:
137+
- `twistlock-defender-ds`
138+
139+
### [SignalFx (Splunk)](https://www.splunk.com/en_us/investor-relations/acquisitions/signalfx.html)
140+
141+
The SignalFx Smart Agent (deprecated) uses several different monitors for Kubernetes including
142+
`kubernetes-cluster`, `kubelet-stats/kubelet-metrics`, and `docker-container-stats`.
143+
The `kubelet-stats` monitor was previously deprecated by the vendor, in favor of `kubelet-metrics`.
144+
The `docker-container-stats` monitor is the one affected by dockershim removal.
145+
Do not use the `docker-container-stats` with container runtimes other than Docker Engine.
146+
147+
148+
How to migrate from dockershim-dependant agent:
149+
1. Remove `docker-container-stats` from the list of [configured monitors](https://github.com/signalfx/signalfx-agent/blob/main/docs/monitor-config.md).
150+
Note, keeping this monitor enabled with non-dockershim runtime will result in incorrect metrics
151+
being reported when docker is installed on node and no metrics when docker is not installed.
152+
2. [Enable and configure `kubelet-metrics`](https://github.com/signalfx/signalfx-agent/blob/main/docs/monitors/kubelet-metrics.md) monitor.
153+
154+
155+
{{< note >}}
156+
The set of collected metrics will change. Review your alerting rules and dashboards.
157+
{{< /note >}}
158+
159+
The Pod accessing Docker may be named something like:
160+
161+
- `signalfx-agent`
162+
163+
### Yahoo Kubectl Flame
164+
165+
Flame does not support container runtimes other than Docker. See
166+
[https://github.com/yahoo/kubectl-flame/issues/51](https://github.com/yahoo/kubectl-flame/issues/51)

0 commit comments

Comments
 (0)