New Relic Kubernetesはデフォルトで特権モードで実行され、インフラストラクチャエージェント (DaemonSet サイドカーとして実行) が基盤となるホストの情報に直接アクセスできるようになります。
これは最も完全なテレメトリーを提供しますが、一部のセキュリティ ポリシー (Pod セキュリティ標準や OpenShift 標準的契約条項など) では、ワークロードを非特権モードで実行する必要がある場合があります。
特権モードが必要な理由
New Relic Infrastructureエージェントは Kubelet ポッドに含まれており、ディープ システム メトリクスを収集するにはノードの OS への低レベルのアクセスが必要です。
共通ライブラリのprivilegedのデフォルト値はfalseですが、このチャートでは、エージェントが次の操作を実行できるように、デフォルトでtrueに設定されています (values.yamlを参照)。
- ホストの
/procおよび/sysファイルシステムを読み取ります。 - 基盤となるホストの正確な CPU、メモリ、ストレージ、およびネットワーク統計を収集します。
- インフラストラクチャの健全性と Kubernetes オブジェクトを関連付ける完全なプロセス リストとメタデータを収集します。
非特権モードで実行
クラスター セキュリティ ポリシーでポッドのセキュリティ コンテキストでprivileged許可されていない場合は、 privilegedをfalseに設定して無効にすることができます。
データ収集への影響
重要
特権モードを無効にすると、ホストレベルのメトリクスとメタデータが失われます。
特権がないと、インフラストラクチャエージェントはホストのリソース使用状況を確認できません。 次のような標準ホスト メトリクスにアクセスできなくなります。
- SystemSample:ホスト レベルの CPU、メモリ、および負荷平均。
- StorageSample:ノードのファイルシステムのディスク使用量と I/O。
- NetworkSample:物理ネットワーク インターフェイスの統計。
- ProcessSample: New Relic コンテナ外で実行されているプロセスに関するデータ。
非特権モードで使用できないプロパティとメトリクスの正確な詳細リストについては、 Linux エージェントの実行モードのドキュメントを参照してください。
設定方法
カスタム値ファイルを更新して、グローバル特権フラグをfalseに設定します。
global: privileged: false非特権モードのWindows
標準のWindowsコンテナは、コンテナが分離されているため、ホストインフラストラクチャに直接アクセスできません。 HostProcess コンテナはこのアクセスを提供できますが、追加のセキュリティ リスクが生じるため、現在New Relic Kubernetesインテグレーションでは使用されていません。 したがって、Windows DaemonSets は非特権モードでのみ実行され、特権モードは Windows ノードではサポートされません。
このモードで収集されるメトリクスの詳細については、 「 Windows用Kubernetesインテグレーションの制限」を参照してください。