プレビュー
この機能は現在プレビュー段階です。
互換性と要件
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のリポジトリを追加します。
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.20348で統合をインストールします。
bash$helm upgrade --install newrelic newrelic/newrelic-infrastructure \>--namespace newrelic --create-namespace \>--version 2.7.2 \>-f values-newrelic.yamlポッドがデプロイされ、安定した状態になっていることを確認します。
bash$kubectl -n newrelic get pods -w
Helmチャートは、リストにあるWindowsの各バージョンごとに1つのDeamonSetを作成し、NodeSelectorを使用してNodeごとに対応するPodをデプロイします。
このドキュメントはインストールで役立ちましたか。
制限
Windows用のKubernetesインテグレーションには、以下のような制限があります。
Windows エージェントはKubernetes サンプル(
K8sNodeSample
、K8sPodSample
など) のみを送信します。SystemSample
、StorageSample
、NetworkSample
、およびProcessSample
は生成されません。
いくつかの Kubernetes metrics は、Windows kubelet が持っていないため、欠落しています。
ノードです。
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。この問題に対する統合側の解決策はありません。できるだけ早くいずれかのパッチ バージョンに更新することをお勧めします。詳細ログを有効にし、次のタイプのメッセージを探すことで、この問題の影響を受けているかどうかを確認できます。
$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)