eksctl
eksctl
は、Amazon EKS クラスターを簡単に作成、管理するためのコマンドラインツールです。
eksctl の概要は次のとおりです。
- Amazon EKS クラスターを簡単に作成、管理、削除できるツール
- YAML ファイルを使用して、クラスタ設定を宣言的に管理可能
- EKS クラスターに関する操作を自動化し、手動操作のミスを減らす
- eksctl公式ドキュメント
eksctl のインストール
asdf を使って eksctl をインストールしてください。
asdf コマンドがインストールされていない方は、asdf の資料 を見ながらインストールしてください。
asdf plugin add eksctl
asdf install eksctl latest
asdf set --home eksctl latest
eksctl
コマンドを利用できるかチェックしてみましょう
eksctl version
eksctl の基本操作
クラスターの作成
以下のコマンドで、EKS クラスターを簡単に作成できます。
eksctl create cluster --name=<cluster-name> --region=<region>
クラスターの削除
不要になったクラスターを削除します。
eksctl delete cluster --name=<cluster-name> --region=<region>
クラスターの情報確認
作成したクラスターの詳細情報を表示します。
eksctl get cluster --name=<cluster-name> --region=<region>
ノードグループの作成
既存のクラスターにノードグループを追加します。
eksctl create nodegroup --cluster=<cluster-name> --region=<region> --name=<nodegroup-name>
ノードグループの削除
特定のノードグループを削除します。
eksctl delete nodegroup --cluster=<cluster-name> --region=<region> --name=<nodegroup-name>
クラスター構成の設定ファイルを使用したクラスター作成
YAML 形式の設定ファイルを用いてクラスターを作成します。
クラスター設定ファイルの例
以下は、クラスターを作成するためのYAMLファイルの例です。
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: my-cluster
region: ap-northeast-1
managedNodeGroups:
- name: ng-1
instanceType: t3.medium
desiredCapacity: 2
クラスターの作成コマンド
以下のコマンドで、上記の設定ファイルを使用してクラスターを作成します。
eksctl create cluster -f <your-cluster-config>.yaml
クラスターのアップデート
既存のクラスターをアップデートします。
eksctl upgrade cluster --name=<cluster-name> --region=<region>
IAM Role のアタッチ
EKS クラスターに IAM Role をアタッチします。
eksctl utils associate-iam-oidc-provider --cluster=<cluster-name> --region=<region> --approve
IRSA (IAM Roles for Service Accounts) のための ServiceAccount 作成
IRSA を使用して Kubernetes のサービスアカウントに IAM ロールをアタッチする方法です。
サービスアカウントを作成するための設定ファイルの例
以下は、IRSA のためのサービスアカウントを作成する YAML ファイルの例です。
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: my-cluster
region: ap-northeast-1
iam:
withOIDC: true
serviceAccounts:
- metadata:
name: my-serviceaccount
namespace: default
attachPolicyARNs:
- arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
サービスアカウントの作成コマンド
以下のコマンドで、上記の設定ファイルを使用してサービスアカウントを作成します。
eksctl create iamserviceaccount -f <your-cluster-config>.yaml --approve
このサービスアカウントは、default
ネームスペース内に作成され、AmazonS3ReadOnlyAccess
のIAMポリシーがアタッチされます。