• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

問題を作成する

Kubernetes統合コンポーネント

New Relic Kubernetes の統合により、Kubernetes をオンプレミスで実行しているかクラウドで実行しているかにかかわらず、クラスターの正常性とパフォーマンスを完全に監視できます。これにより、Kubernetes の名前空間、デプロイ、レプリカセット、ノード、ポッド、コンテナーを可視化できます。

newrelic-infrastructure グラフは 統合の主要コンポーネントです。そのアーキテクチャについては 、こちらをご覧ください。

nri-bundle チャートは、 newrelic-infrastructureを含む統合用の個々のチャートをグループ化します。これにより、1 つのチャートだけを使用して統合を簡単にインストールおよびアップグレードできます。この表でインストールできるデフォルトおよびオプションのコンポーネントについては 、こちらをご覧ください。

アーキテクチャー

newrelic-infrastructure グラフは 3 つの異なるコンポーネント、 nrk8s-ksmnrk8s-kubelet 、および nrk8s-controlplaneに分割されています。1 つ目はデプロイメントで、次の 2 つは DaemonSet です。

各コンポーネントには 2 つのコンテナーがあります。

  1. インテグレーションのコンテナで、メトリクスの収集を担当します。
  2. メトリクスを New Relic に送信するために使用される、New Relic インフラストラクチャ エージェントを含むコンテナー。

Kub-State-Metricsコンポーネント

Kubernetes 組織自体の下に格納されている OSS プロジェクトkube-state-metricsの上にクラスター状態メトリックを構築します。

特定のデプロイメントnrk8s-ksmが KSM の検出とスクレイピングを処理します。このポッドは存続期間が長く単一であるため、エンドポイント インフォーマーを安全に使用して KSM ポッドの IP を特定し、スクレイピングできます。インフォーマーは、クラスター内のインフォーマーのリストを自動的にローカルにキャッシュし、新しいものを監視して、ポッドの場所を特定するためのリクエストで API サーバーを攻撃することを回避します。

ターゲット メトリックがデフォルトで有効になっていない場合は、KSM でターゲット メトリックを監視できるようにする必要があります。たとえば、KSM v2+ はデフォルトでラベルと注釈メトリックを無効にします。お客様は、 ここで 説明する metricLabelsAllowlist または metricAnnotationsAllowList オプションを Kubernetes クラスタで使用して、ターゲット ラベルとアノテーション メトリックをモニタリングできるようにすることができます。

KSM がサポートするバージョンの詳細については、Bring your own KSMを参照してください。

重要

customAttributes を使用して、特定のノードに厳密に関連付けられていないエンティティに関連するサンプルに属性を追加します: K8sNamespaceSampleK8sDeploymentSampleK8sReplicasetSampleK8sDaemonsetSampleK8sStatefulsetSampleK8sServiceSample、および K8sHpaSample.

Kubeletコンポーネント

Kubelet は「Kubernetes エージェント」であり、すべての Kubernetes ノードで実行され、コントロール プレーンの指示に従ってコンテナーを作成する役割を担うサービスです。コンテナ ランタイムと密接に連携しているのは Kubelet であるため、CPU、メモリ、ディスク、ネットワークなどの使用など、統合のためのインフラストラクチャ メトリックの主なソースです。完全に文書化されていませんが、Kubelet API はほとんどの Kubernetes メトリクスの事実上のソースです。

Kubeletのスクレイピングは、通常、リソースの少ない操作です。これと、可能な限りノード間のトラフィックを最小限に抑えるという意図を踏まえて、 nrk8s-kubeletはDaemonSetとして実行され、各インスタンスは、同じノードで実行されているKubeletからメトリックを収集します。

nrk8s-kubelet ノード IP を使用して Kubelet に接続します。このプロセスが失敗した場合、 nrk8s-kubeletはフォールバックして API サーバー プロキシ経由でノードに到達します。多数の kubelet をプロキシすると API サーバーの負荷が増加する可能性があるため、このフォールバック メカニズムは非常に大規模なクラスターの場合に役立ちます。ログで次のようなメッセージを探すことで、API サーバーがプロキシとして使用されているかどうかを確認できます。

Trying to connect to kubelet through API proxy

コントロールプレーンコンポーネント

主要な Kubernetes ディストリビューションとして、 nrk8s-controlplanehostNetwork: trueで DaemonSet としてデプロイします。構成は、自動検出と静的エンドポイントをサポートするように構成されています。すぐに使用できる幅広いディストリビューションとの互換性を保つために、構成エントリとして幅広い既知のデフォルトを提供しています。コードではなく構成でこれを行うと、必要に応じて自動検出を微調整できます。

