eksctlを使用したEKSクラスタの作成(1.15 ver)


本稿の作成日は2020年7月14日であり,現在の生成方法とは異なる可能性がある.

概要


eksctlは、Amazon EKSでKubernetsクラスタを作成および管理するコマンドラインユーティリティです.このドキュメントでは、eksctlを実行する環境を構成する方法と、クラスタとノードグループを作成する方法について説明します.

プリコンフィギュレーション


IAMユーザーの作成


EKSクラスタを作成するIAMユーザーを作成します.
  • アクセスタイプ:プログラミングアクセス
  • 接続ポリシー:管理者アクセス
  • ユーザーが作成すると、アクセスキーとキーが保存されます.

    AWS CLIの更新と認証情報の構成


    Kubectlを使用してEKSクラスタにアクセスするには、AWS CLIをバージョン1.18.17以降に更新します.
    AWS CLIを最新バージョンに更新するには、次のコマンドを使用します.
    $ pip install awscli --upgrade --user
    上記で生成したIAMユーザの認証情報を構成する.
    $ aws configure

    eksctlのインストール


    eksctlをインストールします.
    $ curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl$(uname -s)_amd64.tar.gz" | tar xz -C .tmp
    $ sudo mv /tmp/eksctl /usr/local/bin
    aws-iam-authenticatorをインストールし、Kubernetesクラスタの認証を行います.
    $ curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.16.8/2020-04-16/bin/linux/amd64/aws-iam-authenticator
    $ chmod +x ./aws-iam-authenticator
    $ mkdir -p $HOME/bin && cp ./aws-iam-authenticator $HOME/bin/aws-iam-authenticator && export PATH=$PATH:$HOME/bin
    $ echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrd
    $ aws-iam-authenticator help
    kubectlを設定します.
    $ curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt` /bin/linux/amd63/kubectl
    $ chmod +x ./kubectl
    $ sudo mv ./kubectl /usr/local/bin/kubectl
    $ kubectl version --client

    EKSクラスタとノードグループの作成


    EKSクラスタを作成するためのプロファイルを作成します.
    次のプロファイルは、既存の構成VPC内にEKSクラスタを作成し、ノードが2つのノードグループを作成します.
    その他の設定については、次のリンクを参照してください.
    https://eksctl.io/usage/creating-and-managing-clusters
    apiVersion: eksctl.io/v1alpha5
    kind: ClusterConfig
    
    metadata:
      name: eks-an2-cnl-birdbox-0
      region: ap-northeast-2
      
    vpc:
      subnets:
        private:
          ap-northeast-2a: {id: [subnet-id]}
          ap-northeast-2b: {id: [subnet-id]}
    
    nodeGroups:
      - name: ng-1-workers
        labels: {role: worker}
        instanceType: t2.micro
        desiredCapacity: 2
        privateNetworking: true
        ssh:
          allow:true
    eksctl clateクラスタコマンドを使用して、作成したプロファイルに基づいてクラスタを作成します.
    $ eksctl create cluster -f cluster.yaml
    kubectlコマンドを使用して生成されたノードを表示できます.
    $ kubectl get nodes