新しいクラスターを作った時に必要なのでメモ。
kubectl を当然先に入れておく。今回はバージョン指定で 1.26.9 を使う。
その他のバージョンは リリースノート で確認。
curl -LO https://dl.k8s.io/release/v1.26.9/bin/linux/amd64/kubectl chmod +x kubectl sudo mv kubectl /usr/local/bin/
eksctl
eksctl も使うのでインストールしとく。
ARCH=amd64 PLATFORM=$(uname -s)_$ARCH curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz" tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz sudo mv /tmp/eksctl /usr/local/bin
eksctl で EKS cluster + node group を作る
yaml ファイルを作って、 eksctl コマンドで作成
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: oreno-eks-001
region: ap-northeast-1
version: "1.26"
vpc:
subnets:
public:
ap-northeast-1a: { id: subnet-1234 }
ap-northeast-1c: { id: subnet-5678 }
nodeGroups:
- name: oreno-ng-001
instanceType: t3.medium
desiredCapacity: 1
minSize: 0
maxSize: 3
privateNetworking: true
iam:
withAddonPolicies:
autoScaler: true
externalDNS: true
volumeSize: 20
ssh:
allow: false
これを cluster-config.yaml という名前で保存して、 eksctl を実行
eksctl create cluster -f cluster-config.yaml
作成できたら ./kube/config を作る
aws eks update-kubeconfig --region ap-northeast-1 --name my-cluster-name
テスト。Serviceの状況を確認。
kubectl get svc kubectl get nodes
security group は、使うポートや用途に合わせて任意で編集する。
作った EKS clusters + node group は Cloud Formation にスタックとして登録されるので、用が済んだらスタックごと消す。