Megosztás a következőn keresztül:


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": nullmintha 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.

  1. Hozzon létre egy erőforráscsoportot a az group create paranccsal.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. 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.

  1. 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
    
  2. A parancs használatával kubectl describe listázhatja a fürt csomópontjait, és szűrheti az topology.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/zonehaszná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.

  1. 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
    
  2. 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
    
  3. Helyezzen üzembe egy NGINX-alkalmazást három replikával az alábbiak kubectl create deployment és kubectl 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
    
  4. 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-1található 0. csomóponton fut. A második pod a 2. csomóponton fut, eastus2-3a 4. csomópontban pedig a harmadikon eastus2-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.