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

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

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

概要

Kubernetesインテグレーション バージョン 2 には、バージョン 3 とは異なる設定と要件がいくつかあります。 このドキュメントでは、バージョン 3 とは異なる設定と、バージョン 2 に必要な設定について説明します。特に指定がない場合は、バージョン 3 の設定を使用できます。

注意

バージョン 2 は置き換えられたため、使用しないでください。 このドキュメントは、バージョン 2 をまだ使用しているユーザーのために維持されています。

現在のバージョンの の使用を開始するには 、 インテグレーションの概要」KubernetesKubernetes を参照してください。

バージョン 3 の変更点を理解するには、 Kubernetesインテグレーション バージョン 3 のドキュメントに導入された変更点を参照してください。

統合されたコントロールプレーンの監視 バージョン2

ここでは、バージョン2以前のインテグレーションでコントロールプレーンモニタリングを設定する方法について説明します。

これらのバージョンでは自動検出オプションの柔軟性が低く、外部エンドポイントをサポートしていないことに注意してください。 できるだけ早くバージョン 3にアップデートすることを強くお勧めします。

自動検出とデフォルト設定: hostNetworkおよび privileged

v3より前のバージョンでは、統合がprivileged: falseを使用してデプロイされると、コントロールプレーンコンポーネントのhostNetwork設定もfalseに設定されます。

マスターノードとコントロールプレーンコンポーネントの発見

Kubernetesインテグレーションは、 kubeadmラベル付け規則に基づいてマスター ノードとコントロール プレーン コンポーネントを検出します。 つまり、マスターノードにはnode-role.kubernetes.io/master=""またはkubernetes.io/role="master"ラベルを付ける必要があるということです。

コントロール プレーン コンポーネントには、 k8s-appまたはtiercomponentラベルのいずれかが必要です。 許容されるラベルの組み合わせと値については、次の表を参照してください。

コンポーネント

ラベル

終点

APIサーバー

Kubeadm / Kops / ClusterAPI

k8s-app=kube-apiserver

tier=control-plane component=kube-apiserver

OpenShift

app=openshift-kube-apiserver apiserver=true

localhost:443/metrics デフォルトでは(構成可能)、要求が失敗した場合はにフォールバックします localhost:8080/metrics

etcd

Kubeadm / Kops / ClusterAPI

k8s-app=etcd-manager-main

tier=control-plane component=etcd

OpenShift

k8s-app=etcd

localhost:4001/metrics

スケジューラー

Kubeadm / Kops / ClusterAPI

k8s-app=kube-scheduler

tier=control-plane component=kube-scheduler

OpenShift

app=openshift-kube-scheduler scheduler=true

localhost:10251/metrics

コントローラーマネージャー

Kubeadm / Kops / ClusterAPI

k8s-app=kube-controller-manager

tier=control-plane component=kube-controller-manager​

OpenShift

app=kube-controller-manager kube-controller-manager=true

localhost:10252/metrics

インテグレーションは、マスター ノード内で実行されていることを検出すると、上の表にリストされているラベルに一致するポッドを探して、ノード上で実行されているコンポーネントを見つけようとします。 実行中のコンポーネントごとに、統合はメトリクス エンドポイントにリクエストを作成します。

構成

マスターノード内で動作するエージェントは、コントロールプレーンの監視が自動的に行われます。クライアントのリクエストに相互TLS認証(mTLS)を使用しているため、実行に余分な手順が必要なコンポーネントはetdのみです。APIサーバーは、 Secure Port を使って問い合わせを行うように設定することもできます。

重要

OpenShift 4.x のコントロールプレーン監視には、追加の設定が必要です。詳細については、 OpenShift 4.x Configuration のセクションを参照してください。

etcd

etcd をクエリするために mTLS を設定するには、次の 2 つの構成オプションを設定する必要があります。

オプション

価値

ETCD_TLS_SECRET_NAME

mTLSの設定を含むKubernetesのシークレットの名前。

シークレットには以下のキーを入れてください。

  • cert:要求を行っているクライアントを識別する証明書。 etcdの信頼できるCAによって署名されている必要があります。

  • key:クライアント証明書の生成に使用される秘密鍵。

  • cacert:etcdサーバー証明書の識別に使用されるルートCA。

    ETCD_TLS_SECRET_NAMEオプションが設定されていない場合、etcdメトリックはフェッチされません。