セレクタごとに複数のエンドポイントを持ち、正しいエンドポイントを自動的に検出するプローブ メカニズムを追加する可能性があります。これにより、同じセレクターを使用して、ポートやプロトコルなどのさまざまな構成を試すことができます。

etcd CPコンポーネントのスクレイピング構成は以下のようになっており、すべてのコンポーネントに同じ構造と機能が適用されています。

config:
etcd:
enabled: true
autodiscover:
- selector: "tier=control-plane,component=etcd"
namespace: kube-system
matchNode: true
endpoints:
- url: https://localhost:4001
insecureSkipVerify: true
auth:
type: bearer
- url: http://localhost:2381
staticEndpoint:
url: https://url:port
insecureSkipVerify: true
auth: {}

staticEndpointが設定されている場合、コンポーネントはそれを取得しようとします。エンドポイントに到達できない場合、統合は失敗するため、手動エンドポイントが構成されている場合にサイレント エラーは発生しません。

staticEndpointが設定されていない場合、コンポーネントは自動検出エントリを反復処理して、指定されたnamespaceselectorに一致する最初のポッドを探し、オプションでDaemonSetの同じノードで実行されます( matchNodeの場合) trueに設定されます)。ポッドが検出された後、コンポーネントはプローブし、http HEADリクエストを発行し、リストされたエンドポイントを順番に、選択した認証タイプを使用して最初に成功したプローブされたエンドポイントをスクレイプします。

上記では、 etcdコンポーネントの構成の抜粋を示していますが、スクレイピングロジックは他のコンポーネントでも同じです。

コントロールプレーンモニタリングの設定方法の詳細については、 コントロールプレーンモニタリング のページをご確認ください。

ヘルムチャート

Helm は、ソリューションをクラスターにデプロイするために提供する主要な手段です。Helm チャートは、1 つのデプロイメントと、それぞれがわずかに異なる構成を持つ 2 つの DaemonSet を管理します。これにより、チャートや生成されたマニフェストに手動でパッチを適用する必要なく、ニーズに合わせてソリューションを柔軟に適応させることができます。

新しい Helm チャートが公開する新機能の一部は次のとおりです。

  • すべてのポッドのsecurityContextを完全に制御
  • すべてのポッドのポッドlabelsおよびannotationsのフルコントロール
  • 追加の環境変数、 volumes 、およびを追加する機能 volumeMounts
  • どのエンドポイントに到達するか、オートディスカバリーの動作、スクレイピングの間隔など、統合の設定を完全にコントロールすることが可能
  • Helmのイディオムやスタンダードとの連携強化

チャートのREADME.mdで切り替えることができるすべてのスイッチの詳細を確認できます。

コンポーネント

nri-bundleを使用して Kubernetes 統合をインストールすると、デフォルトで次の 2 つのコンポーネントがインストールされます。

コンポーネント

説明

newrelic-infrastructure

ノード、クラスターオブジェクト (デプロイメント、ポッドなど)、およびコントロールプレーンに関するメトリクスを New Relic に送信します。

nri-metadata-injection

New Relic で計測されたアプリケーション (APM) を Kubernetes 情報で強化します。

これらは、 nri-bundle を使用して、または個別にインストールできるオプションのコンポーネントです。

コンポーネント

説明

kube-state-metrics

newrelic-infrastructural がクラスターレベルのメトリクスを収集するために必要です。

nri-kube-events

Kubernetes イベントを New Relic にレポートします。

newrelic-インフラオペレーター

(ベータ) Fargate またはサーバーレス環境で使用され、通常の DaemonSet の代わりにサイドカーとして newrelic-infrastructor を挿入します。

newrelic-k8s-metrics-adapter

(ベータ) New Relic の NRQL クエリに基づいて、水平ポッド オートスケーラー (HPA) のデータ ソースを提供します。

newrelic-logging

クラスター上で実行されている Kubernetes コンポーネントとワークロードのログを New Relic に送信します。

nri-prometheus

Prometheus メトリクスを公開するアプリケーションから New Relic にメトリクスを送信します。

newrelic-プロメテウス-コンフィギュレーター

New Relic Prometheus エンドポイントにメトリクスを送信するようにエージェント モードで Prometheus のインスタンスを設定します。

ニューレリックピクシー

Pixie API に接続し、Pixie で New Relic プラグインを有効にします。このプラグインを使用すると、Pixie から New Relic にデータをエクスポートして、長期データを保存できます。

ピクシー

Kubernetes アプリケーション用のオープンソースの可観測性ツール。eBPF を使用して、手動のインストルメンテーションを必要とせずにテレメトリ データを自動的にキャプチャします。

Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.