Automatické umístění zóny v Azure Kubernetes Service (Preview)

Automatické umístění zóny v Azure Kubernetes Service (AKS) dynamicky vybere nejlepší sadu zón dostupnosti pro fond uzlů. Zóny nemusíte ručně zadávat pro každou kombinaci oblasti a SKU virtuálního počítače. Když pomocí --zones auto vytvoříte nebo aktualizujete fond uzlů, AKS umístí virtuální počítače (VM) do zón dostupnosti, které mají v cílovém regionu kapacitu pro požadované SKU, a použije maximální podíl instancí 50 % na zónu.

V tomto článku se dozvíte, jak vytvořit nebo aktualizovat fondy uzlů AKS, které používají automatické umísťování do zón.

Jak funguje automatické umístění zóny

Když zadáte --zones auto (nebo availabilityZones: ["auto"] v profilu fondu agentů), AKS použije zásady automatického umístění zóny Azure Compute k výběru zón a distribuci uzlů. Nemusíte zadávat čísla zón ani udržovat různé konfigurace zón pro každou oblast a skladovou položku virtuálního počítače.

Automatické umístění zóny funguje takto:

  1. AKS vyhodnotí, které zóny dostupnosti v cílové oblasti můžou podporovat požadovanou skladovou položku virtuálního počítače.
  2. AKS zpočátku vybere až tři dostupné zóny a umístí uzly podle zásad automatického umístění zóny. Jedna zóna nemůže obsahovat více než 50% fondu uzlů.
  3. Během následných operací horizontálního škálování služba AKS znovu vyhodnocuje dostupnost zón. Pokud Azure přidá do oblasti zónu nebo zpřístupní skladovou položku virtuálního počítače v jiné zóně, může AKS umístit do této zóny nové uzly, když to zásada umístění a dostupná kapacita povolí. Konfiguraci fondu uzlů nemusíte aktualizovat.

Important

Limit 50% je maximální koncentrace na zónu, nikoli záruka, že uzly jsou vždy distribuovány rovnoměrně. Skutečná distribuce závisí na počtu uzlů, zónách, které podporují vybranou skladovou položku virtuálního počítače, a kapacitu dostupnou při zřizování uzlů. Operace vytvoření nebo škálování může stále selhat, pokud Azure nemůže přidělit požadované uzly při dosažení limitu pro každou zónu.

Tento přístup řeší běžné problémy s ručním zadáním zón:

  • Nasazení nezávislá na jednotlivých oblastech: Používejte konzistentní konfigurace napříč oblastmi, aniž byste se museli starat o rozdíly mezi dostupností zón.
  • Vylepšená odolnost: Automatické dosažení redundance s více pásmy za účelem lepší dostupnosti aplikací
  • Automatické rozšíření zóny: Bezproblémové využití nových zón dostupnosti při rozbalení oblastí (například ze tří do čtyř zón).
  • Snížení počtu selhání nasazení: Omezte selhání alokací při vytváření a škálování způsobená omezením kapacity v konkrétní zóně na základě tolerance vašich úloh vůči vyvažování mezi zónami.

Omezení a úvahy

  • Automatické umístění zóny podporuje pouze oblasti s podporou zóny dostupnosti. Další informace najdete v seznamu oblastí Azure.
  • Automatické umísťování do zón podporuje vytváření i aktualizaci fondů uzlů založených jak na sadách škálování virtuálních počítačů, tak na virtuálních počítačích.
  • Limit pro každou zónu je 50% uzlů. Operace vytvoření nebo škálování může stále selhat, pokud Azure nemůže přidělit požadované uzly při dosažení limitu pro každou zónu.
  • Automatické umístění zóny je určené pro úlohy zahrnující zónu . Pro úlohy zarovnané na zónu (kde je každý fond uzlů vázán na jednu zónu) nadále explicitně zadávejte zónu pomocí --zones 1, --zones 2 atd.

Předpoklady

Important

Funkce AKS ve verzi Preview jsou k dispozici na bázi samoobsluhy a dobrovolného přihlášení. Ukázky jsou poskytovány "tak, jak jsou" a "dle dostupnosti" a jsou vyloučeny ze smluv o úrovni služeb a z omezené záruky. Předběžné verze AKS jsou částečně pokryty zákaznickou podporou podle možností. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:

Nainstalovat rozšíření aks-preview příkazového řádku

Nainstalujte rozšíření CLI aks-preview pomocí příkazu az extension add.

az extension add --name aks-preview