ETCD_TLS_SECRET_NAMESPACE

ETCD_TLS_SECRET_NAMEで指定されたシークレットが作成されたネームスペース。設定されていない場合、 default名前空間が使用されます。

APIサーバー

デフォルトでは、APIサーバーの指標はlocalhost:8080のセキュリティで保護されていないエンドポイントを使用してクエリされます。このポートが無効になっている場合は、セキュアポートを介してこれらのメトリックを照会することもできます。これを有効にするには、Kubernetes統合マニフェストファイルで次の設定オプションを設定します。

オプション

価値

API_SERVER_ENDPOINT_URL

メトリックをクエリするための(安全な)URL。 APIサーバーはデフォルトでlocalhost:443を使用します

ClusterRoleがマニフェストにある最新バージョンに更新されていることを確認してください

バージョン1.15.0で追加

重要

なお、このポートは、APIサーバーが使用するセキュアポートに応じて異なる場合があります。

たとえば、MinikubeではAPIサーバーのセキュアポートは8443であるため、 API_SERVER_ENDPOINT_URLは次のように設定する必要があります。 https://localhost:8443

OpenShiftの設定

OpenShift 4.x のコントロール プレーン コンポーネントは、SSL とサービス アカウント ベースの認証を必要とするエンドポイント URL を使用します。 したがって、 デフォルトのエンドポイント URL は使用できません。

重要

Helmを介してopenshiftをインストールする場合は、これらのエンドポイントを自動的に含めるように構成を指定してください。 openshift.enabled=trueopenshift.version="4.x"を設定すると、セキュアエンドポイントが含まれ、 /var/run/crio.sockランタイムが有効になります。

OpenShift でコントロール プレーンの監視を構成するには、カスタマイズされたマニフェストで次の環境変数のコメントを解除します。 URL 値は、 OpenShift 4.x のコントロール プレーン監視メトリクス エンドポイントのデフォルトのベース URL に事前設定されています。

- name: "SCHEDULER_ENDPOINT_URL"
value: "https://localhost:10259
- name: "ETCD_ENDPOINT_URL"
value: "https://localhost:9979"
- name: "CONTROLLER_MANAGER_ENDPOINT_URL"
value: "https://localhost:10257"
- name: "API_SERVER_ENDPOINT_URL"
value: "https://localhost:6443"

重要

カスタムETCD_ENDPOINT_URLが定義されている場合でも、etcd では HTTPS および mTLS 認証を構成する必要があります。 OpenShift で etcd 用に mTLS を構成する方法の詳細については、 「OpenShift で etcd 用に mTLS を設定する」を参照してください。

Kubernetesのログ

詳細なログを生成し、バージョンと設定情報を取得したい場合は、以下の情報を確認してください。

Kubernetesで実行されているサービスを監視する

Kubernetes のモニタリング サービスは 、インフラストラクチャ エージェントとオンホスト統合 、および自動検出メカニズムを活用して、指定されたセレクターを持つポッドをポイントすることで機能します。

方法については、 「Helm Chart を使用してサービスの監視を有効にする」ドキュメントを参照してください。 バージョン 2 のこの例を確認してください。これは、 Redisインテグレーションの yaml 構成が nri-bundle チャートの values.yml ファイルに追加されたことを示しています。

newrelic-infrastructure:
integrations_config:
- name: nri-redis.yaml
data:
discovery:
command:
# Run NRI Discovery for Kubernetes
# https://github.com/newrelic/nri-discovery-kubernetes
exec: /var/db/newrelic-infra/nri-discovery-kubernetes --tls --port 10250
match:
label.app: redis
integrations:
- name: nri-redis
env:
# using the discovered IP as the hostname address
HOSTNAME: ${discovery.ip}
PORT: 6379
labels:
env: test

サービスYAMLをKubernetes統合構成に追加します

Kubernetesインテグレーション バージョン 2 を使用している場合は、ConfigMap 内のすべてのファイルが /etc/newrelic-infra/integrations.d/ にマウントされるように、DaemonSet の specvolumes および volumeMounts セクションにこの ConfigMap のエントリを追加する必要があります。

Copyright © 2024 New Relic株式会社。

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