A integração do New Relic Kubernetes suporta nativamente o monitoramento de nós Windows junto com nós Linux no mesmo cluster — você não precisa de um Helm chart ou instalação separada.
Saiba como habilitar e configurar o monitoramento de nó do Windows. Para detalhes sobre o modelo de execução privilegiado vs. não privilegiado e considerações de segurança, consulte Modo privilegiado vs. não privilegiado. Para limitações de métrica específicas do Windows, consulte Limitações e resolução de problemas para Windows.
Pré-requisitos
Antes de habilitar o monitoramento do Windows, certifique-se de que seu cluster atenda aos seguintes requisitos:
- Compatibilidade e requisitos para nós Windows
- Windows Server LTSC 2019 (build
10.0.17763) ou LTSC 2022 (build10.0.20348). - A versão da imagem de contêiner deve corresponder exatamente à versão do SO do host Windows. O Windows suporta apenas isolamento de processo, não isolamento do Hyper-V.
- Nós Windows em execução em clusters Red Hat OpenShift não são suportados.
Importante
Contêineres Windows só podem ser executados em um host com exatamente a mesma versão e número de compilação do Windows. A integração cria um DaemonSet por versão suportada do Windows, agendando pods apenas para nós com uma compilação de SO correspondente.
Verifique a versão do seu nó Windows
Se você não tiver certeza de qual versão do Windows seus nós estão executando, consulte os rótulos dos nós diretamente:
$kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.node\.kubernetes\.io/windows-build}{"\n"}{end}'Isso imprime o valor do rótulo node.kubernetes.io/windows-build para cada nó, com o qual o DaemonSet nodeSelector da integração faz a correspondência. Você também pode executar systeminfo no próprio nó e comparar o número da compilação:
| Versão do Windows | Número de compilação |
|---|---|
| Windows Server LTSC 2019 | 10.0.17763 |
| Windows Server LTSC 2022 | 10.0.20348 |
Habilitar monitoramento do Windows
Para habilitar o monitoramento do Windows, defina enableWindows: true em seu values.yaml. Ao implantar via nri-bundle, passe isso sob a chave newrelic-infrastructure:
newrelic-infrastructure: enableWindows: trueAplique a alteração com um helm upgrade:
$helm upgrade newrelic-bundle newrelic/nri-bundle \> --namespace newrelic \> --reuse-values \> --set newrelic-infrastructure.enableWindows=truePor padrão, habilitar o Windows cria DaemonSets tanto para o LTSC 2019 quanto para o LTSC 2022. Consulte Configurar para versões específicas do Windows para restringir isso.
Configurar para versões específicas do Windows
A chave windowsOsList controla quais versões do Windows recebem DaemonSets. Por padrão, inclui ambas as versões suportadas. Para restringir o monitoramento apenas às versões do Windows realmente presentes no seu cluster, sobrescreva-o no seu values.yaml:
newrelic-infrastructure: enableWindows: true windowsOsList: - version: ltsc2022 imageTagSuffix: ltsc2022 buildNumber: 10.0.20348Cada entrada gera um DaemonSet separado. Pods são agendados apenas para nós cujo rótulo node.kubernetes.io/windows-build corresponde ao campo buildNumber. Isso evita que DaemonSets vazios apareçam no seu cluster.
Clusters mistos de Linux e Windows
Na v3, os nós Windows e Linux são monitorados usando o mesmo chart newrelic-infrastructure — você não precisa de uma instalação separada do chart como fazia na v2. O gráfico cria automaticamente:
- Um DaemonSet Linux com
nodeSelector: kubernetes.io/os: linux - Um DaemonSet do Windows por entrada em
windowsOsList, cada um comnodeSelector: kubernetes.io/os: windowse um seletor de número de build correspondente
Um values.yaml mínimo para um cluster híbrido:
global: licenseKey: YOUR_NEW_RELIC_LICENSE_KEY cluster: YOUR_CLUSTER_NAME
newrelic-infrastructure: enableWindows: true windowsOsList: - version: ltsc2022 imageTagSuffix: ltsc2022 buildNumber: 10.0.20348Instale ou atualize com:
$helm upgrade --install newrelic-bundle newrelic/nri-bundle \> --namespace newrelic --create-namespace \> -f values.yamlModo privilegiado
O monitoramento do Windows tem como padrão o modo privilegiado, que usa contêineres HostProcess do Windows para coletar métricas completas no nível do nó, incluindo CPU, memória, disco e rede. Isso é necessário para receber dados de SystemSample, StorageSample e NetworkSample dos nós do Windows.
Importante
O modo privilegiado não está disponível para nós Windows no GKE, pois o GKE não o suporta. Configure windows.privileged: false para executar em modo não privilegiado.
Para executar em modo não privilegiado, em vez disso:
newrelic-infrastructure: enableWindows: true windows: privileged: falseO modo não privilegiado desabilita as métricas de nível de host, mas pode ser exigido pelas políticas de segurança do cluster. Para um detalhamento completo de quais dados são afetados, consulte Modo privilegiado vs. não privilegiado.
Verifique a instalação
Após instalar ou atualizar, verifique se os DaemonSets foram criados:
$kubectl -n newrelic get daemonsetsVocê deve ver um DaemonSet para cada versão do Windows que você configurou junto com o DaemonSet do Linux:
$NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR$newrelic-bundle-nrk8s-kubelet 2 2 2 2 2 kubernetes.io/os=linux$newrelic-bundle-nrk8s-kubelet-windows-ltsc2019 0 0 0 0 0 kubernetes.io/os=windows,node.kubernetes.io/windows-build=10.0.17763$newrelic-bundle-nrk8s-kubelet-windows-ltsc2022 1 1 1 1 1 kubernetes.io/os=windows,node.kubernetes.io/windows-build=10.0.20348Uma contagem DESIRED de 0 para uma versão do Windows significa que não existem nós com esse número de compilação no cluster — este é o comportamento esperado, não um erro.
Para confirmar se os pods Windows estão em execução em seus nós:
$kubectl -n newrelic get pods -o wide | grep windowsConfiguração adicional
Adicionar seletores de nó
Por padrão, os DaemonSets do Windows selecionam nós usando kubernetes.io/os: windows. Você pode adicionar seletores extras para restringir o monitoramento a um subconjunto específico de nós Windows:
kubelet: windowsNodeSelector: kubernetes.io/os: windows node.kubernetes.io/windows-build: "10.0.20348" newrelic.com/monitoring-allowed: "true" # custom label you controlUse um registro de contêiner privado
Para fazer o download de imagens do Windows de um registro privado em vez do padrão:
images: windowsIntegration: registry: your-registry.example.com pullPolicy: Always windowsAgent: registry: your-registry.example.com pullPolicy: Always pullSecrets: - name: registry-credentialsDefinir limites de recursos
Os contêineres HostProcess competem por recursos diretamente no nó do Windows. O chart define um limite de memória padrão. Você pode ajustar isso, ou definir um limite de CPU. Para mais informações, consulte Requisitos de recursos.
kubelet: resources: requests: cpu: 50m memory: 150Mi limits: memory: 300MiUm limite de CPU não é definido por padrão — um limite rígido de CPU corre o risco de perder intervalos de scrape sob carga do nó. Se a política do seu cluster exigir um, avalie essa compensação antes de defini-lo.
Próximos passos
Modo privilegiado vs. não privilegiado
Saiba o que são contêineres HostProcess, qual acesso ao host eles concedem e as práticas recomendadas de segurança para o modo privilegiado do Windows.
Resolução de Problemas do Windows
Resolva problemas comuns de nós Windows, entenda as limitações de métricas do Windows e verifique quais métricas estão disponíveis em modo não privilegiado.
Monitorar dados do Kubernetes
Saiba como consultar e explorar as métricas de nó Windows junto com seus workloads Linux.