AWS EKS で kubectl を使う

 
新しいクラスターを作った時に必要なのでメモ。

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/

そして ./kube/config を作る

aws eks update-kubeconfig --region ap-northeast-1 --name my-cluster-name

テスト。Serviceの状況を確認。

kubectl get svc

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

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

作成出来たら kubectl で確認

kubectl get nodes

security group は、使うポートや用途に合わせて任意で編集する。

作った EKS clusters + node group は Cloud Formation にスタックとして登録されるので、用が済んだらスタックごと消す。