KSM を使用した Kubernetes クラスターの監視
最終更新日: 09 年 2024 月 XNUMX 日免責事項: Argus および Collectorset-Controller Helm Chart は段階的に廃止されます。 インストールとアップグレードをより簡単にするために新しい LM Container Helm Chart に切り替える方法の詳細については、次を参照してください。 LM Container Helm チャートを使用した既存の Kubernetes クラスターの移行.
kube-state-metrics(KSM)は、Kubernetesオブジェクトの状態に関するメトリックを監視および生成します。 KSMは、デプロイ、ノード、ポッドなどのさまざまなKubernetesオブジェクトの状態を監視します。 詳細については、を参照してください。 kube-state-metrics(KSM)ドキュメント.
LM Exchangeで利用可能なkube-state-metricsベースのモジュールを、新しいArgusチャートおよびCollector Helmチャートと組み合わせて使用して、Kubernetesクラスターの可視性を高めることができるようになりました。 チャートは、クラスターにKSMを自動的にインストールして構成し、次のリソースを監視します。
- デーモンセット
- レプリカセット
- ステートフルセット
- 持続ボリューム
注意:デフォルトでは、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のインストール
Status kube-state-metrics.enabled プロパティが有効になっている場合、KSMは自動的にインストールされます。 さらに、Argusのインストール中またはArgusのアップグレード中にKSMを構成できます。
注意:Argusのインストール中にKSMをインストールしたくない場合は、CLIを使用して手動でKSMをインストールできます。 詳細については、を参照してください。 CLIを使用したKSMのインストール.
KSMモニタリングを使用したArgusのインストール
Argusを初めてインストールするときにKSMを構成するには、次の手順を実行します。
要件
- 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で新しいリソースを監視するには、次の手順を実行します。
要件
新しいリソースを監視またはサポートするには、Openmetricsが有効になっていることを確認する必要があります。
注意: Openmetrics を有効にするには、カスタマー サクセス マネージャー (CSM) にお問い合わせください。
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>'