Amazon EKSもデプロイしてみた。
ちなみに、やはり構築は、MacかLinuxが便利。eksctlコマンドの補完が効く。
EKSでサポートするkubernates version
https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/kubernetes-versions.html
前提条件
aws v2コマンドのインストールと設定
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2.html
Awsコマンドで指定されているリージョンに作成される。
EKS用のIAMを作成
https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/service_IAM_role.html
バージョンにあったkubectlを準備
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
eksctl version
EKSの作成
#t3.medium 2vCPU 4GB RAM 0.0544 USD ¥5.98時間)で作成。普通の人は–zonesはいらない。私は必要だったorz…15分くらいかかる
eksctl create cluster \
–name prod \
–version 1.19 \
–nodegroup-name standard-workers \
–node-type t3.medium \
–nodes 3 \
–nodes-min 1 \
–nodes-max 4 \
–node-ami auto \
–zones ap-northeast-1b,ap-northeast-1c,ap-northeast-1d
クラスタの作成に失敗したら一度以下を実行してから再実行
eksctl delete cluster –region=ap-northeast-1 –name=prod
Kubeconfigの作成(できていた)
aws eks update-kubeconfig –name prod
メトリックサーバの作成
https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/metrics-server.html
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
ダッシュボードの作成
https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/dashboard-tutorial.html
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yaml
cat <<EOF | kubectl apply -f –
apiVersion: v1
kind: ServiceAccount
metadata:
name: eks-admin
namespace: kube-system
—
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: eks-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
– kind: ServiceAccount
name: eks-admin
namespace: kube-system
EOF
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk ‘{print $1}’)
ー>token: で表示されたものをメモ
ブラウザが使える自端末で
kubectl proxy
ブラウザで
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login
を開く。トークンをいれてログイン。
あまりにも手間でかかないが、dashboardをロードバランサーで使う、つまり一意のアドレスで利用することも可能だが、オレオレ証明書を練り込まなきゃならないので意外と手間がかかる。
結論からするとAKSと比べると備品?が少ないまぁ、単純に何かをデプロイしてテストで使うだけならmetric serverもダッシュボードも要らないのだが、自分で入れ込んでいく必要がある。ただし個別のマニュフェストに手を入れる必要がないのは楽。
クラスタの削除
以下で削除ができる。
eksctl delete cluster –region=ap-northeast-1 –name=prod