New RelicのKubernetesインテグレーション は、 サーバーやVMに直接 インストールすることもできますし、GKE、EKS、AKS、OpenShiftなど、いくつかの クラウドプラットフォーム を通してインストールすることもできます。それぞれ、当社の統合との互換性は異なります。
重要
Openshiftを使用している場合は、ほとんどの場合kubectl
を使用することもできますが、 kubectl
にはoc login
やoc adm
などのコマンドがないことに注意してください。 kubectl
の代わりにoc
を使用する必要があるかもしれません。
互換性
Kubernetesは互換性があり、次のバージョンで継続的にテストされています。
バージョン | |
---|---|
Kubernetesクラスタ | 1.16~1.25 |
Kubernetesフレーバー
New RelicのKubernetes統合は、さまざまなフレーバーと互換性があります。次のものとの統合をテストしました。
フレーバー | メモ |
---|---|
ミニクベ | |
親切 | |
K3s | |
クベアドム | |
Amazon Elastic Kubernetes Service(EKS) | |
Amazon Elastic Kubernetes Service Anywhere(EKS-Anywhere) | |
Fargate上のAmazonElasticKubernetesサービス(EKS-Fargate) | |
Rancher Kubernetesエンジン(RKE1) | コントロール プレーン コンポーネントをインストルメント化するには、 追加の構成が必要です |
Azure Kubernetes Service(AKS) | |
Google Kubernetes Engine(GKE) | |
OpenShift | OpenShift 4.10 以前でテスト済み。3.x バージョンはサポートされていないことに注意してください。 |
VMwareタンズ | VMware Tanzu(Pivotal Platform)のバージョン2.5~2.11、Ops Managerのバージョン2.5~2.10に対応 |
インストール方法によっては、コントロールプレーンの監視が利用できないか、追加の構成が必要になる場合があります。
例えば:
- etcd、スケジューラー、およびコントローラーマネージャーに必要なメトリックを公開するエンドポイントがないため、APIサーバーメトリックのみがスクレイプ可能であり、インストルメント管理クラスター(GKE、EKS、AKS)コントロールプレーンで使用できます。
- ランチャーコントロールプレーンをインストルメント化するには、コンポーネント
/metrics
がデフォルトで常に到達可能であるとは限らず、自動検出できないため、 追加の構成が必要です。
要件
New Relic Kubernetes の統合には以下の要件があります。
- New Relicアカウント。アカウントをお持ちでない場合は、無料サインアップクレジットカードは不要です。
- Linux ディストリビューション New Relic インフラストラクチャ エージェントと互換性がある 。
- クラスタで実行中の
kube-state-metrics
。 - CRI-Oをコンテナランタイムとして使用する場合、コンテナ内の プロセス は報告されません。パフォーマンスデータは、 コンテナ レベルで収集されます。
重要
kube-state-metrics
v2 以降は統合バージョン 3.6.0 からサポートされます以上。
バージョン 3.5.0 までの Kubernetes 統合をインストールするkube-state-metrics
1.9.8 以下を使用している場合。
一部の変数が変更されている可能性があるため、 kube-state-metrics
v1.9.8 から v2 以降に更新する場合は、 values.yaml
ファイルを確認してください:
KSM の新しいバージョンへのアップグレード
変更されたラベル セレクター
KSM の新しいバージョンにアップグレードすると、次のようなエラーが表示される場合があります。
$v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/instance":"newrelic", "app.kubernetes.io/name":"kube-state-metrics"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable
新しいバージョンのチャートのラベル セレクターは変更されましたが、デプロイの名前は変更されていません。したがって、アップグレードするには、kube-state-metrics デプロイメントを削除するか、リリース名を変更するか、リリースを再作成する必要があります。
非推奨の値
一方、アップグレード時には次のログが表示されます。
$warning: skipped value for nri-bundle.kube-state-metrics.collectors: Not a table.$Error: UPGRADE FAILED: template: nri-bundle/charts/kube-state-metrics/templates/role.yaml:18:6: executing "nri-bundle/charts/kube-state-metrics/templates/role.yaml" at <has "certificatesigningrequests" $.Values.collectors>: error calling has: Cannot find has on type map
これは、KSM チャートの値が変更され、コレクターのマップがコレクターのリストに変更されたためです。コレクター リストは不要になり、新しい値から削除されました。
静的 Helm 値にまだそれらがある場合、またはフラグ --reuse-values を使用している場合は、最初に次の値を削除する必要があります。
collectors: certificatesigningrequests: false ingresses: false
コンテナ情報
Kubernetesの統合はCRIに依存しません。 Containerd、CRI-O、Dockerとの互換性が特にテストされています。
Helmによるインストール
Helmを使用して統合をインストールする方法については、Helm を使用した手動インストールを参照してください。