コンテンツにスキップ

複数の Kubernetes クラスタメトリクス収集のベストプラクティス


概要

1 つのワークスペースに複数の Kubernetes クラスタを接続する場合は、ENV_NAMESPACE 環境変数を設定し、空でない文字列を値として指定する必要があります。異なるクラスタ間で同じ値を使用することはできません。

- name: ENV_NAMESPACE
  value: xxx

1 つのワークスペースに複数の Kubernetes クラスタのメトリクスを接続する場合、Guance ではグローバルタグを使用して区別する方法を提供しています。クラスタ内に 1 つの収集対象しか存在しない場合(例:Kubernetes API Server メトリクスの収集)、クラスタ内の DataKit の数は 1 より多くなります。メトリクス収集の重複を避けるため、DataKit は選挙機能を有効にします。この場合、クラスタを区別する方法は ENV_GLOBAL_ELECTION_TAGS を追加することです。

- name: ENV_GLOBAL_ELECTION_TAGS
  value: cluster_name_k8s=k8s-prod

一方、非選挙型のメトリクス収集(例:Pod に annotations を追加してメトリクスを収集する方法)では、Guance は ENV_GLOBAL_HOST_TAGS 環境変数にグローバルタグを追加する方法を提供しています。

- name: ENV_GLOBAL_HOST_TAGS
  value: host=__datakit_hostname,host_ip=__datakit_ip,cluster_name_k8s=k8s-prod

上記の方法で収集されたメジャーメントには、すべて cluster_name_k8s というタグが値 k8s-prod で追加されます。これがクラスタを区別する仕組みです。

以下では、複数のクラスタから Kubernetes API Server メトリクスを収集する例を用いて、詳細に説明します。

前提条件

  • Kubernetes 1.18+ がインストールされていること
  • Guance アカウント

手順

ステップ 1: テスト環境クラスタへの DataKit デプロイ

1.1 datakit.yaml のダウンロード

Guance コンソールにログインし、「インテグレーション」→「DataKit」→「Kubernetes」をクリックして、datakit.yaml をダウンロードします。

1.2 Token の置き換え

Guance コンソールにログインし、「管理」モジュールの「基本設定」で token をコピーし、datakit.yaml ファイル内の ENV_DATAWAY 環境変数の value 値にある <your-token> を置き換えます。

1.3 グローバルタグの追加

  • datakit.yaml ファイルの ENV_GLOBAL_HOST_TAGS 環境変数の値の末尾に cluster_name_k8s=k8s-test を追加します。
  • さらに、環境変数 ENV_GLOBAL_ELECTION_TAGS を追加します。これにより、テスト環境のクラスタは k8s-test になります。
  • 環境変数 ENV_NAMESPACE の値を k8s-test に設定します。これにより、DataKit の選挙が有効になり、ワークスペース + このネームスペース内で 1 つの DataKit のみが Kubernetes API Server のメトリクスを収集します。
- name: ENV_NAMESPACE
  value: k8s-test
- name: ENV_GLOBAL_ELECTION_TAGS
  value: cluster_name_k8s=k8s-test

image

1.4 Kubernetes API Server メトリクス収集の設定

詳細は <Kubernetes API Server インテグレーション文書> を参照してください。

1.5 DataKit のデプロイ

datakit.yaml をテストクラスタの Master ノードにアップロードし、デプロイコマンドを実行します。

kubectl apply -f datakit.yaml

ステップ 2: 本番環境クラスタへの DataKit デプロイ

2.1 datakit.yaml の修正

ステップ 1 で使用した datakit.yaml を使用し、k8s-testk8s-prod に変更します。これにより、本番環境のクラスタは k8s-prod になります。
また、api-server.conf 内の url も修正する必要があります。

image

2.2 DataKit のデプロイ

datakit.yaml を本番クラスタの Master ノードにアップロードし、デプロイコマンドを実行します。

kubectl apply -f datakit.yaml

ステップ 3: ビューのプレビュー

3.1 メトリクスのプレビュー

Guance コンソールにログインし、「メトリクス」をクリックして「prom_api_server」を検索します。cluster_name_k8s タグの下に、2 つのクラスタ名が表示されます。

image

3.2 新しいビューの作成

Guance コンソールにログインし、「シーン」→「新しいダッシュボード」をクリックし、「Kubernetes API Server モニタリングビュー」を選択します。クラスタ名のドロップダウンリストでクラスタを区別できるようになります。

image

フィードバック

このページは役に立ちましたか?