> 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/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="https://991698089-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjkReOE2QgjHPl2bpbcR3%2Fuploads%2Fgit-blob-0cd393b9eb679ad1e547c83eb2af865d8b10f5fe%2Fcontainer-runtime-type-ui.png?alt=media" 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
