Kubernetesインテグレーションをインストールする最も近道は、自動化されたインストーラを使用してマニフェストを生成することです。生成されたマニフェストは、インテグレーションDaemonSetsのみならず、Kubernetesイベント、Prometheus OpenMetrics、New Relicログモニタリングなど、その他のNew Relic Kubernetes製品の設定もバンドルします。
きめ細かなテレメトリデータ用に、PixieとNew Relic Oneインテグレーションをインストールしたいとお考えですか?1つのインストールコマンドで、Kubernetesクラスタとワークロードをより深く理解するには、Pixieを使用した自動テレメトリのインストール手順をご覧ください。言語エージェントは必要ありません。
当社のKubernetesインテグレーションをお試しになりますか?New Relicアカウントの作成は無料です。クレジットカードは不要です。
自動インストーラの使用
サーバー、VM、特権のない環境で、自動化されたインストーラを使用できます。インストーラを使用して、いくつかの予備メモを見直した後に、マネージドサービスまたはプラットフォームも使用できます。カスタムマニフェストが必要な場合や、手動で特権のないインストールをする場合には、別の手順もあります。
New RelicアカウントがEU地域にある場合は、one.eu.newrelic.comからインストーラにアクセスします。
マネージドサービスとプラットフォーム向けのインストール
自動化されたインストーラを起動する前に、次のマネージドサービスまたはプラットフォーム向けのメモを確認してください。
カスタムマニフェスト
Kubernetesの自動化されたインストーラに必要な設定がない場合は、マニフェストテンプレートをダウンロードし、インテグレーションに手動でインストールできます。
Kubernetes インテグレーションをアクティブ化するには、newrelic-infra
エージェントをDaemonSet
としてKubernetesクラスタにデプロイする必要があります。
kube-state-metricsをインストールして、クラスタで実行します。例:
curl -L -o kube-state-metrics-1.9.5.zip https://github.com/kubernetes/kube-state-metrics/archive/v1.9.5.zip && unzip kube-state-metrics-1.9.5.zip && kubectl apply -f kube-state-metrics-1.9.5/examples/standard
マニフェストファイルのダウンロード:
curl -O https://download.newrelic.com/infrastructure_agent/integrations/kubernetes/newrelic-infrastructure-k8s-latest.yamlマニフェストの
DaemonSet
部分に、New Relicライセンスキーとクラスタ名を追加し、Kubernetesクラスタを特定します。両方の値が必要です。- 推奨: マニフェストの
NRIA_PASSTHROUGH_ENVIRONMENT
またはNRIA_DISPLAY_NAME
の値は変更しないでください。 YOUR_CLUSTER_NAME
は、New RelicエクスプローラーのクラスターのIDです。環境で実行されているクラスターの名前と一致する必要はありません。- YAMLキーパス:
spec.template.spec.containers.name.env
env: - name: NRIA_LICENSE_KEY value: YOUR_LICENSE_KEY - name: CLUSTER_NAME value: YOUR_CLUSTER_NAME
- 推奨: マニフェストの
マニフェストを環境に合わせる必要がある場合、本ドキュメントの設定セクションを確認してください。
kube-state-metrics
がインストールされていることを確認します。kubectl get pods --all-namespaces | grep kube-state-metricsDaemonSet
の作成:kubectl create -f newrelic-infrastructure-k8s-latest.yamlこのコマンドの出力結果で、
newrelic-infra
を見つけて、DaemonSet
が正常に作成されたことを確認します。kubectl get daemonsets
インテグレーションが動作していることの確認: 数分待ってから、New Relic Kubernetesクラスタエクスプローラーでデータを検索します。
データが見つからない場合は、設定手順をもう一度確認して、トラブルシューティング手順に従ってください。
重要
今後、Kubernetesオブジェクトで収集されるラベル数は、オブジェクトタイプ(コンテナ、ポッド、ノード等)ごとに制限されます。オブジェクトのラベル数が制限を超えると、New Relicに常に送信する必要がある重要なラベルを設定できるようになります。制限が実施されると、このドキュメンテーションはアップデートされます。
NewRelicポッドをスケジュールできることを確認します。
一部のNewRelicポッドは、マニフェストファイルでDaemonSet
として設定されているため、すべてのホストで実行できます。これらには、newrelic-infrastructure
とnewrelic-logging
が含まれます。まれに、他のポッドが最初にスケジュールされ、New Relicポッドのリソースが不足する場合があります。これらの各ポッドは特定のホストで実行する必要があるため、他のホストが使用可能であっても、そのホストに十分なリソースが確保されるまで、ポッドは保留状態のままになります。これは最終的に長期間発生する可能性があるため、レポートにギャップが生じる場合があります。
この状況を防ぐために、Kubernetesスケジューラーを設定して、New Relicポッドの優先度を高くすることができます。デフォルトスケジューラーの使用:
kube-scheduler
フラグdisablePreemption
がtrue
に設定されていないことを確認します(デフォルトではfalse
です)。New Relic DaemonSetポッド用の
PriorityClass
を作成します。- 適切な優先度の値を設定します。通常、この値は他のポッドよりも高くする必要があります。
- デフォルトでは、
preemptionPolicy
はPreemptLowerPriority
に設定されます。これにより、この優先度クラスが割り当てられたNew Relicポッドは、リソースを消費する優先度の低いポッドを削除できます。
マニフェストファイルを編集して、
priorityClassName
を任意のDaemonSet
仕様に追加します。以下の例では、強調表示された行がnewrelic-infrastructure
の優先度クラスを設定しています。apiVersion: apps/v1 kind: DaemonSet metadata: namespace: default labels: app: newrelic-infrastructure chart: newrelic-infrastructure-1.0.0 release: nri-bundle mode: privileged name: nri-bundle-newrelic-infrastructure spec: priorityClassName: your-priority-class ...
New Relicポッドをすでにデプロイしている場合は、それらを再デプロイして、作成されていることを確認します。
kubectl delete -f newrelic-infrastructure-k8s-latest.yamlkubectl create -f newrelic-infrastructure-k8s-latest.yamlkubectl get daemonsets
Kubernetesインテグレーションの特権なしインストール
セキュリティ要件が非常に厳しいプラットフォームには、Kubernetesインテグレーションの特権なしバージョンを提供しています。標準のKubernetesインテグレーションからの変更点は、次のとおりです。
- rootではなく標準ユーザーとして、InfrastructureエージェントとKubernetesインテグレーションを実行
- 基盤となるホストファイルシステムにアクセスせず
/var/run/docker.sock
にアクセスせず- コンテナのrootファイルシステムは読み取り専用でマウント
allowPrivilegeEscalation
はfalse
に設定hostnetwork
はfalse
に設定
トレードオフとして、ソリューションはKubernetesからのメトリクスのみを収集しますが、基盤となるホストから直接メトリックは収集しません。Kubernetesはノード(ホスト)についてデータ(メトリックスおよびメタデータ)を提供します。
ヒント
オプション: 基盤となるホストメトリクスを収集するため、コンテナ化されていないInfrastructureエージェントを基盤となるホストにデプロイできます。Infrastructureエージェントはすでに、root以外での実行をサポートしています。非特権バージョンでのKubernetesインテグレーションとホストで実行されるエージェントを組み合わせると、Kubernetes監視のための標準のソリューションが受信するすべてのメトリックスがレポートされます。
インテグレーションの設定
Kubernetesインテグレーションには、ほとんどの環境で動作するデフォルト設定が付随しています。設定を変更するには、マニフェストファイルを変更します。
考慮する追加設定は、次のとおりです。
Infrastructureエージェントの設定
Kubernetesインテグレーションイメージは、必要に応じて変更できるエージェントのデフォルト設定がされています。マニフェストでインストールする場合は、マニフェストを編集し、newrelic-infrastructure DaemonSetの環境変数としてとして、必要なエージェントの設定オプション
を追加することで、infrastructureエージェント設定を変更できます。
Helmでインストールする場合は、GitHubの例に示されているように、values.yaml
で必要なinfrastructureエージェント設定オプションを指定できます。
config
オブジェクトを使用して、configMap
を入力します。これは、newrelic-infrastructure
DaemonSetによって作成されたポッド内のinfrastructureエージェント設定ファイルの場所に自動的に組み込まれます。
最新バージョンにアップデート
自動インストーラの使用
自動インストーラでインストールされたKubernetesインテグレーションを更新するには、再度インストーラを実行するだけです。常に、インテグレーションの最新リリースバージョンを示すマニフェストが提供されます。
Helmの使用
Helmを使用してKubernetesインテグレーションをインストールを参照
カスタムマニフェスト
Kubernetesインテグレーションをすでに実行中で、newrelic-infra
エージェントを最新のエージェントバージョンに更新する場合は、次の手順を実行します。
このNRQLクエリを実行し、現在実行中のバージョンをチェックします(これにより、クラスタごとの画像名が返されます)。
SELECT latest(containerImage) FROM K8sContainerSample WHERE containerImage LIKE '%newrelic/infrastructure%' FACET clusterName SINCE 1 day ago
インテグレーションのコンテナ画像に
newrelic/infrastructure
以外の名前を設定している場合、上記のクエリでは結果が得られません。結果を得るには、クエリの名前を編集してください。インテグレーションのマニフェストファイルのダウンロード:
curl -O https://download.newrelic.com/infrastructure_agent/integrations/kubernetes/newrelic-infrastructure-k8s-latest.yamlマニフェストの変更をコピーします。少なくとも
CLUSTER_NAME
とNRIA_LICENSE_KEY
を含めて、ダウンロードしたマニフェストに変更をペーストします。次のコマンドで最新の
DaemonSet
をインストールします(Kubernetes は、インテグレーションのポッドの段階的アップグレードを自動的に行います)。kubectl apply -f newrelic-infrastructure-k8s-latest.yaml
Kubernetesインテグレーションのアンインストール
以下の手順に従い、Kubernetesインテグレーションをインストールします。
newrelic-infrastructure-k8s-latest.yaml
が、保存したマニフェストのファイル名に対応していることを確認します。例: 特権なしバージョンのインテグレーションを使用している場合、デフォルトのファイル名は
newrelic-infrastructure-k8s-unprivileged-latest.yaml
となります。ファイル名を確認した後、以下のコマンドを使用します。
kubectl delete -f newrelic-infrastructure-k8s-latest.yaml
クラスタ内のノード数にかかわらず、このコマンドを1回実行すれば十分です。
その他のヘルプ
さらに支援が必要な場合は、これらのサポートと学習リソースを確認してください:
- Explorers Hubでは、コミュニティからのサポートを受けたり、ディスカッションに参加したりすることができます。
- 当社サイトで答えを見つけて、サポートポータルの使用方法を確認してください。
- Linux、Windows、およびmacOS向けトラブルシューティングツールであるNew Relic Diagnosticsを実行してください。
- New Relicの とandドキュメント をご確認ください。