This document clarifies the installation of the Kubernetes integration for a cluster with Windows and Linux nodes. The instrumentation process installs the nri-bundle
chart into the Linux nodes, then creates a newrelic-logging
sub-chart. The subchart allows the integration to run on both Windows and Linux nodes.
Note that the new nri-kubernetes
v3 architecture doesn't yet support Windows. We install the newrelic-infrastructure
chart as a standalone release, which lets you monitor your Windows workloads.
Prerequisites
To use this integration, you should:
Have a hybrid cluster for Linux and Windows, with the ability to pull container images to the Windows nodes.
Create a namespace:
bash$helm repo add newrelic https://helm-charts.newrelic.com$helm repo update$kubectl create namespace newrelic
Install the integration on a hybrid cluster
Define your subcharts
Create a Yaml file that defines your values. This file defines the different subcharts that Helm will install and then assigns values to them.
An example of a yaml file that you could name values.yaml
is this:
global:licenseKey: mykeycluster: myclusterlowDataMode: true
newrelic-infrastructure:enabled: truenodeSelector: kubernetes.io/os: linux
kube-state-metrics:enabled: trueimage: tag: v2.10.0nodeSelector: kubernetes.io/os: linux
nri-kube-events:enabled: truenodeSelector: kubernetes.io/os: linux
newrelic-logging:enabled: trueenableWindows: true
nri-metadata-injection:enabled: truenodeSelector: kubernetes.io/os: linux
newrelic-prometheus-agent:enabled: trueverboseLog: trueconfig: kubernetes: integrations_filter: enabled: falsenodeSelector: kubernetes.io/os: linux
Here are some important things to keep in mind:
- Other subcharts may exist in
nri-bundle
that are not represented in this file. If you'd like to add those subcharts, then add their key or value pairs to your yaml file. - The
newrelic/nri-bundle
chart contains the latest updates for Linux-based nodes. - You can also configure the
newrelic-logging
chart during this step to install to both Linux and Windows nodes. - You must configure a
NodeSelector
to avoid scheduling to Windows. If an installation fails on a mixed cluster using default values from guided install, add thenodeSelector
values.
Install newrelic-bundle
Run this command to install the newrelic-bundle
:
$helm upgrade --install newrelic-bundle newrelic/nri-bundle --namespace newrelic -f values-newrelic.yaml
All pods should start when Helm starts, including a logging pod on each Windows node.
Define newrelic-infrastructure
for Windows nodes
Create a second yaml file to add values for the newrelic-infrastructure
v2 chart. This is a separate yaml file from the one you created in step one. This is an example yaml file for newrelic-infrastructure
that you could name windows-values.yaml
:
global:licenseKey: mykeycluster: mycluster
enableLinux: falseenableWindows: truewindowsOsList:- version: 2022 imageTag: 2-windows-ltsc2022-alpha buildNumber: 10.0.20348windowsNodeSelector:kubernetes.io/os: windows
The example adds values for a Windows 2022 Node Group or Node Pool.
If you're running a different Windows Node Group or Node pool version, then adjust the windowsOsList
section with the appropriate values. You can view these values in our Windows install section.
Install newrelic-infrastructure
chart
Run this command to install v2.7.2 version of the newrelic-infrastructure
chart:
$helm upgrade --install newrelic-windows newrelic/newrelic-infrastructure --namespace newrelic --version 2.7.2 -f windows-values.yaml
When Helm returns, you should see newrelic-windows-newrelic-infrastructure
pods on each Windows node.
View your data
Once you generate some data, you can view it in New Relic. Go to one.newrelic.com > All capabilities > Kubernetes, then select your cluster.
What's next?
To learn more about exploring your Kubernetes data, check out these docs: