• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

instalação no Windows

Visualização

Este recurso está atualmente em versão prévia.

Use esta opção quando você tiver um sistema Kubernetes baseado em Windows. Observe que a integração do Windows tem diversas limitações.

Compatibilidade e requisitos

Antes de instalar a integração do Kubernetes, revise a compatibilidade e os requisitos.

Importante

Ao utilizar contêiner no Windows, a versão do host do contêiner e a versão da imagem do contêiner devem ser iguais. Nossa integração com Kubernetes pode ser executada nas versões Windows LTSC 2019 (1809), 20H2 e LTSC 2022.

Para verificar sua versão do Windows, abra uma janela de comando e execute este comando:

bash
$
Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v
$
ReleaseIdcmd.exe

Instale o Kubernetes no Windows

Você pode instalar a integração do Kubernetes para Windows usando Helm. Veja um exemplo de como instalar a integração em um cluster com nós com diferentes versões de build do Windows (1809 e 2004):

Adicione o repositório New Relic Helm

Caso ainda não tenha feito isso, execute este comando para adicionar o repositório do New Relic Helm:

bash
$
helm repo add newrelic https://helm-charts.newrelic.com

Crie um namespace para newrelic

Execute este comando para criar um namespace para newrelic:

bash
$
kubectl create namespace newrelic

Instalar kube-state-metrics

Execute este comando para instalar kube-state-metrics:

bash
$
helm repo add ksm https://kubernetes.github.io/kube-state-metrics
$
helm install ksm ksm/kube-state-metrics --version 2.13.2

Importante

Este comando serve para instalar kube-state-metrics, dependência obrigatória da integração, em um nó Linux. Não oferecemos suporte à instalação para nós não Linux e, se você instalá-lo em um nó não Linux, a implantação poderá falhar. Recomendamos usar nodeSelector para escolher um nó Linux. Isso pode ser feito editando a implantação kube-state-metrics .

Crie um arquivo values-newrelic.yaml

Crie um arquivo values-newrelic.yaml com os dados a seguir. Isto é o que Helm usará:

global:
licenseKey: _YOUR_NEW_RELIC_LICENSE_KEY_
cluster: _K8S_CLUSTER_NAME_
enableLinux: true # Set to true if your cluster also has linux nodes
enableWindows: true
windowsOsList:
- version: 2019 # Human-readable version identifier
imageTag: 2-windows-1809-alpha # Tag to be used for nodes running the windows version above
buildNumber: 10.0.17763 # Build number for your nodes running the version above. Used as a selector.
- version: 20h2
imageTag: 2-windows-20H2-alpha
buildNumber: 10.0.19042
- version: 2022
imageTag: 2-windows-ltsc2022-alpha
buildNumber: 10.0.20348
nodeSelector:
kubernetes.io/os: linux # Selector for Linux installation.
windowsNodeSelector:
kubernetes.io/os: windows # Selector for Windows installation.

Instale a integração

Execute este comando para instalar a integração:

bash
$
helm upgrade --install newrelic newrelic/newrelic-infrastructure \
>
--namespace newrelic --create-namespace \
>
--version 2.7.2 \
>
-f values-newrelic.yaml

Verificar pod

Verifique se o pod foi implantado e atingiu um estado estável:

bash
$
kubectl -n newrelic get pods -w

O gráfico do Helm criará um DaemonSet para cada versão do Windows que estiver na lista e usará NodeSelector para implantar o pod correspondente por nó.

Exemplo: Obtenha o Kubernetes para Windows de um contêiner BusyBox

Este é um exemplo de como você pode obter o Kubernetes para Windows a partir de um contêiner BusyBox.

Execute este comando:

bash
$
kubectl exec -it busybox1-766bb4d6cc-rmsnj -- Reg Query
$
"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ReleaseId

Você deverá ver algo assim:

bash
$
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
$
ReleaseId REG_SZ 1809

Para um mapeamento útil entre IDs de lançamento e versões do sistema operacional, veja aqui.

Limitações à integração do Kubernetes para Windows

O agente do Windows envia apenas amostras do Kubernetes, como K8sNodeSample ou K8sPodSample. Estas limitações se aplicam à integração do Kubernetes para Windows:

  • SystemSample, StorageSample, NetworkSample e ProcessSample não são gerados.

  • Algumas métricasKubernetes estão faltando porque o kubelet do Windows não as possui:

    • Nó:

      • fsInodes: não enviado
      • fsInodesFree: não enviado
      • fsInodesUsed: não enviado
      • memoryMajorPageFaultsPerSecond: sempre retorna zero como valor
      • memoryPageFaults: sempre retorna zero como valor
      • memoryRssBytes: sempre retorna zero como valor
      • runtimeInodes: não enviado
      • runtimeInodesFree: não enviado
      • runtimeInodesUsed: não enviado
    • Pod:

      • net.errorsPerSecond: não enviado
      • net.rxBytesPerSecond: não enviado
      • net.txBytesPerSecond: não enviado
    • Contêiner:

      • containerID: não enviado
      • containerImageID: não enviado
      • memoryUsedBytes: na interface, isso é mostrado no cartão pod que aparece quando você clica em um pod e não mostra dados. Em breve corrigiremos isso atualizando nossos gráficos para usar memoryWorkingSetBytes .
    • Volume:

      • fsUsedBytes: zero, então fsUsedPercent é zero

Problemas conhecidos com o Windows Kubelet

Existem alguns problemas com a versão Windows do Kubelet que podem impedir a integração de buscar dados:

  • Problema 90554: esse problema faz com que o Kubelet retorne 500 erros quando a integração faz uma solicitação ao endpoint /stats/summary . Ele será incluído na versão 1.19 do Kubernetes e foi portado para as versões 1.16.11, 1.17.7 e 1.18.4. Não há solução do lado da integração para este problema, aconselhamos que você atualize para uma das versões do patch o mais rápido possível. Você pode ver se está sendo afetado por esse problema ativando o log detalhado e procurando mensagens do tipo:

    bash
    $
    error querying Kubelet. Get "https://<KUBELET_IP>/stats/summary": error calling kubelet endpoint. Got status code: 500
  • Problema 87730: esse problema torna a métrica do Kubelet muito lenta ao executar carga mínima. Isso faz com que a integração falhe com um erro de tempo limite. Um patch para esse problema foi adicionado ao Kubernetes 1.18 e portado para 1.15.12, 1.16.9 e 1.17.5. Aconselhamos você a atualizar para uma das versões de patch o mais rápido possível. Para atenuar esse problema, você pode aumentar o tempo limite de integração com a opção de configuraçãoTIMEOUT . Você pode ver se está sendo afetado por esse problema ativando o log detalhado e procurando mensagens do tipo:

    bash
    $
    error querying Kubelet. Get "https://<KUBELET_IP>/stats/summary": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
Copyright © 2024 New Relic Inc.

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