Helm は 、Kubernetes 上のパッケージ マネージャーです。インストール、アップグレード、またはリビジョンの追跡を容易にし、Kubernetes にインストールするサービスの依存関係を管理します。まだお持ちでない場合は、以下で無料の New Relic アカウントを作成して、今すぐデータの監視を開始してください。
Helm を使用して統合をインストールするには、 Kubernetes のガイド付きインストールをお勧めします。これにより、いくつかの構成オプションを求められ、シークレットと値が自動入力されます。さらに、ガイド付きインストールでは、統合を Helm リリースではなくプレーンなマニフェストとしてインストールすることもできます。
互換性と要件
Helmがマシンにインストールされていることを確認してください。 Kubernetes Integrationのバージョン3には、Helmバージョン3が必要です。
Helm を使用して Kubernetes 統合をインストールするには、New Relic が必要です。 および Kubernetes クラスターの名前:
検索してコピーする .
クラスタの表示名を決めます。例えば、次のような出力が考えられます。
bash$kubectl config current-context
重要
これらの値は、後でインストール プロセス中に必要になるため、安全な場所に保管してください。
HelmによるKubernetesインテグレーションのインストール
New Relic には、プラットフォームにさまざまな機能を提供するさまざまなコンポーネント用の Helm チャートがいくつかあります。
newrelic-infrastructure
:メインのKubernetes統合とインフラストラクチャエージェントが含まれています。これは、New Relic Kubernetesエクスペリエンスのコアコンポーネントであり、KubernetesダッシュボードとKubernetesクラスターエクスプローラーに表示されるほとんどのデータのレポートを担当します。newrelic-logging
: DaemonSetにNewRelicのFluentBit出力プラグインを提供して、ログをNewRelicに簡単に転送します。nri-kube-events
:クラスターイベント(kubectl get events
など)を収集してNewRelicに報告します。prometheus-agent
: New Relic の Prometheus Configurator は、 Prometheus をエージェント モードで構成し、リモート書き込みエンドポイントを使用して指標を New Relic に報告します。nri-metadata-injection
:コンテナにいくつかの環境変数を挿入する最小限のMutatingAdmissionWebhook
を設定します。これらには、クラスターとNew Relicのインストールに関するメタデータが含まれており、後でAPMを使用してインストルメント化されたアプリケーションによって取得され、 APMとインフラストラクチャデータを相互に関連付けることができます。nri-statsd
:NewRelicStatsDの統合。
これらのコンポーネントは個別にインストールできますが、 nri-bundle
チャートを使用することを強くお勧めします。New Relic は、上記の個々のチャートのラッパーまたはメタパッケージとして機能するこのチャートを提供します。このチャートを使用すると、次のような利点が得られます。
- どのコンポーネントがインストールされるかを完全に制御できます。各コンポーネントは、個別の Helm 依存関係としてインストールされます。 ここで説明するパラメータを使用して、それらを個別に構成できます。
- これにより、インストールされているバージョンが相互に互換性があることが保証されます。
- これにより、インストールされているチャート間で構成値が一貫していることが保証されます。
nri-bundle
チャートは、 Kubernetes ガイド付きインストールによってインストールおよび構成されるチャートです。
Helmを使用したnri-bundle
のインストールと構成
Helm と
kubectl
を実行するマシンで適切なコンテキストを使用していることを確認します。で利用可能なコンテキストを確認することができます。
bash$kubectl config get-contextsで、目的のコンテキストに切り替えます。
bash$kubectl config use-context _CONTEXT_NAME_New Relic Helm chartのリポジトリを追加します。
bash$helm repo add newrelic https://helm-charts.newrelic.com構成を定義するために使用される
values-newrelic.yaml
という名前のファイルを作成します。global:licenseKey: _YOUR_NEW_RELIC_LICENSE_KEY_cluster: _K8S_CLUSTER_NAME_newrelic-prometheus-agent:# Automatically scrape prometheus metrics for annotated services in the cluster# Collecting prometheus metrics for large clusters might impact data usage significantlyenabled: truenri-metadata-injection:# Deploy our webhook to link APM and Kubernetes entitiesenabled: truenri-kube-events:# Report Kubernetes eventsenabled: truenewrelic-logging:# Report logs for containers running in the clusterenabled: truekube-state-metrics:# Deploy kube-state-metrics in the cluster.# Set this to true unless it is already deployed.enabled: true次のコマンドを実行して、チャートですべてが適切に構成されていることを確認します。
--dry-run
と--debug
を指定しているため、このステップでは何もインストールされないことに注意してください。bash$helm upgrade --install newrelic-bundle newrelic/nri-bundle \>--namespace newrelic --create-namespace \>-f values-newrelic.yaml \>--dry-run \>--debug以下のフラグに注意して調整してください。
global.licenseKey=YOUR_NEW_RELIC_LICENSE_KEY
: 有効に設定する必要がありますあなたのアカウントのために。
global.cluster=K8S_CLUSTER_NAME
: New Relic UI でクラスターを識別するために使用されるため、New Relic アカウントで構成されている他の Kubernetes クラスターでは使用されない説明的な値である必要があります。kube-state-metrics.enabled=true
: これをtrue
に設定すると、統合の実行に必要な Kube State Metrics (KSM) が自動的にインストールされます。KSM がクラスター内に既に存在する場合は、たとえ別の名前空間上にあったとしても、これを false に設定できます。newrelic-prometheus-agent.enabled=true
: クラスターに存在する Prometheus エンドポイントからデータを自動的に収集する Prometheus Agent をデプロイします。nri-metadata-injection.enabled=true
:最小限のWebhookをインストールします。これにより、環境変数が追加され、NewRelicAPMを搭載したアプリケーションをKubernetesにリンクできるようになります。
Kubernetes チャートには、特定のニーズに合わせて編集できるフラグと調整パラメータの包括的なセットが含まれています。変更できる内容については、以下の 「統合の構成」 セクションを確認してください。
--debug
と--dry-run
を指定せずにコマンドを実行して、Kubernetes統合をインストールします。bash$helm upgrade --install newrelic-bundle newrelic/nri-bundle \>--namespace newrelic --create-namespace \>-f values-newrelic.yaml重要
Kubernetes バージョン 1.27.x または サポートされているそれ以前のバージョンを使用していることを確認してください。
ポッドがデプロイされ、安定した状態になっていることを確認します。
bash$kubectl -n newrelic get pods -w
見るべきです。
- 1つの
newrelic-nrk8s-ksm
ポッド。 - クラスタ内のノードごとに1つの
newrelic-nrk8s-kubelet
ポッド。 - クラスタ内のマスターノードごとに1つの
newrelic-nrk8s-control-plane
ポッド(存在する場合)。 - インストールにKSMが含まれている場合は、1つの
newrelic-kube-state-metrics
ポッド。 - Kubernetesイベントレポートを有効にした場合は、1つの
newrelic-nri-kube-events
ポッド。 - Prometheus エージェント統合を有効にした場合は、1 つの
prometheus-agent
ポッド。 - ロギング統合を有効にした場合は、クラスター内のノードごとに1つの
newrelic-newrelic-logging
ポッド。
このドキュメントはインストールで役立ちましたか。
統合を構成する
nri-bundle
チャート。そのインストール手順は上記にあり、ソリューションのコンポーネントを含む他のいくつかのチャートのラッパーまたはメタパッケージとして機能します。このようなラッパーを提供することにより、コンポーネントのチャートを比較的単純に保ちながら、相互に互換性があることがわかっているバージョンのコンポーネントの制御されたセットを提供できます。
nri-bundle
チャートは、 複数の個別のチャート をラップして、さまざまなテレメトリ データを収集し、New Relic に送信します。このバンドルを使用すると、ニーズに応じて必要な子チャートを選択的に有効にすることができます。個々のコンポーネントを構成するには、 Helm の依存関係システムを使用する必要があります。つまり、各子チャートの構成を 、values-newrelic.yml ファイル内の別個のセクション (各子チャートにちなんだ名前) に配置する必要があることを意味します。たとえば、 newrelic-infrastructure
チャートを構成するには、次のコードを values-newrelic.yaml
に追加します。
# General settings that apply to all the child chartsglobal: licenseKey: _YOUR_NEW_RELIC_LICENSE_KEY_ cluster: _K8S_CLUSTER_NAME_
# ... Other settings as shown above
# Specific configuration for the newrelic-infrastructure child chartnewrelic-infrastructure: verboseLog: true # Enable debug logs privileged: false # Install with minimal privileges # Other options from https://github.com/newrelic/helm-charts/tree/master/charts/newrelic-infrastructure-v3
# Specific configuration for the newrelic-logging child chartnewrelic-logging: fluentBit: retryLimit: 10
子チャートのオプションに子チャート名を接頭辞として付け、ネストをドットで置き換えることで、コマンド ラインを介して子チャート オプションを渡すこともできます。
helm upgrade --install newrelic-bundle newrelic/nri-bundle \--namespace=newrelic \--set global.licenseKey=_YOUR_NEW_RELIC_LICENSE_KEY_ \--set global.cluster=_K8S_CLUSTER_NAME_ \--set newrelic-infrastructure.privileged=false \--set newrelic-infrastructure.verboseLog=true \--set newrelic-logging.fluentBit.retryLimit=10
各子チャートで調整できるフラグ ( scrape-intervalなど) の完全なリストは、それぞれのリポジトリにあります。
- デバッグログ、特権モード、コントロールプレーン監視などの設定を行います。
- APM連携用のWebhookをどのように展開するかを設定します。
- どのPrometheusエンドポイントをスクレイピングするかを設定します。
- どのログまたはログ属性を New Relic に送信するかを設定します。
ヒント
子グラフの構成オプションを指定する場合は、それらを values-newrelic.yaml
内のグラフ名にちなんで名付けられたセクションの下に配置する必要があります。
ヒント
コマンド ラインを介して子チャートのオプションを渡すには、子チャートの名前を接頭辞として付け、ネストをドットで置き換える必要があります。