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をインストールする
Windows用のKubernetesインテグレーションは、Helmを使ってインストールできます。Windowsの異なるビルドバージョン(1809と2004)を持つノードを持つクラスタに統合をインストールする方法の例を参照してください。
New Relic Helmリポジトリを追加する
これまでに実行していない場合は、次のコマンドを実行して New Relic 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 のバージョンごとに 1 つのDaemonSet
を作成し、 NodeSelector
を使用してノードごとに対応するポッドをデプロイします。
例: BusyBox コンテナーから Kubernetes for Windows を取得する
これは、BusyBox コンテナーから Kubernetes for Windows を取得する方法の例です。
以下のコマンドを実行します。
$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メトリクスが欠落しています。
ノードです。
fsInodes
: 送信されませんfsInodesFree
: 送信されませんfsInodesUsed
: 送信されませんmemoryMajorPageFaultsPerSecond
: 値として常にゼロを返しますmemoryPageFaults
: 値として常にゼロを返しますmemoryRssBytes
: 値として常にゼロを返しますruntimeInodes
: 送信されませんruntimeInodesFree
: 送信されませんruntimeInodesUsed
: 送信されません
Pod:
net.errorsPerSecond
: 送信されませんnet.rxBytesPerSecond
: 送信されませんnet.txBytesPerSecond
: 送信されません
コンテナです。
containerID
: 送信されませんcontainerImageID
: 送信されませんmemoryUsedBytes
: UIでは、ポッドをクリックしたときに表示されるポッド カードにデータが表示されません。 代わりにmemoryWorkingSetBytes
を使用するようにチャートを更新することで、この問題をすぐに修正する予定です。
巻です。
fsUsedBytes
: ゼロなので、fsUsedPercent
はゼロです
Windows Kubeletの既知の問題
Windows版のKubeletにはいくつかの問題があり、統合機能がデータを取得できないことがあります。
問題 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)