> For the complete documentation index, see [llms.txt](https://docs.prismacloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.prismacloud.io/admin-guide/32/install/deploy-defender/orchestrator/install-kubernetes-cri.md).

# Deploy Defenders as DaemonSets

Kubernetes lets you set up a cluster with the container runtime of your choice. Prisma Cloud supports Docker Engine, CRI-O, and cri-containerd.

When generating the YAML file or Helm chat to deploy the Defender DaemonSet, you can select the **Container Runtime type** on Prisma Cloud console from **Manage > Defenders > Defenders: Deployed > Manual deploy**.

Since Defenders need to have a view of other containers, this option is necessary to guide the communication.

If you use *containerd* on GKE, and you install Defender without selecting the `CRI-O` **Container Runtime type**, everything will appear to work properly, but you’ll have no images or container scan reports in **Monitor > Vulnerability** and **Monitor > Compliance pages** and you’ll have no runtime models in **Monitor > Runtime**. This happens because the Google Container Optimized Operating system (GCOOS) nodes have Docker Engine installed, but Kubernetes doesn’t use it. Defender thinks everything is OK because all of the integrations succeed, but the underlying runtime is actually different.

<figure><img src="/files/odKdCduQW6Edf56N1AoF" alt="container runtime type ui"><figcaption></figcaption></figure>

If you’re deploying Defender DaemonSets with twistcli, use the following flag with one of the container runtime types:

* `--container-runtime docker`
* `--container-runtime crio`
* `--container-runtime containerd`

When generating YAML from Console or twistcli, there is a simple change to the *yaml* file as seen below.

In this abbreviated version DEFENDER\_TYPE:daemonset will use the Docker interface.

To change the default containerd data directory from `/var/lib/containerd` to a custom directory (for example: `/var/lib/kubelet/containerd`), modify the `volumeMounts` and `volumes` sections. Here is an example:

To change the default containerd data directory from `/var/lib/containerd` to a custom directory (for example: `/var/lib/kubelet/containerd`), modify the `volumeMounts` and `volumes` sections. Here is an example:

In this abbreviated version DEFENDER\_TYPE:cri will use the CRI.

Similar to the Defenders, to customize the containerd data directory, modify the paths in the `volumeMounts` and `volumes` sections accordingly.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.prismacloud.io/admin-guide/32/install/deploy-defender/orchestrator/install-kubernetes-cri.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
