Esta página proporciona información sobre las limitaciones y la resolución de problemas para la integración de Kubernetes de New Relic cuando se ejecuta en nodos basados en Windows.
Comprobación de la versión de Windows
Importante
Al emplear contenedor en Windows, la versión del host de contenedor y la versión de la imagen de contenedor deben ser la misma. Nuestra integración de Kubernetes puede ejecutar en las versiones de Windows LTSC 2019 y LTSC 2022.
Para comprobar su versión de Windows, abra una ventana de PowerShell o del símbolo del sistema y ejecute:
$systeminfoBusque las líneas que comienzan con OS Name y OS Version. Estas líneas proporcionan la información del sistema operativo y el número de compilación. Esta comprobación es solo para confirmar que tu entorno es compatible; no necesitas especificar esta información de versión durante la instalación.
- Windows Server LTSC 2019: corresponde al número de compilación
10.0.17763. - Windows Server LTSC 2022: corresponde al número de compilación
10.0.20348.
Conjuntos de demonios de Windows
Cuando se habilita la supervisión Windows , se crea un DaemonSet Kubernetes para cada versión Windows compatible, pero los pods se crean solo para las versiones de nodo Windows que existen en el clúster. Esto significa que es posible que veas varios DaemonSets específicos de Windows, pero no todos tendrán un recuento pod "desired" .
Por ejemplo, en un clúster con dos nodos Linux, un nodo Windows LTSC 2022 y ningún nodo Windows LTSC 2019, el resultado sería similar a esto:
$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 24hSi lo desea, puede evitar que el gráfico cree DaemonSets innecesarios incluyendo la clave windowsOsList en su archivo values.yaml personalizado durante la instalación a través de Helm Chart y especificando solo la versión deseada:
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.Limitaciones de la integración de Kubernetes para Windows
El agente de New Relic para Windows envía muestras de datos de Kubernetes, como K8sNodeSample y K8sPodSample. Las limitaciones que se aplican dependen de si se ejecuta en modo privilegiado (HostProcess) o en modo no privilegiado.
Limitaciones del modo sin privilegios
Al ejecutarse en modo sin privilegios (windows.privileged=false), el aislamiento estándar del contenedor de Windows impide que el agente acceda directamente a los recursos del host. No se generan las siguientes muestras:
SystemSampleStorageSampleNetworkSampleProcessSample
Además, hostNetwork: true no se puede establecer en la especificación del pod para contenedores estándar de Windows. Esta es una limitación de Kubernetes que no se aplica al usar pods HostProcess en modo privilegiado.
Lagunas de métricas de kubelet de Windows
Las siguientes métricas de Kubernetes no están disponibles en todos los nodos de Windows, independientemente del modo, porque el kubelet de Windows no las expone o no son aplicables en Windows:
Nodo:
memoryMajorPageFaultsPerSecond:Siempre devuelve0.memoryPageFaults:Siempre devuelve0.memoryRssBytes:Siempre devuelve0.net.errorsPerSecond:No enviado.net.rxBytesPerSecond:No enviado.net.txBytesPerSecond:No enviado.No relevante para Windows:
fsInodes:No enviado.fsInodesFree:No enviado.fsInodesUsed:No enviado.runtimeInodes:No enviado.runtimeInodesFree:No enviado.runtimeInodesUsed:No enviado.
Contenedor:
containerID:No enviado.containerImageID:No enviado.memoryMappedFileBytes:No enviado.memoryUsedBytes:No enviado. EmpleememoryWorkingSetBytescomo alternativa.memoryUtilization:No enviado (depende dememoryUsedBytes). Puedes calcular una métrica similar empleandomemoryWorkingSetBytes/memoryLimitBytes.requestedMemoryUtilization:No enviado (depende dememoryUsedBytes). Puedes calcular una métrica similar empleandomemoryWorkingSetBytes/memoryRequestedBytes.- No relevante para Windows:
cpuCfs*:No se enviaron todos los valorescpuCfs*.
Volumen:
fsUsedBytes:Siempre devuelve0.fsUsedPercent:Siempre devuelve0(depende defsUsedBytes).