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 をデプロイする方法を説明します。
前提条件¶
- あらかじめGuance アカウントを作成しておく必要があります。
- あらかじめAWS アカウントを作成しておく必要があります。
- EKS クラスターを作成済みであること
- 1 台の EC2(Amazon Linux 2 AMI イメージ)
操作手順¶
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 のバージョンを確認します。
2. EKS への接続¶
2.1 Amazon CLI の設定¶
この例では AMI イメージを使用しており、デフォルトで Amazon CLI がインストールされています。
非 Amazon CLI イメージを使用する場合は、インストールが必要です。Amazon CLI のインストール を参照してください。
EC2 にログインし、aws configure を入力し、プロンプトに従って AWS で EKS を作成したアカウントの Access Key ID、Access Key、region を入力して設定します。Default output format は json と入力します。
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 のバージョンを確認します。
2.3 EKS クラスターの設定¶
AWS の EKS にアクセスし、クラスター名を確認します。
次のコマンドでクラスターを設定します。region は cn-northwest-1、name は EKS クラスター名です。
kubectl コマンドでクラスターの Pod を確認します。結果が返ってくれば、EKS への接続が成功しています。
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 のバージョンを確認します。
4. DataKit のデプロイ¶
4.1 Token の取得¶
「Guance」にログインし、「管理」-「設定」から Token を確認し、右側のコピーアイコンをクリックします。Token は次の手順で使用します。
4.2 Helm リポジトリの追加¶
Helm を使用して DataKit をデプロイするには、まず DataKit の Helm リポジトリを追加します。
リポジトリが正常に追加されたか確認します。
4.3 DataKit の設定¶
リポジトリから DataKit パッケージをダウンロードして解凍し、設定を追加しやすくします。
values.yaml ファイルを編集し、取得した Token を下図の dataway_url の赤枠の位置に貼り付けます。
global_tags に cluster_name_k8s=k8s-aws を追加します。これは非選出系のメトリクス収集にグローバルタグ cluster_name_k8s を追加するためです。
環境変数 ENV_NAMESPACE の値を k8s-aws に設定します。デフォルトで DataKit の選出が有効になっており、ワークスペース + このネームスペースでは 1 つの DataKit のみが選出系のメトリクスを収集するため、重複収集を防ぎます。
さらに環境変数 ENV_GLOBAL_ELECTION_TAGS を追加します。これは選出系メトリクスにグローバルタグ cluster_name_k8s を追加するためです。
注意: 上記の 3 箇所の k8s-aws は別の文字列に変更可能ですが、異なるクラスター間で同じ値にしないでください。
コレクターを有効にする必要がある場合は、dfconfig の下に設定を追加します。コメントアウトされている部分は MySQL コレクターを有効にする例です。
4.4 DataKit のインストール¶
次のコマンドを実行して DataKit をデプロイします。datakit 名前空間が既に存在する場合は、後の --create-namespace は省略可能です。
デプロイが成功したら、Guance「ワークスペース」にログインし、「メトリクス」-「メトリクス管理」で kube で始まるメトリクスを確認します。グローバルタグ cluster_name_k8s が存在していることを確認できます。