Pomocí příkazu aktualizujte rozšíření, abyste měli nainstalovanou az extension update nejnovější verzi.

az extension update --name aks-preview

Zaregistruj příznak funkce VmssAutomaticZonePlacement

Pomocí příkazu zaregistrujte příznak az feature register funkce:

az feature register \
  --namespace Microsoft.Compute \
  --name VmssAutomaticZonePlacement

Pomocí příkazu zkontrolujte stav az feature show registrace:

az feature show \
  --namespace Microsoft.Compute \
  --name VmssAutomaticZonePlacement \
  --query properties.state \
  --output tsv

Počkejte, až se příkaz vrátí Registered , než budete pokračovat.

Vytvoření clusteru AKS s automatickým umístěním zóny (Preview)

Vytvořte nový cluster AKS s fondem systémových uzlů založeným na Virtual Machine Scale Sets nebo založeným na Virtual Machines, který používá automatické umístění do zón, pomocí příkazu az aks create s parametrem --zones auto:

az aks create \
  --resource-group example-rg \
  --name example-cluster \
  --node-vm-size Standard_D8s_v5 \
  --node-count 10 \
  --zones auto

AKS vybere zóny v cílové oblasti, které mají k dispozici kapacitu pro Standard_D8s_v5, a rozprostře mezi ně 10 uzlů, přičemž žádná jednotlivá zóna neobsahuje více než 50 % uzlů.

Přidání fondu uzlů s automatickým umístěním zóny (Preview)

Přidejte do existujícího clusteru nový fond uzlů založený na Virtual Machine Scale Sets nebo na Virtual Machines pomocí příkazu az aks nodepool add s --zones auto:

az aks nodepool add \
  --resource-group example-rg \
  --cluster-name example-cluster \
  --name userpoolauto \
  --node-vm-size Standard_D8s_v5 \
  --node-count 6 \
  --zones auto

Aktualizovat existující fond uzlů pro automatické umísťování do zón (Preview)

Aktualizujte existující fond uzlů založený na Virtual Machine Scale Sets nebo Virtual Machines tak, aby používal automatické umisťování do zón, a to pomocí příkazu az aks nodepool update s parametrem --zones auto:

az aks nodepool update \
  --resource-group example-rg \
  --cluster-name example-cluster \
  --name nodepool1 \
  --zones auto

AKS aktualizuje existující fond uzlů prostřednictvím postupné operace:

  1. AKS přidává dodatečné uzly, které využívají automatické umístění do zón.
  2. AKS označí stávající uzly jako neschedulovatelné a vyprázdní je.
  3. AKS odstraní existující uzly poté, co se jejich úlohy přesunou na dočasně přidané uzly.

Operace respektuje následující nastavení upgradu, která nakonfigurujete ve fondu uzlů:

  • Max surge (--max-surge): Určuje, kolik dalších uzlů AKS přidá během aktualizace. Vyšší hodnota dokončí aktualizaci rychleji, ale vyžaduje větší kvótu výpočetních prostředků a kapacitu IP podsítě.
  • Časový limit vyprázdnění uzlu (--drain-timeout): Určuje, jak dlouho AKS čeká na vyřazení podu na uzlu před selháním operace vyprázdnění.
  • Doba trvání namočení uzlu (--node-soak-duration): Určuje, jak dlouho AKS čeká po dokončení nového uzlu, než přejde k další dávce.

Než začnete s aktualizací, ujistěte se, že máte dostatečnou kvótu výpočetních prostředků a kapacitu IP podsítě pro přepětí uzlů a že rozpočty přerušení podů umožňují vyprázdnit uzly.

Ověřte umístění zóny

Po vytvoření nebo aktualizaci fondu clusteru nebo uzlů pomocí příkazu ověřte zóny vybrané službou az aks show AKS.

az aks show \
 --name example-cluster \
 --resource-group example-rg \
 --query agentPoolProfiles[].availabilityZones \
 --output tsv

Můžete také použít kubectl k potvrzení distribuce uzlů napříč zónami.

kubectl get nodes -o custom-columns='NAME:metadata.name, REGION:metadata.labels.topology\.kubernetes\.io/region, ZONE:metadata.labels.topology\.kubernetes\.io/zone'

Příklad výstupu:

NAME                                REGION   ZONE
aks-nodepool1-12345678-vmss000000   eastus   eastus-1
aks-nodepool1-12345678-vmss000001   eastus   eastus-2
aks-nodepool1-12345678-vmss000002   eastus   eastus-3
...