시사
이 기능은 현재 미리 보기 상태입니다.
호환성 및 요구 사항
Kubernetes 통합 을 설치하기 전에 호환성 및 요구 사항 을 검토하십시오.
중요
Windows에서 컨테이너를 사용하는 경우 컨테이너 호스트 버전과 컨테이너 이미지 버전이 동일해야 합니다. Kubernetes 통합은 Windows 버전 LTSC 2019(1809), 20H2 및 LTSC 2022에서 실행할 수 있습니다.
Windows 버전을 확인하려면:
명령 창을 엽니다.
다음 명령을 실행합니다.
bash$Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v$ReleaseIdcmd.exe
예: BusyBox 컨테이너에서 Windows용 Kubernetes 가져오기
다음 명령을 실행합니다.
$kubectl exec -it busybox1-766bb4d6cc-rmsnj -- Reg Query$ "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ReleaseId
다음과 같이 표시되어야 합니다.
$HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion$ ReleaseId REG_SZ 1809
릴리스 ID와 OS 버전 간의 유용한 매핑은 여기를참조하십시오.
설치
Helm을 사용하여 Windows용 Kubernetes 통합을 설치할 수 있습니다. 다른 빌드 버전의 Windows(1809 및 2004)가 있는 노드가 있는 클러스터에 통합을 설치하는 방법에 대한 예를 참조하십시오.
New Relic Helm 차트 리포지토리 추가:
bash$helm repo add newrelic https://helm-charts.newrelic.comnewrelic에 대한 네임스페이스 생성:
bash$kubectl create namespace newrelickube-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 배포를 편집하여 수행할 수 있습니다.
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 nodesenableWindows: truewindowsOsList:- version: 2019 # Human-readable version identifierimageTag: 2-windows-1809-alpha # Tag to be used for nodes running the windows version abovebuildNumber: 10.0.17763 # Build number for your nodes running the version above. Used as a selector.- version: 20h2imageTag: 2-windows-20H2-alphabuildNumber: 10.0.19042- version: 2022imageTag: 2-windows-ltsc2022-alphabuildNumber: 10.0.20348nodeSelector:kubernetes.io/os: linux # Selector for Linux installation.windowsNodeSelector:kubernetes.io/os: windows # Selector for Windows installation.다음과 통합 설치:
bash$helm upgrade --install newrelic newrelic/newrelic-infrastructure \>--namespace newrelic --create-namespace \>--version 2.7.2 \>-f values-newrelic.yamlPod가 배포되고 안정적인 상태에 도달하는지 확인합니다.
bash$kubectl -n newrelic get pods -w
Helm 차트는 목록에 있는 Windows의 각 버전당 하나의 DeamonSet을 만들고 NodeSelector를 사용하여 노드당 해당 Pod를 배포합니다.
이 문서가 설치하는데 도움이 되셨나요?
제한 사항
Windows용 Kubernetes 통합에는 다음 제한 사항이 적용됩니다.
Windows 에이전트는 Kubernetes 샘플 (
K8sNodeSample
,K8sPodSample
등)만 보냅니다.SystemSample
,StorageSample
,NetworkSample
및ProcessSample
는 생성되지 않습니다.
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로 백포트되었습니다. 이 문제에 대한 통합 측의 솔루션은 없습니다. 가능한 한 빨리 패치 버전 중 하나로 업데이트하는 것이 좋습니다. 자세한 로그를 활성화 하고 다음 유형의 메시지를 찾아 이 문제의 영향을 받고 있는지 확인할 수 있습니다.
$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
구성 옵션 을 사용하여 통합 시간 초과를 늘릴 수 있습니다. 자세한 로그를 활성화 하고 다음 유형의 메시지를 찾아 이 문제의 영향을 받고 있는지 확인할 수 있습니다.
$error querying Kubelet. Get "https://<KUBELET_IP>/stats/summary": context deadline exceeded (Client.Timeout exceeded while awaiting headers)