LoginSignup
4

More than 3 years have passed since last update.

EKSの構築/設定をeksctl使ってyaml管理する

Posted at

TL;DR

スキーマ定義 見ながらyaml書いて下記を実行

eksctl create cluster -f <yaml file>

依存ツール

既にインストール済みの場合は無視

AWS CLI
こちらを参照

eksctl
こちらを参照

eksctlについて

VPC(Subnet)やNATゲートウェイ、NodeGroup(ASG)等を自動で作り簡単にEKS環境を整えられるツール。
作るだけでなく、クラスター(kubernates)のアップデートやスケーリングの調整等も行えます。

command vs yaml

eksctlはコマンド引数として設定値を渡す方法と、yamlに記載して渡す方法があります。
コマンド引数の方がお手軽ですが、現在の設定値の管理や更新に支障がでるので出来るだけyamlで管理しましょう。

command

eksctl create cluster \
  --name eks-sample \
  --version 1.14 \
  --region ap-northeast-1 \
  --zones ap-northeast-1a,ap-northeast-1c,ap-northeast-1d \
  --nodegroup-name eks-sample-node \
  --node-type m5.large \
  --nodes 3 \
  --nodes-min 3 \
  --nodes-max 4 \
  --alb-ingress-access \
  --asg-access

一回きりのその場で実行する場合は簡単に実行できます。
しかし、現在の状態がどのようになっているかも、コンソールからVPCやEKS、EC2の画面を見なければなりません。
また、新たにノードグループを増やしたい場合は別途commandが必要です。

yaml

cluster.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: eks-sample
  region: ap-northeast-1

# yamlならコメントも記載できます。
# MultiAZ
availabilityZones: ["ap-northeast-1a", "ap-northeast-1c", "ap-northeast-1d"]

nodeGroups:
  - name: eks-sample-node
    instanceType: m5.large
    # 3AZ保つための最低数
    desiredCapacity: 3
    minSize: 3
    maxSize: 10
    iam:
      withAddonPolicies:
        autoScaler: true
        albIngress: true
eksctl create cluster -f cluster.yaml

最初はyaml作成に時間が必要ですが、パラメータのコメントも記載でき、yamlを見るだけでどういう構成が把握できます。
しかし、コンソールから状態変更があった場合はyamlと差分が出るのでどう取り込むかという課題が新たに発生しますが・・・

新たにノードグループを増やしたい場合は既存のyamlに追記するだけです。

cluster.yaml
nodeGroups:
  - name: eks-sample-node
    .....

  # プライベートネットワークにノードグループを作成
  - name: eks-sample-private-node
    instanceType: m5.large
    desiredCapacity: 3
    minSize: 3
    maxSize: 10
    privateNetworking: true
eksctl create nodegroup --config-file=cluster.yaml --include='eks-sample-private-node'

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4