kube-state-metricsを使用したKubernetesクラスターのモニタリング

kube-state-metrics(KSM)は、Kubernetesオブジェクトの状態に関するメトリックを監視および生成します。 KSMは、デプロイ、ノード、ポッドなどのさまざまなKubernetesオブジェクトの状態を監視します。 詳細については、を参照してください。 kube-state-metrics(KSM)ドキュメント.

LM Exchangeで利用可能なkube-state-metricsベースのモジュールを、新しいArgusチャートおよびCollector Helmチャートと組み合わせて使用​​して、Kubernetesクラスターの可視性を高めることができるようになりました。 チャートは、クラスターにKSMを自動的にインストールして構成し、次のリソースを監視します。

  • デーモンセット
  • レプリカセット
  • Statefulsets
  • PersistentVolumes

注意:デフォルトでは、Argusのインストール中にKSMがインストールされます。 また、新しく追加されたリソースは、KSMを使用して監視されます。 詳細については、を参照してください。 KSMのインストール.

KSMモニタリングの有効化

KSMを構成するには、 kube-state-metrics.enabled プロパティへ true Argus構成ファイル内。 の場合 kube-state-metrics.enabled プロパティがfalseに設定されている場合、リソースのアクティブな検出のみが機能し、新しく追加されたリソースは監視されません。

カスタマイズ可能なプロパティの詳細なリストについては、を参照してください。 kube-state-metricsヘルムチャート.

サンプル: 
values.yamlファイルで次のKSMプロパティを構成する必要があります。

# Kube state metrics configuration
# For further customizing KSM configuration, see kube-state-metrics Helm Chart.
kube-state-metrics:
 # Set enabled to false in case you want to use a custom configured KSM
 enabled: true
 # No. of KSM Replicas to be configured
 replicas: 1
 collectors:
 - daemonsets
 - replicasets
 - statefulsets
 - persistentvolumes

注意:デフォルトでは、コレクターはKSMを使用して新しいリソースを監視することができます。 KSMヘルムチャートをカスタマイズすることもできます。 詳細については、を参照してください。 kube-state-metricsヘルムチャート.

KSMのインストール 

もし kube-state-metrics.enabled プロパティが有効になっている場合、KSMは自動的にインストールされます。 さらに、Argusのインストール中またはArgusのアップグレード中にKSMを構成できます。 

注意:Argusのインストール中にKSMをインストールしたくない場合は、CLIを使用して手動でKSMをインストールできます。 詳細については、を参照してください。 CLIを使用したKSMのインストール.

KSMモニタリングを使用したArgusのインストール

Argusを初めてインストールするときにKSMを構成するには、次の手順を実行します。

Requirements

  • PropertySourcesとDataSourcesをインポートして、リソースを監視します。
  • 新しいリソースを監視またはサポートするためにOpenmetricsが有効になっていることを確認します。

1。 案内する Exchange>パブリックリポジトリ LMから次のPropertySourceとDataSourcesをインポートします。

プロパティソース
addCategory_KubernetesKSM:

PropertySourcesは、kube-state-metricsサービスがクラスター上で(ArgusまたはCLIを介して)構成されているかどうかを確認し、各Kubernetesリソースに次のプロパティを設定します。

  • KubernetesKSM –リソースがkube-state-metricsを介して監視できるかどうかを確認するカテゴリ。
  • auto.ksm.service.url –メトリクスデータを取得するためのkube-state-metricsサービスURL。 OpenMetrics DataSourcesは、Kubernetesリソースを監視するためにメトリックスデータを使用します。

データソース
DataSourcesは、OpenMetrics形式でKSMからメトリックを収集します。 これらのデータソースは、グラフでデータを表現したり、アラートを生成したりするためにメトリックを利用します。 次のデータソースは、デーモンセット、レプリカセット、ステートフルセット、および永続ボリュームPVのメトリックをそれぞれ提供します。

  • Kubernetes_KSM_Daemonsets
  • Kubernetes_KSM_Statefulsets
  • Kubernetes_KSM_Replicasets
  • Kubernetes_KSM_PersistentVolumes

さらに、これらのデータソースは、を使用して構成されたOpenMetricsサーバーのURLを使用します addCategory_KubernetesKSM PropertySource。

2.Argusをインストールします。 詳細については、を参照してください。 アーガスのインストール.

KSMモニタリングを有効にするためのArgusのアップグレード

既存のクラスターを最新バージョンのArgusにアップグレードして、KSMで新しいリソースを監視するには、次の手順を実行します。

Requirements

新しいリソースを監視またはサポートするには、Openmetricsが有効になっていることを確認する必要があります。

注意:AdminAppからOpenmetricsを有効にできます。

1。 案内する Exchange>パブリックリポジトリ LMから次のPropertySourceとDataSourcesをインポートします。

プロパティソース
addCategory_KubernetesKSM

データソース

  • Kubernetes_KSM_Daemonsets
  • Kubernetes_KSM_Statefulsets
  • Kubernetes_KSM_Replicasets
  • Kubernetes_KSM_PersistentVolumes

2.次のKSM構成プロパティをArgusvalues.yamlに追加します。

例:

kube-state-metrics:
 # Set enabled to false in case you want to use a custom configured KSM
 enabled: true
 # No. of KSM Replicas to be configured
 replicas: 1
 collectors:
 - daemonsets
 - replicasets
 - statefulsets
 - persistentvolumes

詳細については、を参照してください。 kube-state-metricsヘルムチャート.

3.次のコマンドを実行して、Helmをアップグレードします。

helm repo update

4.次のコマンドを実行して、Argusをアップグレードします。

helm upgrade --reuse-values -f argus-config.yaml argus logicmonitor/argus

5.ArgusPodを再起動します。

注意:CLIを使用してkube-state-metricsをインストールすることもできます。 詳細については、を参照してください。 CLIを使用したKSMのインストール。

CLIを使用したKSMのインストール

注意:Argusチャートで有効にすると、KSMが自動的にインストールされます。 ただし、KSMを手動でインストールする場合は、次のコマンドを実行して、コマンドライン引数を使用してkube-state-metricsをインストールします。

kube-state-metrics --telemetry-port=8081 --kubeconfig=<KUBE-CONFIG> --apiserver=<APISERVER> …

または、KubernetesまたはOpenshiftコンテキストのデプロイメント設定のargsセクションで設定します。

spec:
  template:
    spec:
      containers:
        - args:
          - '--telemetry-port=8081'
          - '--kubeconfig=<KUBE-CONFIG>'
          - '--apiserver=<APISERVER>'
記事上で