複数の Kubernetes クラスタメトリクス収集のベストプラクティス¶
概要¶
1 つのワークスペースに複数の Kubernetes クラスタを接続する場合は、ENV_NAMESPACE 環境変数を設定し、空でない文字列を値として指定する必要があります。異なるクラスタ間で同じ値を使用することはできません。
1 つのワークスペースに複数の Kubernetes クラスタのメトリクスを接続する場合、Guance ではグローバルタグを使用して区別する方法を提供しています。クラスタ内に 1 つの収集対象しか存在しない場合(例:Kubernetes API Server メトリクスの収集)、クラスタ内の DataKit の数は 1 より多くなります。メトリクス収集の重複を避けるため、DataKit は選挙機能を有効にします。この場合、クラスタを区別する方法は ENV_GLOBAL_ELECTION_TAGS を追加することです。
一方、非選挙型のメトリクス収集(例: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
1.4 Kubernetes API Server メトリクス収集の設定¶
詳細は <Kubernetes API Server インテグレーション文書> を参照してください。
1.5 DataKit のデプロイ¶
datakit.yaml をテストクラスタの Master ノードにアップロードし、デプロイコマンドを実行します。
ステップ 2: 本番環境クラスタへの DataKit デプロイ¶
2.1 datakit.yaml の修正¶
ステップ 1 で使用した datakit.yaml を使用し、k8s-test を k8s-prod に変更します。これにより、本番環境のクラスタは k8s-prod になります。
また、api-server.conf 内の url も修正する必要があります。
2.2 DataKit のデプロイ¶
datakit.yaml を本番クラスタの Master ノードにアップロードし、デプロイコマンドを実行します。
ステップ 3: ビューのプレビュー¶
3.1 メトリクスのプレビュー¶
Guance コンソールにログインし、「メトリクス」をクリックして「prom_api_server」を検索します。cluster_name_k8s タグの下に、2 つのクラスタ名が表示されます。
3.2 新しいビューの作成¶
Guance コンソールにログインし、「シーン」→「新しいダッシュボード」をクリックし、「Kubernetes API Server モニタリングビュー」を選択します。クラスタ名のドロップダウンリストでクラスタを区別できるようになります。



