AWS Container

AWSのKubernetes環境(EKS)をコマンド一発で作る


Amazon Elastic Container Service for Kubernetes(EKS)がGAになって半年ちょっとが経ち、ようやく重い腰を上げて作ってみました。

ただドキュメント(Getting Started with Amazon EKS)がなかなか読みにくく、長いのでCloudformationやAWS CLIを使ってコマンド一発で自動で起動できるようにしてみました。

前提

必要なツール

kubectl
AWS CLI
やる気

環境

macOS

ソースコード

ソースコードはgithubにあげています。
https://github.com/monkeydaichan/eks-sample
os1maさんのソースをforkする形で利用させてもらってます。

やっていく

EKSは限られたリージョンでしか構築できません。今回はオレゴン(us-west-2)に構築しました。
それではEKSを作っていきましょう。

EKSの起動

eks-start.shを実行すると、env/env.shで環境変数を設定してEKSが作られていきます。
作られるリソースの名前を変更したい場合はここを変更してください。

シェルを実行して20分ぐらいでEKSの構築が終わります。

EKSの構築が終わったら下記のコマンドでKUBECONFIGを設定します。
変数EKS_KUBE_CONFIG_FILEはenv/env.shでセットしている内容に読み替えてください。

KUBECONFIGのセットが終わったら、nodeの情報が取れます。

ダッシュボードにアクセス

コマンドだけじゃ嫌よ。というかたはダッシュボードをデプロイしてください。

tokenとURLが表示されます。
URLにアクセスしてtokenを入力するとダッシュボードにログインできます。

サンプルアプリケーション

AWSがサンプルアプリケーションを公開しているので、それをデプロイします。

これで自動でロードバランサーが作成されます。
ロードバランサーのドメインはダッシュボードから確認してください。

http://ドメイン:3000にアクセスするとサンプルアプリケーションが表示されます。

サンプルアプリケーションの削除は下記コマンドでできます。

EKSの権限

EKSのフル権限は作成したIAMユーザに付与されます。
クラスターのユーザーまたは IAM ロールの管理 - Amazon EKS
他のIAMユーザにもフル権限を付与したい場合は次のようにします。
env/env.shの中身をすべてコピーしてターミナルに貼り付け。

prepare/config/configmap.ymlファイルの<ARN of the IAM user you want to add>を追加したいIAMユーザのARNに変更、 <Any name>は任意の名前に変更します。
このymlファイルをEKSにデプロイすることで、権限の付与ができます。

EKSの削除

作ったEKSを削除したい場合もコマンド一発です。

ハマったところ

IAMユーザの追加のところで非常にハマりました。。。
ドキュメント読むの大事やんねー。。。

-AWS, Container
-,

Translate »