EKSデプロイ

投稿者: | 5月 12, 2021

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

コメントを残す