メインコンテンツまでスキップ

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ポリシーがアタッチされます。

参考リンク