コンテンツにスキップ

EKS への DataKit デプロイ


概要

Amazon Elastic Kubernetes Service(Amazon EKS)は、Amazon が提供するマネージド Kubernetes サービスです。ユーザーは Kubernetes コントロールプレーンやノードのインストール、運用、保守を行うことなく、コンテナ化されたアプリケーションをデプロイできます。

EKS に DataKit をデプロイする方法は 2 つあります。

  • 1 つ目:kubectl を使用して datakit.yaml を実行する
  • 2 つ目:Helm をインストールし、Helm を使用して DataKit をデプロイする

このドキュメントでは、1 台の EC2 に kubectl と eksctl をデプロイして EKS クラスターに接続し、さらにその EC2 に Helm をインストールして、Helm を使用して DataKit をデプロイする方法を説明します。

前提条件

操作手順

Warning

このドキュメントの例で使用しているバージョン情報:DataKit 1.5.2、Kubernetes 1.24、kubectl v1.23.6、Helm v3.8.2

1. kubectl のインストール

次のコマンドを実行して kubectl をインストールします。

wget https://dl.k8s.io/release/v1.23.6/bin/linux/amd64/kubectl
chmod +x kubectl
mv kubectl /bin/kubectl

kubectl のバージョンを確認します。

kubectl version --client

image.png

2. EKS への接続

2.1 Amazon CLI の設定

この例では AMI イメージを使用しており、デフォルトで Amazon CLI がインストールされています。
非 Amazon CLI イメージを使用する場合は、インストールが必要です。Amazon CLI のインストール を参照してください。

image.png

EC2 にログインし、aws configure を入力し、プロンプトに従って AWS で EKS を作成したアカウントの Access Key IDAccess Keyregion を入力して設定します。Default output format は json と入力します。

image.png

2.2 eksctl のインストール

次のコマンドを実行して eksctl をインストールします。

curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
mv /tmp/eksctl /bin
chmod +x /bin/eksctl

eksctl のバージョンを確認します。

eksctl version

image.png

2.3 EKS クラスターの設定

AWS の EKS にアクセスし、クラスター名を確認します。

image.png

次のコマンドでクラスターを設定します。region は cn-northwest-1、name は EKS クラスター名です。

aws eks --region cn-northwest-1 update-kubeconfig --name eks_liuyujie

image.png

kubectl コマンドでクラスターの Pod を確認します。結果が返ってくれば、EKS への接続が成功しています。

image.png

3. Helm のインストール

EC2 にログインし、次のコマンドで Helm をインストールします。

wget wget https://get.helm.sh/helm-v3.8.2-linux-amd64.tar.gz
tar -zxvf helm-v3.8.2-linux-amd64.tar.gz
mv linux-amd64/helm /usr/bin/helm

Helm のバージョンを確認します。

helm version

image.png

4. DataKit のデプロイ

4.1 Token の取得

Guance」にログインし、「管理」-「設定」から Token を確認し、右側のコピーアイコンをクリックします。Token は次の手順で使用します。

image.png

4.2 Helm リポジトリの追加

Helm を使用して DataKit をデプロイするには、まず DataKit の Helm リポジトリを追加します。

helm repo add datakit https://pubrepo.guance.com/chartrepo/datakit
helm repo update

リポジトリが正常に追加されたか確認します。

helm repo list

image.png

4.3 DataKit の設定

リポジトリから DataKit パッケージをダウンロードして解凍し、設定を追加しやすくします。

helm pull datakit/datakit --untar
cd datakit

values.yaml ファイルを編集し、取得した Token を下図の dataway_url の赤枠の位置に貼り付けます。
global_tags に cluster_name_k8s=k8s-aws を追加します。これは非選出系のメトリクス収集にグローバルタグ cluster_name_k8s を追加するためです。

vim values.yaml

image.png

環境変数 ENV_NAMESPACE の値を k8s-aws に設定します。デフォルトで DataKit の選出が有効になっており、ワークスペース + このネームスペースでは 1 つの DataKit のみが選出系のメトリクスを収集するため、重複収集を防ぎます。
さらに環境変数 ENV_GLOBAL_ELECTION_TAGS を追加します。これは選出系メトリクスにグローバルタグ cluster_name_k8s を追加するためです。

image.png

注意: 上記の 3 箇所の k8s-aws は別の文字列に変更可能ですが、異なるクラスター間で同じ値にしないでください。

コレクターを有効にする必要がある場合は、dfconfig の下に設定を追加します。コメントアウトされている部分は MySQL コレクターを有効にする例です。

image.png

4.4 DataKit のインストール

次のコマンドを実行して DataKit をデプロイします。datakit 名前空間が既に存在する場合は、後の --create-namespace は省略可能です。

helm install datakit . -n datakit  -f values.yaml --create-namespace

image.png

デプロイが成功したら、Guance「ワークスペース」にログインし、「メトリクス」-「メトリクス管理」で kube で始まるメトリクスを確認します。グローバルタグ cluster_name_k8s が存在していることを確認できます。

image.png

4.5 DataKit の更新

helm upgrade datakit . -n datakit -f values.yaml

4.6 DataKit のアンインストール

helm uninstall datakit -n datakit

フィードバック

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