eksctl
eksctl
は、Amazon EKS クラスターを簡単に作成、管理するためのコマンドラインツールです。
eksctl の概要は次のとおりです。
- Amazon EKS クラスターを簡単に作成、管理、削除できるツール
- YAML ファイルを使用して、クラスタ設定を宣言的に管理可能
- EKS クラスターに関する操作を自動化し、手動操作のミスを減らす
- eksctl公式ドキュメント
eksctl のインストール
asdf を使って eksctl をインストールしてください。
asdf コマンドがインストールされていない方は、asdf の資料 を見ながらインストールしてください。
asdf plugin add eksctl
asdf install eksctl latest
asdf global 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ポリシーがアタッチされます。