https://github.com/weaveworks/eksctl
Parancssorban bejelentkezve a megfeleő AWS fiókba
eksctl create cluster \
--name aws-eks-demo \
--version 1.27 \
--region eu-central-1 \
--nodegroup-name primary-nodes \
--node-type t3a.xlarge \
--nodes 2
Megjegyzés: Ez egy hosszú folyamat (kb. 15-20 perc)
# Helyi konfiguráció frissítése
aws eks --region eu-central-1 update-kubeconfig --name aws-eks-demo
# EKS node-ok lekérdezése
kubectl get nodes --kubeconfig ~/.kube/config
Parancssorban futtasuk le a parancsot a megfeleő beálításokkal.
- Név:
docker-projekt
- Régió:
eu-central-1
aws ecr create-repository \
--repository-name docker-projekt \
--region eu-central-1
Jelenleg nem részletezem. :-)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability"
],
"Resource": "*"
}
]
}
- Létrehozunk egy névteret az EKS-en
kubectl create namespace node-demo
- Létrehozzuk az alkalmazást és a hozzá tartozó erőforrásokat EKS-en belül
kubectl apply -f https://raw.githubusercontent.com/cloudsteak/trn-aws-common/main/eks-node-demo.yaml
- Ellenőrizzük az eredményt
kubectl -n node-demo get deployment
kubectl -n node-demo get svc
- Nézzük mit látunk a böngészőnkben
Másoljuk ki az EXTERNAL-IP
értékét a. második parancs eredményéből. Majd másoljuk be egy új böngésző fülre az alábbi módon: http://<EXTERNAL-IP>
Megjegyzés: Ha nem elérhető az alkalmazás, akkor keressük meg a Cluster security group
-ot és adjuk hozzá azt a szabályt, ami beengedi a megfelelő portokat a 0.0.0.0/0
tartományból.
Ha a következő hibaüzenetet kapjuk: error: Metrics API not available
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
# Node szerverek CPU és Memória használata
kubectl top nodes
# POD-ok CPU és Memória használata
kubectl top pods --all-namespaces
kubectl -n node-demo get pods
# Több POD manuálisan
kubectl -n node-demo scale --replicas=5 deployment node-demo
# Kevesebb POD manuálisan
kubectl -n node-demo scale --replicas=1 deployment node-demo
kubectl -n node-demo get all
kubectl delete ns node-demo
# Node group-ok lekérdezése
eksctl get nodegroup --cluster=aws-eks-demo
# Node-ok számának növelése
eksctl scale nodegroup --cluster=aws-eks-demo --nodes=3 --name=primary-nodes --nodes-min=1 --nodes-max=5 --wait
# Node-ok számának csökkentése
eksctl scale nodegroup --cluster=aws-eks-demo --nodes=1 --name=primary-nodes --nodes-min=1 --nodes-max=5 --wait
eksctl delete cluster --name aws-eks-demo
- Telepítés
export DASHBOARD_VERSION="v2.6.0"
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/${DASHBOARD_VERSION}/aio/deploy/recommended.yaml
- Proxy
Külön parancssorban, mert futni fog
kubectl proxy --port=8080 --address=0.0.0.0 --disable-filter=true &
- Dashboard kész
Böngészőben: http://localhost:8080/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
- Token beszerzése az EKS-ről:
aws eks get-token --cluster-name aws-eks-demo | jq -r '.status.token'