Skip to content

Latest commit

 

History

History
198 lines (136 loc) · 4.17 KB

containers.md

File metadata and controls

198 lines (136 loc) · 4.17 KB

Konténerek és Kubernetes (Docker & K8s)

Kubernetes cluster (EKS) létrehozása EKSCTL-el

EKSCTL Telepítése

https://github.com/weaveworks/eksctl

Előfeltételek az EKS létrehozásához

Parancssorban bejelentkezve a megfeleő AWS fiókba

Ceate EKS cluster

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)

Kapcsolódás EKS-hez

# 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

ECR - konténer tároló létrehozás

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

Policy, hogy az EKS hozzáférjen az ECR-hez

Jelenleg nem részletezem. :-)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "ecr:GetDownloadUrlForLayer",
        "ecr:BatchGetImage",
        "ecr:GetAuthorizationToken",
        "ecr:BatchCheckLayerAvailability"
      ],
      "Resource": "*"
    }
  ]
}

Alkalmazás telepítése EKS-re

  1. Létrehozunk egy névteret az EKS-en
kubectl create namespace node-demo
  1. 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
  1. Ellenőrizzük az eredményt
kubectl -n node-demo get deployment
kubectl -n node-demo get svc
  1. 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.

Egyéb EKS

Monitoring engedélyezése

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

Teljesítmény lekérdezések

# Node szerverek CPU és Memória használata
kubectl top nodes

# POD-ok CPU és Memória használata
kubectl top pods --all-namespaces

POD-ok lekérdezése egy névtérből

kubectl -n node-demo get pods

Skálázás

# 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

Minden erőforrás egy névtéren belül

kubectl -n node-demo get all

Névtér törlése (minden erőforrással együtt!)

kubectl delete ns node-demo

EKS node szerverek skálázása

# 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

EKS törlése

eksctl delete cluster --name aws-eks-demo

Kubernetes Dashboard

  1. Telepítés
export DASHBOARD_VERSION="v2.6.0"

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/${DASHBOARD_VERSION}/aio/deploy/recommended.yaml
  1. Proxy

Külön parancssorban, mert futni fog

kubectl proxy --port=8080 --address=0.0.0.0 --disable-filter=true &
  1. Dashboard kész

Böngészőben: http://localhost:8080/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

  1. Token beszerzése az EKS-ről:
aws eks get-token --cluster-name aws-eks-demo | jq -r '.status.token'