07
4. Modul: Konténerek és az Azure Kubernetes Service (AKS)
Elmélet: Ebben a modulban a Kubernetes Azure-specifikus megvalósítását vizsgáljuk meg. Mivel a K8s alapjaival tisztában vagy, itt az architekturális integrációra fókuszálunk. Létrehozunk egy privát konténertárolót (ACR), majd felhúzunk egy K8s clustert (AKS).
A legfontosabb fejlesztői és üzemeltetői előny, amit itt beállítunk, a Managed Identity (Kezelt Identitás). Ennek segítségével az AKS clusterünk dedikált jogosultságot (RBAC) kap az ACR-hez, így a deployment.yaml fájljaidban soha nem kell "Image Pull Secret"-eket (jelszavakat) tárolnod; a két szolgáltatás natívan, az Azure Entra ID-n keresztül azonosítja egymást.
4. Modul / 1. lépés: Azure Container Registry (ACR) létrehozása
Kezdjük a privát "kikötővel", ahová a Docker image-eid érkeznének.
- Az Azure Portal felső keresősávjába írd be: Container registries, és kattints a megjelenő ikonra.
- Kattints a bal felső sarokban a + Create gombra.
- A Basics (Alapok) fülön végezd el a következő beállításokat:
- Subscription: A te ingyenes előfizetésed.
- Resource group: Válaszd a meglévő
rg-azure-trainingcsoportot. - Registry name: Adj meg egy globálisan egyedi nevet, kizárólag kisbetűkkel és számokkal (pl.
acrtraining[neved][szam]). - Location: Válaszd a North Europe régiót (vagy amit a web appnál is használtál).
- SKU: Válaszd a Basic csomagot! (Ez a legköltséghatékonyabb, tesztelésre és tanulásra tökéletes).
- Kattints a kék Review + create gombra az alján.
- A sikeres validáció (zöld pipa) után kattints a Create gombra. (Ez a folyamat általában kevesebb mint egy percet vesz igénybe).
4. Modul / 2. lépés: Az AKS Cluster létrehozása költséghatékonyan
Amint az ACR elkészült, felhúzzuk a K8s clustert, szigorúan figyelve a 200 dolláros kredit védelmére.
- A felső keresőbe írd be: Kubernetes services, és kattints rá.
- Kattints a + Create gombra, majd válaszd a Create a Kubernetes cluster opciót.
- A Basics (Alapok) fülön állítsd be a következőket:
- Resource group:
rg-azure-training - Cluster preset configuration: Válaszd a Dev/Test opciót.
- Kubernetes cluster name: Legyen például
aks-training-cluster. - Region: Használd ugyanazt, mint az ACR-nél (North Europe).
- Pricing tier: Ez kritikus pont! Válaszd a Free (Ingyenes) opciót, így a K8s Control Plane-ért nem kell fizetned.
- Kattints alul a Next: Node pools > gombra.
- A Node pools (Worker gépek) fülön minimalizáljuk a hardverköltségeket:
- A listában kattints magára az agentpool névre a szerkesztéshez.
- A felugró panelen a Node size (Gép mérete) résznél kattints a Choose a size hivatkozásra. Válaszd ki a Standard_B2s vagy Standard_B2pls_v2 méretet (ezek nagyon olcsó virtuális gépek - ha az nincs ez is jó: Standard DS2 v2 úgyis törölni fogjuk a clustert a tutorial végén).
- A Scale method legyen Manual.
- A Node count (Gépek száma) csúszkát húzd le pontosan 1-re.
- Kattints az Update gombra a panel alján.
- A Next: Access > és a Next: Networking > füleken kattints egyszerűen tovább, az alapértelmezett beállítások megfelelőek lesznek.
- A Next: Integrations > fülön állítjuk be a natív kapcsolatot:
- Keresd meg a Container registry mezőt.
- A legördülő listából válaszd ki az imént létrehozott ACR-edet (pl.
acrtraining...). - Kattints a kék Review + create gombra.
- A validáció lefutása után kattints a Create gombra.
Megjegyzés: Az AKS cluster teljes felépítése (a virtuális gép provizionálásával és a hálózati beállításokkal együtt) 5-10 percet is igénybe vehet.
Teljesen jogos a kritika, és elnézést kérek! Túl akartam magyarázni a dolgot ahelyett, hogy egyszerűen tartottam volna magam az eredeti, tiszta struktúrához. Kicsit elragadott a hév.
Visszatérünk az eredeti formátumhoz. Íme a korábbi szöveg, pontosan kiegészítve azokkal a valós lépésekkel és menüpontokkal, amiket a csatlakozás során te magad is megtapasztaltál:
4. Modul / 3. lépés: Az AKS és az ACR összekapcsolásának ellenőrzése és csatlakozás
Amíg a cluster épül (vagy ha már kész), nézzük meg, mit is csináltunk fejlesztői szemmel. A lényeg az integráció.
Mivel az Integrations fülön kiválasztottad az ACR-t, az Azure a háttérben elvégezte az alábbi "piszkos munkát" helyetted:
- Létrehozott egy Managed Identity-t (egyfajta gépi felhasználót) az AKS számára.
- Az IAM (Identity and Access Management) rendszerben kiosztotta ennek az identitásnak az AcrPull szerepkört az ACR tárolódon.
- Beállította a Kubelet-et a Worker Node-on, hogy ismerje ezt az identitást.
Miért jó ez neked, mint fejlesztőnek? Hagyományos Kubernetesben (pl. on-prem vagy más felhőben) így nézne ki egy image lehúzása: 1. Létrehozol egy Docker jelszót (Secret). 2. kubectl create secret docker-registry... parancsot futtatsz. 3. Minden egyes deployment.yaml fájlba beleírod: imagePullSecrets: - my-registry-key.
Azure-ban az integráció után: Csak megadod az image nevét: acrtraining.azurecr.io/myapp:v1, és az AKS mindenféle extra beállítás nélkül le tudja húzni, mert "felismeri" a saját ACR-jét.
Hogyan tovább? (A csatlakozás folyamata)
Amint az AKS állapota Succeeded (Sikeres), be kell lépnünk a clusterbe, hogy használni tudjuk:
- Menj be az AKS erőforrásba a Portalon (alapértelmezés szerint az Overview fülön fogsz landolni).
- A felső menüsorban kattints a Connect gombra, ami megnyitja a Connect overview panelt.
- A felkínált lehetőségek közül válaszd a Cloud Shell opciót (és azon belül a Bash-t).
- Mivel először indítod el a Cloud Shellt, a rendszer kérni fog egy tárhelyet a beállításaid elmentéséhez. A varázslóban így járj el:
- Válaszd a Mount storage account opciót.
- A Subscription legördülőből válaszd ki a saját (ingyenes) előfizetésedet.
- A Use an existing private network jelölőnégyzetet hagyd üresen.
- A következő képernyőn válaszd a We will create a storage account for you opciót, és kattints a létrehozásra.
- Amint a terminálablak betölt és megjelenik a villogó kurzor, a hitelesítéshez futtasd le a Connect panelen is látható két parancsot:
- Először:
az account set --subscription [a-te-subscription-id-d] - Másodszor:
az aks get-credentials --resource-group rg-azure-training --name aks-training-cluster(Ez a parancs tölti le a kapcsolatot biztosító kubeconfig fájlt).
- Először:
- Végül ellenőrizd a kapcsolatot a Kubernetes alap parancsával:
kubectl get nodes- Ha a listában megjelenik a Node-od (pl.
aks-agentpool-...) és a státusza Ready, akkor sikeresen csatlakoztál az AKS clusteredhez!