Helm は、Kubernetes 上のパッケージマネージャです。インストール、アップグレード、リビジョンの追跡を容易にし、Kubernetesにインストールするサービスの依存関係を管理します。
Helm を使用して統合をインストールするには、 Kubernetes のガイド付きインストールをお勧めします。これにより、いくつかの構成オプションを求められ、シークレットと値が自動入力されます。さらに、ガイド付きインストールでは、統合を Helm リリースではなくプレーンなマニフェストとしてインストールすることもできます。
互換性と要件
Helmがマシンにインストールされていることを確認してください。 Kubernetes Integrationのバージョン3には、Helmバージョン3が必要です。
Helm を使用して Kubernetes 統合をインストールするには、New Relicと Kubernetes クラスターの名前が必要です。
を見つけてコピーします。
クラスタの表示名を決めます。例えば、次のような出力が考えられます。
bash$kubectl config current-context
重要
これらの値は後でインストール時に必要になるので、安全な場所にメモしておいてください。
HelmによるKubernetesインテグレーションのインストール
New Relicには、プラットフォームの異なる機能を提供するさまざまなコンポーネントのためのいくつかのチャートがあります。
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の統合。
便宜上、New Relicはnri-bundle
チャートを提供します。これは、上記のチャートの選択可能なセットをプルします。 nri-bundle
は、必要に応じてKubeStateMetricsとPixieをインストールすることもできます。
これらのチャートを個別にインストールすることは可能ですが、Kubernetes のデプロイにはnri-bundle
チャートを使用することを強くお勧めします。これにより、すべてのチャートの値が一貫しており、インストールされるコンポーネントを完全に制御でき、構成する可能性もあるからです。それらはすべてHelm の依存関係です。これは、 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でクラスターを識別するために使用されるため、NewRelicアカウントで構成されている他の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チャートには、お客様の特定のニーズに合わせて編集可能なフラグとチューナブルの包括的なセットが用意されています。以下の Configure the integration のセクションで、変更可能な項目を確認してください。
--debug
と--dry-run
を指定せずにコマンドを実行して、Kubernetes統合をインストールします。bash$helm upgrade --install newrelic-bundle newrelic/nri-bundle \>--namespace newrelic --create-namespace \>-f values-newrelic.yaml重要
Kubernetes バージョン 1.25.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
ポッド。
Helm 2とnri-bundle(レガシー)でのインストール
このドキュメントはインストールで役立ちましたか。
統合を構成する
nri-bundle
チャート。そのインストール手順は上記にあり、ソリューションのコンポーネントを含む他のいくつかのチャートのラッパーまたはメタパッケージとして機能します。このようなラッパーを提供することにより、コンポーネントのチャートを比較的単純に保ちながら、相互に互換性があることがわかっているバージョンのコンポーネントの制御されたセットを提供できます。
個々の統合コンポーネントを構成するには、Helmの依存関係システムを使用する必要があります。つまり、子グラフの構成は、そのグラフの名前のセクションの下に配置する必要があります。たとえば、 newrelic-infrastructure
チャートを構成するには、 values-newrelic.yaml
に以下を追加します。
global: licenseKey: _YOUR_NEW_RELIC_LICENSE_KEY_ cluster: _K8S_CLUSTER_NAME_
# ... Other settings as shown above
# Configuration for newrelic-infrastructurenewrelic-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
微調整できるフラグの完全なリスト ( Scrape-intervalなど) は、チャートのリポジトリにあります。
newrelic-infrastructure
- デバッグログ、特権モード、コントロールプレーン監視などの設定を行います。
nri-kube-events
nri-metadata-injection
- APM連携用のWebhookをどのように展開するかを設定します。
- どのPrometheusエンドポイントをスクレイピングするかを設定します。
newrelic-logging
- どのログをNew Relicに送信するかを設定します。
ヒント
これらのグラフのオプションを指定するときは、 values-newrelic.yaml
のグラフ名の下にそれらを配置する必要があることに注意してください。