> For the complete documentation index, see [llms.txt](https://docs.bindplane.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bindplane.com/how-to-guides/cloud-and-platform-integrations/kubernetes/kubernetes-node-agent-on-gke-auto-pilot.md).

# Kubernetes Node Collector on GKE Auto Pilot

[GKE Autopilot](https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-overview) is not officially supported on the [Bindplane Node Collector](/deployment/kubernetes/collector/install.md#node) at this time. This is due to [volume mount restrictions](https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-security) that are in place on auto-pilot clusters.

The Bindplane [Node Collector](/deployment/kubernetes/collector/install.md#node) deployment manifest can be modified to deploy to auto-pilot clusters.

### Modifications

Follow the [Install Kubernetes Collectors](/deployment/kubernetes/collector/install.md) documentation. After downloading the YAML manifest, open it in your preferred text editor.

Modify the `volumes` section at `spec.template.spec.volumes` and comment or remove the following\
volume definitions:

* `runlog`
* `dockerlogs`

```yaml
volumes:
  - name: config
    emptyDir: {}
  # - name: runlog
  #   hostPath:
  #     path: /run/log/journal
  - name: varlog
    hostPath:
      path: /var/log
  # - name: dockerlogs
  #   hostPath:
  #     path: /var/lib/docker/containers
  - name: storage
    hostPath:
      path: /var/lib/observiq/otelcol/container
  - name: setup
    configMap:
      name: bindplane-node-agent-setup
```

Modify the `storage` volume to use an `emptyDir` volume type.

```yaml
- name: storage
  emptyDir: {}
  # hostPath:
  #   path: /var/lib/observiq/otelcol/container
```

Modify `opentelemetry-collector` container's `volumeMounts` at `spec.template.spec.containers` and comment or remove the following volume mount definitions:

* `runlog`
* `dockerlogs`

```yaml
volumeMounts:
  - mountPath: /etc/otel/config
    name: config
  # - mountPath: /run/log/journal
  #   name: runlog
  #   readOnly: true
  - mountPath: /var/log
    name: varlog
    readOnly: true
  # - mountPath: /var/lib/docker/containers
  #   name: dockerlogs
  #   readOnly: true
  - mountPath: /etc/otel/storage
    name: storage
```

### Apply

Once the modifications have been made, the YAML manifest can be applied to your clusters.

```bash
kubectl apply -f bindplane-agent.yaml
```

```bash
namespace/bindplane-agent created
serviceaccount/bindplane-agent created
clusterrole.rbac.authorization.k8s.io/bindplane-agent created
clusterrolebinding.rbac.authorization.k8s.io/bindplane-agent created
service/bindplane-node-agent created
service/bindplane-node-agent-headless created
configmap/bindplane-node-agent-setup created
daemonset.apps/bindplane-node-agent created
```

### Frequently Asked Questions

**Q: Will this support Docker-based clusters?**

**A:** No, however, GKE Auto Pilot clusters use the [containerd runtime](https://cloud.google.com/kubernetes-engine/docs/concepts/using-containerd) and do not require the docker volume mounts.

**Q: Is an emptyDir volume safe for configuration persistence**

**A:** The `hostPath` volume is used to ensure the collector's configuration is\
persisted in the unlikely event that the Bindplane Collector pod is updated and\
restarted during a Bindplane control plane outage. GKE Auto Pilot does not\
allow `hostPath` volumes, therefore a temporary volume is used to store the\
configuration pushed by Bindplane to the collector.


---

# 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.bindplane.com/how-to-guides/cloud-and-platform-integrations/kubernetes/kubernetes-node-agent-on-gke-auto-pilot.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.
