• English日本語한국어
  • 로그인지금 시작하기

이 한글 문서는 사용자의 편의를 위해 기계 번역되었습니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

Windows에 Kubernetes 통합 버전 2 설치

시사

이 기능은 현재 미리 보기 상태입니다.

호환성 및 요구 사항

Kubernetes 통합 을 설치하기 전에 호환성 및 요구 사항 을 검토하십시오.

중요

Windows에서 컨테이너를 사용하는 경우 컨테이너 호스트 버전과 컨테이너 이미지 버전이 동일해야 합니다. Kubernetes 통합은 Windows 버전 LTSC 2019(1809), 20H2 및 LTSC 2022에서 실행할 수 있습니다.

Windows 버전을 확인하려면:

  1. 명령 창을 엽니다.

  2. 다음 명령을 실행합니다.

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

예: BusyBox 컨테이너에서 Windows용 Kubernetes 가져오기

다음 명령을 실행합니다.

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

다음과 같이 표시되어야 합니다.

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

릴리스 ID와 OS 버전 간의 유용한 매핑은 여기를참조하십시오.

설치

Helm을 사용하여 Windows용 Kubernetes 통합을 설치할 수 있습니다. 다른 빌드 버전의 Windows(1809 및 2004)가 있는 노드가 있는 클러스터에 통합을 설치하는 방법에 대한 예를 참조하십시오.

  1. New Relic Helm 차트 리포지토리 추가:

    bash
    $
    helm repo add newrelic https://helm-charts.newrelic.com
  2. newrelic에 대한 네임스페이스 생성:

    bash
    $
    kubectl create namespace newrelic
  3. 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

중요

이 명령은 통합의 필수 종속성인 kube-state-metrics를 Linux 노드에 설치하기 위한 것입니다. Linux가 아닌 노드에 대한 설치는 지원하지 않으며 Linux가 아닌 노드에 설치하면 배포가 실패할 수 있습니다. nodeSelector 사용하여 Linux 노드를 선택하는 것이 좋습니다. 이는 kube-state-metrics 배포를 편집하여 수행할 수 있습니다.

  1. Helm에서 사용할 다음 데이터로 values-newrelic.yaml 파일을 만듭니다.

    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.
  2. 다음과 통합 설치:

    bash
    $
    helm upgrade --install newrelic newrelic/newrelic-infrastructure \
    >
    --namespace newrelic --create-namespace \
    >
    --version 2.7.2 \
    >
    -f values-newrelic.yaml
  3. Pod가 배포되고 안정적인 상태에 도달하는지 확인합니다.

    bash
    $
    kubectl -n newrelic get pods -w

Helm 차트는 목록에 있는 Windows의 각 버전당 하나의 DeamonSet을 만들고 NodeSelector를 사용하여 노드당 해당 Pod를 배포합니다.

이 문서가 설치하는데 도움이 되셨나요?

제한 사항

Windows용 Kubernetes 통합에는 다음 제한 사항이 적용됩니다.

  • Windows 에이전트는 Kubernetes 샘플 ( K8sNodeSample , K8sPodSample 등)만 보냅니다.

    • SystemSample, StorageSample , NetworkSampleProcessSample 는 생성되지 않습니다.
  • Windows kubelet에 없기 때문에 일부Kubernetes 메트릭 이 누락되었습니다.

    • 마디:

      • fsInodes: 전송되지 않음
      • fsInodesFree: 전송되지 않음
      • fsInodesUsed: 전송되지 않음
      • memoryMajorPageFaultsPerSecond: 항상 0을 값으로 반환
      • memoryPageFaults: 항상 0을 값으로 반환
      • memoryRssBytes: 항상 0을 값으로 반환
      • runtimeInodes: 전송되지 않음
      • runtimeInodesFree: 전송되지 않음
      • runtimeInodesUsed: 전송되지 않음
    • 현물 상환 지불:

      • net.errorsPerSecond: 전송되지 않음
      • net.rxBytesPerSecond: 전송되지 않음
      • net.txBytesPerSecond: 전송되지 않음
    • 컨테이너:

      • containerID: 전송되지 않음
      • containerImageID: 전송되지 않음
      • memoryUsedBytes: UI에서 포드를 클릭하면 나타나는 포드 카드에 표시되며 데이터가 표시되지 않습니다. 대신 memoryWorkingSetBytes 을 사용하도록 차트를 업데이트하여 곧 이 문제를 해결할 것입니다.
    • 용량:

      • fsUsedBytes: 0이므로 fsUsedPercent 은 0입니다.

Windows Kubelet의 알려진 문제

통합에서 데이터를 가져오는 것을 방지할 수 있는 몇 가지 문제가 Kubelet의 Windows 버전에 있습니다.

  • 문제 90554: 이 문제로 인해 통합이 /stats/summary 엔드포인트에 요청할 때 Kubelet이 500 오류를 반환합니다. Kubernetes 1.19 릴리스에 포함될 예정이며 릴리스 1.16.11, 1.17.7 및 1.18.4로 백포트되었습니다. 이 문제에 대한 통합 측의 솔루션은 없습니다. 가능한 한 빨리 패치 버전 중 하나로 업데이트하는 것이 좋습니다. 자세한 로그를 활성화 하고 다음 유형의 메시지를 찾아 이 문제의 영향을 받고 있는지 확인할 수 있습니다.
bash
$
error querying Kubelet. Get "https://<KUBELET_IP>/stats/summary": error calling kubelet endpoint. Got status code: 500
  • 문제 87730: 이 문제는 최소 로드를 실행할 때 Kubelet 메트릭을 매우 느리게 만듭니다. 시간 초과 오류로 통합이 실패합니다. 이 문제에 대한 패치가 Kubernetes 1.18에 추가되었으며 1.15.12, 1.16.9 및 1.17.5로 백포트되었습니다. 가능한 한 빨리 패치 버전 중 하나로 업데이트하는 것이 좋습니다. 이 문제를 완화하려면 TIMEOUT 구성 옵션 을 사용하여 통합 시간 초과를 늘릴 수 있습니다. 자세한 로그를 활성화 하고 다음 유형의 메시지를 찾아 이 문제의 영향을 받고 있는지 확인할 수 있습니다.
bash
$
error querying Kubelet. Get "https://<KUBELET_IP>/stats/summary": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
Copyright © 2023 New Relic Inc.

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