限定発売
この特集は限定公開です。
バージョン2
このページは、Kubernetes Integrationのバージョン2のみに適用されます。Windowsノードはバージョン3ではサポートされていません。
Windows用のKubernetesのインストールを実行するには、以下の手順に従ってください。
- 互換性と要件を確認する.
- マニフェスト のファイルを更新します。
- 統合の 制限 についてご紹介します。
互換性および要件
New Relic の Kubernetes 統合 をインストールする前に、 互換性と要件 を確認してください。
重要
Windowsでコンテナを使用する場合、コンテナホストのバージョンとコンテナイメージのバージョンが同じである必要があります。当社のKubernetesインテグレーションは、WindowsバージョンLTSC 2019(1809)、20H2、LTSC 2022で動作可能です。
Windowsのバージョンを確認するには
コマンドウィンドウを開きます。
次のコマンドを実行してください。
bash$Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v$ReleaseIdcmd.exe
例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インテグレーションは、Helmを使ってインストールできます。Windowsの異なるビルドバージョン(1809と2004)を持つノードを持つクラスタに統合をインストールする方法の例を参照してください。
- New Relic Helm chartのリポジトリを追加します。
$helm repo add newrelic https://helm-charts.newrelic.com
- newrelicのネームスペースを作成します。
$kubectl create namespace newrelic
- 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-metric を Linux ノードにインストールするためのものです。クラスターにlinuxノードがない場合、上記のコマンドは動作しない可能性があります。ニューレリックでは、linux以外のノードにkube-state-metricsをインストールする方法についてはサポートできません。
values.yml
ファイルを作成し、Helmが使用する以下のデータを記述します。
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 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
- で統合をインストールします。
$helm upgrade --install newrelic newrelic/newrelic-infrastructure \>--namespace newrelic --create-namespace \>--version 3.2.11 \>-f values-newrelic.yaml
- ポッドがデプロイされ、安定した状態になっていることを確認します。
$kubectl -n newrelic get pods -w
Helmチャートは、リストにあるWindowsの各バージョンごとに1つのDeamonSetを作成し、NodeSelectorを使用してNodeごとに対応するPodをデプロイします。
制限
Windows用のKubernetesインテグレーションには、以下のような制限があります。
Windowsエージェントは、 Kubernetesのサンプル (
K8sNodeSample
,K8sPodSample
, etc.) のみを送信します。SystemSample
,StorageSample
,NetworkSample
,ProcessSample
は生成されません。
いくつかの Kubernetes metrics は、Windows kubelet が持っていないため、欠落しています。
ノードです。
fsInodes
: not sent.fsInodesFree
: not sent.fsInodesUsed
: not sent.memoryMajorPageFaultsPerSecond
: 常に値としてゼロを返す。memoryPageFaults
: 常に値としてゼロを返す。memoryRssBytes
: 常に値としてゼロを返す。runtimeInodes
: not sentruntimeInodesFree
: not sentruntimeInodesUsed
: not sent
Pod:
net.errorsPerSecond
: not sentnet.rxBytesPerSecond
: not sent.net.txBytesPerSecond
: not sent.
コンテナです。
containerID
: not sentcontainerImageID
: not sentmemoryUsedBytes
: UIでは、ポッドをクリックすると表示されるポッドカードに表示されますが、データは表示されません。近日中に、memoryWorkingSetBytes
を代わりに使用するようにチャートを更新して、この問題を解決する予定です。
巻です。
fsUsedBytes
: zero, sofsUsedPercent
is zero.
Windows Kubeletの既知の問題
Windows版のKubeletにはいくつかの問題があり、統合機能がデータを取得できないことがあります。
- 問題 90554: この問題は、インテグレーションが
/stats/summary
エンドポイントにリクエストを行うと、Kubelet が 500 エラーを返すというものです。この問題は、Kubernetes 1.19 リリースに含まれる予定で、リリース 1.16.11、1.17.7、1.18.4 にバックポートされています。この問題に対する統合側の解決策はありませんので、できるだけ早くいずれかのパッチバージョンにアップデートすることをお勧めします。この問題の影響を受けているかどうかは、 verbose logs を有効にして、以下のタイプのメッセージを探すことで確認できます。
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
設定オプション で統合のタイムアウトを増やすことができます。この問題の影響を受けているかどうかは、 verbose logs を有効にして、以下のようなメッセージを探すことで確認できます。
error querying Kubelet. Get "https://<KUBELET_IP>/stats/summary": context deadline exceeded (Client.Timeout exceeded while awaiting headers)