• /
  • EnglishEspañol日本語한국어Português
  • Log inStart now

Install Kubernetes on a hybrid cluster with Windows and Linux nodes

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: mykey
cluster: mycluster
lowDataMode: true
newrelic-infrastructure:
enabled: true
nodeSelector:
kubernetes.io/os: linux
kube-state-metrics:
enabled: true
image:
tag: v2.10.0
nodeSelector:
kubernetes.io/os: linux
nri-kube-events:
enabled: true
nodeSelector:
kubernetes.io/os: linux
newrelic-logging:
enabled: true
enableWindows: true
nri-metadata-injection:
enabled: true
nodeSelector:
kubernetes.io/os: linux
newrelic-prometheus-agent:
enabled: true
verboseLog: true
config:
kubernetes:
integrations_filter:
enabled: false
nodeSelector:
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 the nodeSelector values.

Install newrelic-bundle

Run this command to install the newrelic-bundle:

bash
$
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: mykey
cluster: mycluster
enableLinux: false
enableWindows: true
windowsOsList:
- version: 2022
imageTag: 2-windows-ltsc2022-alpha
buildNumber: 10.0.20348
windowsNodeSelector:
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:

bash
$
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.

What's next?

To learn more about exploring your Kubernetes data, check out these docs:

Learn about Kubernetes cluster

Query your Kubernetes data

Set alerts on Kubernetes

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.