コンテンツにスキップ

Rancher による DataKit デプロイメントのベストプラクティス


著者: 刘玉杰

概要

Rancher は、Kubernetes クラスターを管理するためのオープンソースのエンタープライズ向けプラットフォームです。Kubernetes クラスターへの DataKit のデプロイを簡素化するために、DataKit は Rancher プラットフォームのアプリケーションマーケットでのデプロイをサポートしています。また、DataKit は Git リポジトリを使用してコレクター設定ファイルを管理する機能も提供しています。

Rancher を使用して DataKit をデプロイし、Git でコレクター設定を管理することは、Kubernetes クラスターに DataKit をデプロイする最適な方法の一つです。DaemonSet 方式で DataKit をデプロイする場合、デフォルトで Container コレクターが有効になっていますが、Container コレクターをより柔軟に設定するために、この記事ではカスタム方式で Container コレクターを有効にします。つまり、container.conf ファイルを Git リポジトリで管理し、Rancher のアプリケーションマーケットから DataKit をデプロイし、最後に収集されたメトリクスを確認して Git リポジトリ内のコレクター設定が有効になっていることを検証します。

前提条件

  • Kubernetes 1.18+ がインストールされていること
  • Rancher がインストールされており、Kubernetes クラスターを操作する権限があること
  • Gitlab がインストールされていること
  • Helm 3.0+ がインストールされていること

操作手順

Warning

本記事の例で使用しているバージョン情報は以下の通りです:DataKit 1.4.5、Kubernetes 1.22.6、Rancher 2.6.3、Gitlab 14.9.4

手順 1:dk-config コードリポジトリの作成

「Gitlab」にログインし、「Create blank project」をクリックします。

image

Project name に datakit-conf を入力し、「Create Project」をクリックします。

image

dk-config プロジェクトに移動し、新しい container.conf ファイルを作成します。内容は以下の通りです。container はメトリクス収集を有効にし、すべてのイメージの stdout ログ収集を無効にします。

container.conf
[inputs.container]
  docker_endpoint = "unix:///var/run/docker.sock"
  containerd_address = "/var/run/containerd/containerd.sock"

  enable_container_metric = true
  enable_k8s_metric = true
  enable_pod_metric = true

  ## Containers logs to include and exclude, default collect all containers. Globs accepted.
  container_include_log = []
  container_exclude_log = ["image:*"]

  exclude_pause_container = true

  ## Removes ANSI escape codes from text strings
  logging_remove_ansi_escape_codes = false

  kubernetes_url = "https://kubernetes.default:443"

  ## Authorization level:
  ##   bearer_token -> bearer_token_string -> TLS
  ## Use bearer token for authorization. ('bearer_token' takes priority)
  ## linux at:   /run/secrets/kubernetes.io/serviceaccount/token
  ## windows at: C:\var\run\secrets\kubernetes.io\serviceaccount\token
  bearer_token = "/run/secrets/kubernetes.io/serviceaccount/token"
  # bearer_token_string = "<your-token-string>"

  [inputs.container.tags]
    # some_tag = "some_value"
    # more_tag = "some_other_value"

image

次に、「Clone」 - 「Clone with HTTP」をクリックし、Git アドレス http://120.26.37.252/root/dk-config.git を取得します。

手順 2:名前空間の作成

管理を容易にするため、DataKit は datakit 名前空間にインストールします。
「Rancher」 - 「クラスター」 - 「プロジェクト/名前空間」にログインし、「名前空間を作成」をクリックします。

image

名前に「datakit」を入力し、「作成」をクリックします。

image

手順 3:Chart リポジトリの追加

「Rancher」 - 「クラスター」 - 「アプリケーションマーケット」 - 「Chart リポジトリ」にログインし、「作成」をクリックします。名前は datakit、URL は https://pubrepo.guance.com/chartrepo/datakit を入力し、「作成」をクリックします。

image

手順 4:DataKit のデプロイ

「Rancher」 - 「クラスター」 - 「アプリケーションマーケット」 - 「Charts」にログインし、「datakit」を選択します。下図のように DataKit のアイコンが表示されるので、クリックして入ります。

image

「インストール」をクリックします。

image

名前空間は「datakit」を選択し、「次へ」をクリックします。

image

「Datakit Configuration」をクリックし、<your-token> を Guance のトークンに置き換えます。今回はカスタムの container コレクター設定を使用するため、「Enable the default Inputs」の container のチェックを外します。

image

「Git Management Configurations」をクリックし、Git リポジトリ情報を設定します。下図の通りです。

  • 「Enable Use Git Management Configurations」をチェックします
  • 「The Git Hub Url」には dk-config の Git アドレス http://120.26.37.252/root/dk-config.git を入力し、Git のユーザー名 root とパスワード xxxxxx を http:// の後に追加します。
  • 「The Git Branch」にはブランチ main を入力します。

その後、「インストール」をクリックします。

注意:「Enable git SSH key」をチェックすると、SSH 方式で Git リポジトリから設定を取得します。

image

「Kube-State-Metrics」をクリックし、「Deployment KubeState Metrics Deployment」をチェックすると、kube-state-metrics コンポーネントがインストールされます。必要ない場合はチェックしなくても構いません。

image

「metrics-server」をクリックし、「Deployment kubeState Metrics Server Deployment」をチェックすると、metrics-server コンポーネントがインストールされます。必要ない場合はチェックしなくても構いません。

最後に「インストール」をクリックします。

image

手順 5:リソース制限

DataKit が使用する CPU とメモリを制限するために、Rancher を使用して DataKit のリソース使用量を制限できます。

「クラスター」 - 「ワークロード」 - 「DaemonSets」に移動し、datakit 行の右側にある「設定を編集」を選択します。設定画面で「リソース制限と予約」をクリックし、サーバーのリソースに基づいて適切に割り当て、「保存」をクリックします。

image

手順 6:メトリクス収集の確認

「Rancher」にログインし、右上のコマンドラインアイコンをクリックして、以下のコマンドを実行し datakit に入ります。
gitrepos ディレクトリに container.conf ファイルが存在すれば、Git リポジトリの設定を正常に取得できていることを示します。

 kubectl get pods -n datakit
 kubectl exec -it datakit-qc58m -n datakit bash
 cd gitrepos/
 ls

image

Guance」 - 「メトリクス」にログインし、「kubernetes」メジャーメントを選択します。メトリクスにデータが表示されていれば、メトリクス収集が正常に行われていることを示します。

image

手順 7:アップグレード

DataKit に新しいバージョンがある場合、Rancher UI でアップグレード可能なバージョンが表示されます。

Rancher「クラスター」 - 「アプリケーションマーケット」 - 「インストール済み Apps」に移動します。datakit 行の「アップグレード」列に、アップグレード可能なバージョン 1.4.6 が表示されるので、クリックしてアップグレード画面に移動します。

image

バージョン 1.4.6 を選択し、「次へ」をクリックします。

image

「アップグレード」をクリックします。

image

アップグレードが完了すると、DataKit のバージョンが 1.4.6 になっていることを確認できます。

image

フィードバック

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