---
title: Kubernetes integration: compatibility and requirements
source: https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/get-started/kubernetes-integration-compatibility-requirements
---

The [Kubernetes integration](https://docs.newrelic.com/docs/integrations/kubernetes-integration/get-started/introduction-kubernetes-integration) is compatible with many different platforms including GKE, EKS, AKS, OKE, OpenShift, and more. Each has a different compatibility with our integration. You can find more information in this page.

## Requirements [#reqs]

The New Relic Kubernetes integration requires a New Relic account. If you haven't already, create your free New Relic account below to start monitoring your data today.

You'll also need a Linux distribution [compatible with New Relic infrastructure agent](https://docs.newrelic.com/docs/infrastructure/new-relic-infrastructure/getting-started/compatibility-requirements-new-relic-infrastructure#operating-systems).

> #### ⚠️ IMPORTANT
>
> -   `kube-state-metrics` v2 or higher is supported from integration version 3.6.0 or higher.
>
> -   Install the Kubernetes integration up to version 3.5.0 if you're using `kube-state-metrics` 1.9.8 or lower.
>
> -   Check the `values.yaml` file if you're updating `kube-state-metrics` from v1.9.8 to v2 or higher because some variables may have changed.

### Compatibility and requirements for Helm [#req-helm]

-   Make sure you've [Helm](https://github.com/helm/helm?tab=readme-ov-file#install) is installed and that the minimum supported version is v3. Version 3 of the Kubernetes integration requires Helm version 3.

-   Choose a display name for your cluster. For example, you could use this output:

    ```shell
    kubectl config current-context
    ```

### Compatibility and requirements for Manifest [#req-manifest]

If custom manifests have been used instead of Helm, you will need to first remove the old installation using `kubectl delete -f previous-manifest-file.yml`, and then proceed through the guided installer again. This will generate an updated set of manifests that can be deployed using `kubectl apply -f manifest-file.yml`.

### Compatibility and requirements for Windows [#req-windows]

To monitor Windows nodes with the New Relic Kubernetes integration, your environment must meet the following requirements.

Windows monitoring supports two modes:

-   **Privileged mode**, which uses Windows HostProcess containers to collect full node-level metrics. The privileged mode is enabled by default.
-   **Unprivileged mode**, which runs as a standard container user with reduced host visibility.

For details on how these modes work and guidance on configuring them securely, see [Privileged vs. unprivileged mode](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/advanced-configuration/k8s-privileged-mode). For complete setup instructions, see [Monitor Windows nodes](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/installation/windows).

## Privileged mode requirements

By default, the New Relic Kubernetes integration chart configures the Infrastructure Agent sidecar to run in **privileged mode** (`privileged: true`). This level of access is required to collect deep system metrics (such as storage I/O, physical network interfaces, and system processes) from the underlying host's `/proc` and `/sys` filesystems.

If your cluster's security policies (e.g., Pod Security Standards or OpenShift SCCs) do not allow privileged containers, you may need to disable this setting.

For detailed instructions on how to disable privileged mode and a full list of the metrics that will be unavailable, see [Privileged vs. unprivileged mode](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/advanced-configuration/k8s-privileged-mode).

## Node requirements

-   For Linux node: Your Kubernetes cluster must include at least one Linux node. The core components of the integration are deployed on a Linux node to enable monitoring across the entire cluster.
-   For Windows node: We support monitoring nodes running Windows Server LTSC versions 2019 and 2022.

    > #### ⚠️ IMPORTANT
    >
    > Your cloud provider may support different Windows versions depending on the Kubernetes version your cluster is running. Always confirm that your node's operating system version is supported by your cloud provider.

Due to limitations in cloud provider offerings and Kubernetes itself, several key installation scenarios are not supported for Windows nodes, including but not limited to:

-   Windows nodes running in Red Hat OpenShift clusters.
-   Amazon EKS Fargate clusters, as Fargate supports only Linux nodes.
-   Google GKE Autopilot clusters, as Autopilot supports only Linux nodes.
-   Windows privileged mode on Google GKE clusters, as GKE doesn't support Windows `HostProcess` containers. You can still monitor Windows nodes on GKE in [unprivileged mode](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/advanced-configuration/k8s-privileged-mode/#windows-nodes).

## Container runtime [#containers]

Our Kubernetes integration is [CRI](https://kubernetes.io/docs/concepts/architecture/cri)-agnostic. It's been specifically tested to be compatible with Containerd. Note that Dockershim has been removed from the Kubernetes project as of release 1.24. Read the [Dockershim Removal FAQ](https://kubernetes.io/blog/2022/02/17/dockershim-faq/) for further details.

## Compatibility [#compatibility]

> #### ⚠️ IMPORTANT
>
> If you are using Openshift, you can also use `kubectl` most of the time but be careful that `kubectl` does not have commands like `oc login` or `oc adm`. You may need to use `oc` instead of `kubectl`.

Our integration is compatible and is continuously tested on the following Kubernetes versions:

|                    | Versions     |
| ------------------ | ------------ |
| Kubernetes cluster | 1.31 to 1.35 |

> #### ⚠️ IMPORTANT
>
> Starting from Kubernetes version 1.26, `@autoscaling/v2` has replaced the `@autoscaling/v2beta2` API. For continued `HorizontalPodAutoscaling` metric reporting, you must install `kube-state-metrics` version 2.7+ on the Kubernetes version 1.26+ clusters, because only `kube-state-metrics` v2.7+ can support the `@autoscaling/v2` API.

### Kubernetes Flavors

Kubernetes integration is compatible with different flavors. We tested the integration with the following ones:

| Flavor                                                     | Notes                                                                                                                                                                                              |
| ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Minikube                                                   |                                                                                                                                                                                                    |
| Kind                                                       |                                                                                                                                                                                                    |
| K3s                                                        |                                                                                                                                                                                                    |
| Kubeadm                                                    |                                                                                                                                                                                                    |
| Amazon Elastic Kubernetes Service (EKS)                    |                                                                                                                                                                                                    |
| Amazon Elastic Kubernetes Service Anywhere (EKS-Anywhere)  |                                                                                                                                                                                                    |
| Amazon Elastic Kubernetes Service on Fargate (EKS-Fargate) | [Fargate installation docs](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/installation/kubernetes-eks-fargate)                                                            |
| Rancher Kubernetes Engine (RKE1)                           | [Extra configuration](https://docs.newrelic.com/docs/integrations/kubernetes-integration/installation/configure-control-plane-monitoring#rancher) is needed to instrument control plane components |
| Azure Kubernetes Service (AKS)                             |                                                                                                                                                                                                    |
| Google Kubernetes Engine (GKE)                             | Compatible with [standard and autopilot modes](https://cloud.google.com/kubernetes-engine/docs/concepts/choose-cluster-mode).                                                                      |
| Oracle Kubernetes Engine (OKE)                             | OKE uses CRI-O as its default container runtime. When configuring APM auto-attach, prepend `docker.io/` to agent image paths. For example: `image: docker.io/newrelic/newrelic-java-init:latest`.  |
| OpenShift                                                  | Tested with version 4.20                                                                                                                                                                           |
| VMware Tanzu                                               | Compatible with VMware Tanzu (Pivotal Platform) version 2.5 to 2.11, and Ops Manager version 2.5 to 2.10                                                                                           |
| VMware vSphere Kubernetes Service (VKS)                    | Compatible with VKS version 3.x, running on vSphere Supervisor 9.0 to 9.1 (vSphere 8.x and 9.x)                                                                                                    |

Depending on the installation method, the [control plane monitoring](https://docs.newrelic.com/docs/integrations/kubernetes-integration/installation/configure-control-plane-monitoring) is not available or may need extra configuration.

For example:

-   Only API Server metrics are scrapable and available to instrument managed clusters (GKE, EKS, AKS) control plane because no endpoint exposes the needed metrics for etcd, scheduler and controller manager.
-   To instrument Rancher control plane, since components `/metrics` are not always reachable by default and can't be autodiscovered, some [extra configuration](https://docs.newrelic.com/docs/integrations/kubernetes-integration/installation/configure-control-plane-monitoring#rancher) is needed.

## Resource requirements

When deploying the New Relic Kubernetes integration, it is important to allocate appropriate resources to ensure the monitoring components operate efficiently.

The following are the recommended minimum resource requests and limits for each of the components deployed by the [newrelic_infrastructure](https://github.com/newrelic/nri-kubernetes/blob/main/charts/newrelic-infrastructure/values.yaml) chart.

### [Kubelet component](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/get-started/kubernetes-components/#nrk8s-kubelet)

The following containers are included in the Kubelet component pod deployed in each Linux node.

**Kubelet container**

-   **CPU**:
    -   **Request**: `100m`
-   **Memory**:
    -   **Request**: `150M`
    -   **Limit**: `300M`

**Agent container**

-   **CPU**:
    -   **Request**: `100m`
-   **Memory**:
    -   **Request**: `150M`
    -   **Limit**: `300M`

### [Kubelet component - Windows](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/get-started/kubernetes-components/#nrk8s-kubelet-windows)

The following containers are included in the Kubelet component pod deployed in each Windows node, when Windows is enabled.

**Kubelet container**

-   **CPU**:
    -   **Request**: `100m`
-   **Memory**:
    -   **Request**: `150M`
    -   **Limit**: `300M`

**Agent container**

-   **CPU**:
    -   **Request**: `100m`
-   **Memory**:
    -   **Request**: `150M`
    -   **Limit**: `300M`

### [Kube State Metric component](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/get-started/kubernetes-components/#nrk8s-ksm)

**KSM container**

-   **CPU**:
    -   **Request**: `100m`
-   **Memory**:
    -   **Request**: `150M`
    -   **Limit**: `850M`

**Forwarder container**

-   **CPU**:
    -   **Request**: `100m`
-   **Memory**:
    -   **Request**: `150M`
    -   **Limit**: `850M`

### [Control plane component](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/get-started/kubernetes-components/#nrk8s-kubelet)

-   **CPU**:
    -   **Request**: `100m`
-   **Memory**:
    -   **Request**: `150M`
    -   **Limit**: `300M`

**Agent container**

-   **CPU**:
    -   **Request**: `100m`
-   **Memory**:
    -   **Request**: `150M`
    -   **Limit**: `300M`

The following are the recommended resources requests and limits required by other components deployed as part of the [nri-bundle](https://docs.newrelic.com/docs/kubernetes-pixie/kubernetes-integration/get-started/kubernetes-components/#components)

### [Metadata injection](https://github.com/newrelic/k8s-metadata-injection/tree/main/charts/nri-metadata-injection)

-   **CPU**:
    -   **Request**: `100m`
-   **Memory**:
    -   **Request**: `30M`
    -   **Limit**: `80M`

### [Logging](https://github.com/newrelic/helm-charts/tree/master/charts/newrelic-logging)

The following containers are included in the New Relic logging pod deployed in each node.

-   **CPU**:
    -   **Request**: `250m`
    -   **Limit**: `500m`
-   **Memory**:
    -   **Request**: `64M`
    -   **Limit**: `128M`

### Considerations

-   **Cluster Size**: These resource recommendations are for typical cluster sizes. Larger clusters with more nodes and pods may require increased resource allocations to handle the additional data volume.

-   **Custom Configurations**: If you enable additional features or custom configurations, consider adjusting the resources accordingly.

-   **Monitoring and Adjustment**: After deployment, monitor the resource usage of these pods and adjust the requests and limits based on actual usage to optimize performance and cost.

These resource specifications can be adjusted in the `values.yaml` file of the Helm chart used for deploying the New Relic Kubernetes integration.
By ensuring these resource requirements are met, you can maintain efficient and effective monitoring of your Kubernetes cluster with New Relic.
