Rendelkezésre állási zónákat használó Azure Kubernetes Service-fürt létrehozása
Ez a cikk bemutatja, hogyan hozhat létre AKS-fürtöt, és hogyan oszthatja el a csomópont-összetevőket a rendelkezésre állási zónák között.
Mielőtt elkezdené
- Telepítenie és konfigurálnia kell az Azure CLI 2.0.76-os vagy újabb verzióját. A verzió azonosításához futtassa a következőt:
az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése. - Az AKS rendelkezésre állási zónáinak áttekintésével megismerheti a rendelkezésre állási zónák AKS-ben való használatának előnyeit és korlátait.
Azure Resource Manager-sablonok és rendelkezésre állási zónák
A rendelkezésre állási zónákkal rendelkező AKS-fürtök Azure Resource Manager-sablonnal történő létrehozásakor tartsa szem előtt az alábbi részleteket:
- Ha például egy sablonban explicit módon definiál null értéket, a sablon úgy kezeli a tulajdonságot,
"availabilityZones": null
mintha nem létezne. Ez azt jelenti, hogy a fürt nem egy rendelkezésre állási zónában van üzembe helyezve. - Ha nem veszi fel a tulajdonságot
"availabilityZones":
a sablonba, a fürt nem telepít rendelkezésre állási zónában. - Meglévő fürtön nem frissítheti a rendelkezésre állási zónák beállításait, mivel az AKS-fürtök Azure Resource Manager-sablonokkal való frissítésekor más a viselkedés. Ha a sablonban kifejezetten null értéket állít be a rendelkezésre állási zónákhoz, és frissíti a fürtöt, az nem frissíti a fürtöt a rendelkezésre állási zónákhoz. Ha azonban kihagyja a rendelkezésre állási zónák tulajdonságot olyan szintaxissal, mint például
"availabilityZones": []
, az üzembe helyezés megpróbálja letiltani a rendelkezésre állási zónákat a meglévő AKS-fürtön, és sikertelen lesz.
AKS-fürt létrehozása rendelkezésre állási zónák között
Amikor a az aks create
parancs használatával hoz létre fürtöt, a --zones
paraméter megadja az ügynökcsomópontok üzembe helyezéséhez szükséges rendelkezésre állási zónákat. A felügyelt vezérlősík-összetevők által üzembe helyezett rendelkezésre állási zónákat ez a paraméter nem szabályozza. A fürt üzembe helyezése során a rendszer automatikusan elosztja őket a régió összes rendelkezésre állási zónájában (ha van ilyen).
Az alábbi példaparancsok azt mutatják be, hogyan hozhat létre erőforráscsoportot és AKS-fürtöt összesen három csomóponttal. Egy ügynökcsomópont az 1. zónában, egy a 2., majd egy a 3. zónában.
Hozzon létre egy erőforráscsoportot a
az group create
paranccsal.az group create --name $RESOURCE_GROUP --location $LOCATION
Hozzon létre egy AKS-fürtöt a
az aks create
paraméterrel rendelkező--zones
paranccsal.az aks create \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --generate-ssh-keys \ --vm-set-type VirtualMachineScaleSets \ --load-balancer-sku standard \ --node-count 3 \ --zones 1 2 3
Az AKS-fürt létrehozása eltarthat néhány percig.
Amikor eldönti, hogy egy új csomópont melyik zónához tartozik, egy adott AKS-csomópontkészlet az alapul szolgáló Azure-beli virtuálisgép-méretezési csoportok által kínált legjobb munkamennyiség-zónaelosztást használja. Az AKS-csomópontkészlet akkor "kiegyensúlyozott", ha minden zónában azonos számú virtuális gép vagy +- egy virtuális gép található a méretezési csoport összes többi zónájában.
Csomópontok zónák közötti elosztásának ellenőrzése
Ha a fürt készen áll, adja meg, hogy milyen rendelkezésre állási zónában vannak az ügynökcsomópontok a méretezési csoportban.
Az AKS-fürt hitelesítő adatainak lekérése a
az aks get-credentials
következő paranccsal:az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
A parancs használatával
kubectl describe
listázhatja a fürt csomópontjait, és szűrheti aztopology.kubernetes.io/zone
értéket.kubectl describe nodes | grep -e "Name:" -e "topology.kubernetes.io/zone"
Az alábbi példakimenet a megadott régióban és rendelkezésre állási zónákban elosztott három csomópontot mutatja be, például az első rendelkezésre állási zóna eastus2-1-ét , a második rendelkezésre állási zónához pedig eastus2-2-t :
Name: aks-nodepool1-28993262-vmss000000 topology.kubernetes.io/zone=eastus2-1 Name: aks-nodepool1-28993262-vmss000001 topology.kubernetes.io/zone=eastus2-2 Name: aks-nodepool1-28993262-vmss000002 topology.kubernetes.io/zone=eastus2-3
Amikor további csomópontokat ad hozzá egy ügynökkészlethez, az Azure platform automatikusan elosztja a mögöttes virtuális gépeket a megadott rendelkezésre állási zónák között.
A Kubernetes 1.17.0-s és újabb verzióival az AKS a topology.kubernetes.io/zone
címkét és az elavultat failure-domain.beta.kubernetes.io/zone
használja. Ugyanazt az eredményt kapja, ha az előző példában futtatja a kubectl describe nodes
parancsot a következő paranccsal:
kubectl get nodes -o custom-columns=NAME:'{.metadata.name}',REGION:'{.metadata.labels.topology\.kubernetes\.io/region}',ZONE:'{metadata.labels.topology\.kubernetes\.io/zone}'
Az alábbi példa részletesebben is hasonlít a kimenetre:
NAME REGION ZONE
aks-nodepool1-34917322-vmss000000 eastus eastus-1
aks-nodepool1-34917322-vmss000001 eastus eastus-2
aks-nodepool1-34917322-vmss000002 eastus eastus-3
Podok zónák közötti eloszlásának ellenőrzése
A jól ismert címkékben, széljegyzetekben és taintekben dokumentált Kubernetes a topology.kubernetes.io/zone
címkével automatikusan elosztja a podokat egy replikációs vezérlőben vagy szolgáltatásban a különböző elérhető zónák között. Ebben a példában teszteli a címkét, és 3 és 5 csomópont között skálázza a fürtöt, hogy ellenőrizze, hogy a pod megfelelően oszlik-e el.
Skálázza az AKS-fürtöt 3 és 5 csomópont között a
az aks scale
beállítással5
--node-count
.az aks scale \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --node-count 5
A méretezési művelet befejeződésekor ellenőrizze a podok zónák közötti eloszlását a következő
kubectl describe
paranccsal:kubectl describe nodes | grep -e "Name:" -e "topology.kubernetes.io/zone"
Az alábbi példakimenet a megadott régióban és rendelkezésre állási zónákban elosztott öt csomópontot mutatja be, például az első rendelkezésre állási zóna eastus2-1-ét , a második rendelkezésre állási zónához pedig eastus2-2-t :
Name: aks-nodepool1-28993262-vmss000000 topology.kubernetes.io/zone=eastus2-1 Name: aks-nodepool1-28993262-vmss000001 topology.kubernetes.io/zone=eastus2-2 Name: aks-nodepool1-28993262-vmss000002 topology.kubernetes.io/zone=eastus2-3 Name: aks-nodepool1-28993262-vmss000003 topology.kubernetes.io/zone=eastus2-1 Name: aks-nodepool1-28993262-vmss000004 topology.kubernetes.io/zone=eastus2-2
Helyezzen üzembe egy NGINX-alkalmazást három replikával az alábbiak
kubectl create deployment
éskubectl scale
parancsok használatával:kubectl create deployment nginx --image=mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine kubectl scale deployment nginx --replicas=3
Ellenőrizze a podok zónák közötti eloszlását az alábbi
kubectl describe
paranccsal:kubectl describe pod | grep -e "^Name:" -e "^Node:"
Az alábbi példakimenet a megadott régióban és rendelkezésre állási zónákban elosztott három podot mutatja be, például az első rendelkezésre állási zóna eastus2-1-ét , a második rendelkezésre állási zónához pedig eastus2-2-t :
Name: nginx-6db489d4b7-ktdwg Node: aks-nodepool1-28993262-vmss000000/10.240.0.4 Name: nginx-6db489d4b7-v7zvj Node: aks-nodepool1-28993262-vmss000002/10.240.0.6 Name: nginx-6db489d4b7-xz6wj Node: aks-nodepool1-28993262-vmss000004/10.240.0.8
Ahogy az előző kimenetből látható, az első pod a rendelkezésre állási zónában
eastus2-1
található 0. csomóponton fut. A második pod a 2. csomóponton fut,eastus2-3
a 4. csomópontban pedig a harmadikoneastus2-2
. További konfiguráció nélkül a Kubernetes mindhárom rendelkezésre állási zónában megfelelően szórja el a podokat.
Következő lépések
Ez a cikk azt ismertette, hogyan hozhat létre AKS-fürtöt rendelkezésre állási zónák használatával. A magas rendelkezésre állású fürtökkel kapcsolatos további szempontokért tekintse meg az AKS üzletmenet-folytonossági és vészhelyreállítási ajánlott eljárásait.
Azure Kubernetes Service