LoginSignup
3
0

More than 1 year has passed since last update.

AWS EKSをコマンドから構築

Posted at

はじめに

AWS EKSをWebコンソールから構築することも出来ますが、毎回毎回画面で設定値を入力するのは少々手間です。
eksctlでコマンドから構築できるようなので試してみます。

目的

Webコンソールは使用せず、eksctlのみでAWS EKSのクラスタを構築する。

前提

コンテナでaws cliが利用可能な環境が整っていること

AWS CLIをコンテナから使えるようにする

AWS EKSの構築(クラスタの作成)

$ eksctl create cluster --name クラスタ名 --region us-west-1 --node-type t2.micro --nodes 2 --nodes-min 2 --nodes-max 2

AWS EKSの情報を確認してみる

namespace情報の参照

# kubectl get namespace

pod情報の参照

# kubectl get pod
NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.100.0.1   <none>        443/TCP   177m

すでにクラスタが構築されている場合

すでにクラスタが構築されている状態でAWS CLIが実行可能なコンテナを起動させた場合、aws configureのあとに以下のコマンドを実行することでeksctlやkubectlが利用可能になります。

$ aws eks --region us-west-1 update-kubeconfig --name クラスタ名

他のIAMにもアクセス権を与える

  • クラスタ情報を確認
# eksctl get iamidentitymapping --region us-west-1 --cluster クラスタ名
2021-03-03 08:16:45 [ℹ]  eksctl version 0.39.0
2021-03-03 08:16:45 [ℹ]  using region us-west-1
ARN                                             USERNAME        GROUPS
arn:aws:iam::xxxxxxxx:role/xxxxxxxx system:node:{{EC2PrivateDNSName}}   system:bootstrappers,system:nodes
  • クラスタ名、IAMユーザ名を変更して実行
# eksctl create iamidentitymapping --region us-west-1 --cluster クラスタ名 --arn arn:aws:iam::xxxxxxxx:user/権限を付与したいIAM --group system:masters --username 権限を付与したいIAM

クラスタの削除

# eksctl delete clister —name クラスタ名

おわりに

今回はお手軽にデフォルト、最小、最大ノード数を2とし、使用するEC2インスタンスも最小のt2.microで構築しました。
このあたりの構成は規模に応じて変更すれば良いと思います。
eksctlを使用すると、VPCやサブネットも含め構築されますので、使用するリージョンにVPCを登録できるだけの空きが無いとエラーになります。
また、今回は有志含め2名で検証していたのですが、私が作成したクラスターへアクセスできず困りました。
アクセス権を与えることで有志も私と同様にコマンドを実行できるようになりました。
さらにこのあと、有志はAnsibleを使い、EKSクラスタにPodを自動でプロイする検証を進めてくれました。
とても簡単なサンプルではありますが、応用すればいろいろな環境を自動デプロイできるのではないでしょうか。

3
0
0

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
3
0