Esta página fornece informações sobre limitações e resolução de problemas para a integração do Kubernetes da New Relic quando executada em nós baseados em Windows.
Verificando a versão do Windows
Importante
Ao usar o contêiner no Windows, a versão do host do contêiner e a versão da imagem do contêiner devem ser as mesmas. Nossa integração com o Kubernetes pode ser executada nas versões LTSC 2019 e LTSC 2022 do Windows.
Para verificar sua versão do Windows, abra uma janela do PowerShell ou do prompt de comando e execute:
$systeminfoProcure as linhas que começam com OS Name e OS Version. Essas linhas fornecem as informações do sistema operacional e o número de compilação. Esta verificação é apenas para confirmar que seu ambiente é compatível; você não precisa especificar essas informações de versão durante a instalação.
- Windows Server LTSC 2019: corresponde ao número de compilação
10.0.17763. - Windows Server LTSC 2022: corresponde ao número de compilação
10.0.20348.
Conjuntos de Daemons do Windows
Quando o monitoramento Windows está habilitado, um Kubernetes DaemonSet é criado para cada versão Windows suportada, mas os pods são criados apenas para versões de nós Windows que existem no cluster. Isso significa que você pode ver vários DaemonSets específicos do Windows, mas nem todos eles terão uma contagem pod "desired" .
Por exemplo, em um cluster com dois nós Linux, um nó Windows LTSC 2022 e nenhum nó Windows LTSC 2019, a saída seria semelhante a esta:
$kubectl -n newrelic get daemonsets$NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE$<...snip...>$newrelic-bundle-nrk8s-kubelet 2 2 2 2 2 kubernetes.io/os=linux 24h$newrelic-bundle-nrk8s-kubelet-windows-ltsc2019 0 0 0 0 0 kubernetes.io/os=windows,node.kubernetes.io/windows-build=10.0.17763 24h$newrelic-bundle-nrk8s-kubelet-windows-ltsc2022 1 1 1 1 1 kubernetes.io/os=windows,node.kubernetes.io/windows-build=10.0.20348 24hSe desejar, você pode evitar que o gráfico crie DaemonSets desnecessários incluindo a chave windowsOsList no seu arquivo values.yaml personalizado durante a instalação via Helm Chart e especificando apenas a versão desejada:
windowsOsList: - version: ltsc2022 # Human-readable version identifier imageTagSuffix: ltsc2022 # Tag to be used for nodes running the windows version above buildNumber: 10.0.20348 # Build number for the nodes running the version above. Used as a selector.Limitações à integração do Kubernetes para Windows
O agente New Relic para Windows envia amostras de dados do Kubernetes, como K8sNodeSample e K8sPodSample. As limitações que se aplicam dependem de você estar executando em modo privilegiado (HostProcess) ou em modo não privilegiado.
Limitações do modo não privilegiado
Ao executar em modo não privilegiado (windows.privileged=false), o isolamento de contêiner Windows padrão impede que o agente acesse diretamente os recursos do host. As seguintes amostras não são geradas:
SystemSampleStorageSampleNetworkSampleProcessSample
Além disso, hostNetwork: true não pode ser definido na especificação do pod para contêineres padrão do Windows. Esta é uma limitação do Kubernetes que não se aplica ao usar pod HostProcess em modo privilegiado.
Lacunas de métricas do kubelet do Windows
As seguintes métricas do Kubernetes estão indisponíveis em todos os nós Windows, independentemente do modo, porque o kubelet do Windows não as expõe ou elas não são aplicáveis no Windows:
Nó:
memoryMajorPageFaultsPerSecond: Sempre retorna0.memoryPageFaults: Sempre retorna0.memoryRssBytes: Sempre retorna0.net.errorsPerSecond: Não enviado.net.rxBytesPerSecond: Não enviado.net.txBytesPerSecond: Não enviado.Não relevante para Windows:
fsInodes: Não enviado.fsInodesFree: Não enviado.fsInodesUsed: Não enviado.runtimeInodes: Não enviado.runtimeInodesFree: Não enviado.runtimeInodesUsed: Não enviado.
Contêiner:
containerID: Não enviado.containerImageID: Não enviado.memoryMappedFileBytes: Não enviado.memoryUsedBytes: Não enviado. UsememoryWorkingSetBytescomo alternativa.memoryUtilization: Não enviado (depende dememoryUsedBytes). Você pode calcular uma métrica semelhante usandomemoryWorkingSetBytes/memoryLimitBytes.requestedMemoryUtilization: Não enviado (depende dememoryUsedBytes). Você pode calcular uma métrica semelhante usandomemoryWorkingSetBytes/memoryRequestedBytes.- Não relevante para Windows:
cpuCfs*: Todos os valorescpuCfs*não foram enviados.
Volume:
fsUsedBytes: Sempre retorna0.fsUsedPercent: Sempre retorna0(depende defsUsedBytes).