Windows 기반 Kubernetes 시스템이 있는 경우 이 옵션을 사용하세요. Windows 통합에는 몇 가지 제한 사항이 있습니다.
호환성 및 요구 사항
Kubernetes 통합 을 설치하기 전에 호환성 및 요구 사항 을 검토하십시오.
중요
Windows에서 컨테이너를 사용하는 경우 컨테이너 호스트 버전과 컨테이너 이미지 버전이 동일해야 합니다. Kubernetes 통합은 Windows 버전 LTSC 2019(1809), 20H2 및 LTSC 2022에서 실행할 수 있습니다.
Windows 버전을 확인하려면 명령 창을 열고 다음 명령을 실행하세요.
$Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v$ReleaseIdcmd.exe
Windows에 Kubernetes 설치
Helm을 사용하여 Windows용 Kubernetes 통합을 설치할 수 있습니다. 다른 빌드 버전의 Windows(1809 및 2004)가 있는 노드가 있는 클러스터에 통합을 설치하는 방법에 대한 예를 참조하십시오.
뉴클릭 Helm 사자 추가
이전에 추가하지 않은 경우 다음 명령을 실행하여 뉴렐릭 Helm 위치를 추가하세요.
$helm repo add newrelic https://helm-charts.newrelic.com
newrelic에 대한 네임스페이스 생성
newrelic에 대한 네임스페이스를 생성하려면 다음 명령을 실행하십시오.
$kubectl create namespace newrelic
설치 kube-state-metrics
다음 명령어를 실행하여 kube-state-metrics
설치하세요.
$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가 아닌 노드에 설치하면 배포가 실패할 수 있습니다. Linux 노드를 선택하려면 nodeSelector
사용하는 것이 좋습니다. 이는 kube-state-metrics
배포를 편집하여 수행할 수 있습니다.
values-newrelic.yaml
파일 만들기
다음 데이터를 사용하여 values-newrelic.yaml
파일을 만듭니다. Helm에서는 다음을 사용합니다.
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.
통합 설치
통합을 설치하려면 다음 명령을 실행하세요.
$helm upgrade --install newrelic newrelic/newrelic-infrastructure \> --namespace newrelic --create-namespace \> --version 2.7.2 \> -f values-newrelic.yaml
패드 확인
부품 구현하다, 배포하다 및 안정적인 상태에 도달했는지 확인합니다.
$kubectl -n newrelic get pods -w
Helm 차트는 목록에 있는 각 Windows 버전당 하나의 DaemonSet
생성하고 NodeSelector
사용하여 노드당 해당 파드를 구현, 배포합니다.
예: BusyBox 컨테이너에서 Windows용 Kubernetes 가져오기
이것은 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 버전 간의 유용한 매핑은 여기를참조하십시오.
Windows용 Kubernetes 통합에 대한 제한사항
Windows 에이전트는 K8sNodeSample
또는 K8sPodSample
과 같은 Kubernetes 샘플 만 보냅니다. Windows용 Kubernetes 통합에는 다음과 같은 제한 사항이 적용됩니다.
SystemSample
,StorageSample
,NetworkSample
및ProcessSample
는 생성되지 않습니다.Windows kubelet에 일부 Kubernetes 지표가 없기 때문에 일부 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)