Správa fondů systémových uzlů v Azure Kubernetes Service (AKS)

Ve službě Azure Kubernetes Service (AKS) jsou uzly stejné konfigurace seskupené do fondů uzlů. Fondy uzlů obsahují základní virtuální počítače, na kterých běží vaše aplikace. Fondy systémových uzlů a fondy uzlů uživatelů jsou dva různé režimy fondu uzlů pro clustery AKS. Fondy systémových uzlů slouží jako primární účel hostování důležitých podů systému, jako CoreDNSmetrics-serverjsou a . Fondy uzlů uživatelů slouží jako primární účel hostování podů aplikace. Pody aplikací se ale dají naplánovat ve fondech systémových uzlů, pokud chcete mít v clusteru AKS jenom jeden fond. Každý cluster AKS musí obsahovat alespoň jeden fond systémových uzlů s alespoň dvěma uzly.

Důležité

Pokud pro cluster AKS spustíte jeden fond systémových uzlů v produkčním prostředí, doporučujeme pro fond uzlů použít aspoň tři uzly.

Tento článek vysvětluje, jak spravovat fondy systémových uzlů v AKS. Informace o tom, jak používat více fondů uzlů, najdete v tématu použití více fondů uzlů.

Než začnete

Potřebujete nainstalované a nakonfigurované Rozhraní příkazového řádku Azure CLI verze 2.3.1 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.

Omezení

Při vytváření a správě clusterů AKS, které podporují fondy systémových uzlů, platí následující omezení.

  • Viz Kvóty, omezení velikosti virtuálních počítačů a dostupnost oblastí v AKS.
  • K nastavení režimu fondu uzlů je potřeba použít rozhraní API verze 2020-03-01 nebo vyšší. Clustery vytvořené ve verzích rozhraní API starších než 2020-03-01 obsahují pouze fondy uzlů uživatelů, ale je možné je migrovat tak, aby obsahovaly fondy systémových uzlů pomocí kroků režimu fondu aktualizací.
  • Název fondu uzlů může obsahovat pouze malé alfanumerické znaky a musí začínat malými písmeny. U fondů uzlů Linuxu musí být délka 1 až 12 znaků. U fondů uzlů Windows musí být délka mezi 1 a šesti znaky.
  • Režim fondu uzlů je požadovaná vlastnost a musí být explicitně nastavena při použití šablon ARM nebo přímých volání rozhraní API.

Fondy systémových a uživatelských uzlů

Pro fond systémových uzlů AKS automaticky přiřadí popisek kubernetes.azure.com/mode: systém k jeho uzlům. To způsobí, že AKS preferuje plánování systémových podů ve fondech uzlů, které obsahují tento popisek. Tento popisek vám nebrání v plánování podů aplikací ve fondech systémových uzlů. Doporučujeme ale izolovat kritické pody systému od podů aplikací, abyste zabránili chybné konfiguraci nebo podvodným podům aplikací v náhodném odstranění systémových podů.

Toto chování můžete vynutit vytvořením vyhrazeného fondu systémových uzlů. Pomocí taintu CriticalAddonsOnly=true:NoSchedule zabráníte naplánování podů aplikací ve fondech systémových uzlů.

Fondy systémových uzlů mají následující omezení:

  • Fondy systémových uzlů musí podporovat alespoň 30 podů, jak je popsáno ve vzorci minimální a maximální hodnoty pro pody.
  • Systémové fondy osType musí být Linux.
  • Fondy uzlů uživatele osType můžou být Linux nebo Windows.
  • Systémové fondy musí obsahovat alespoň dva uzly a fondy uzlů uživatelů můžou obsahovat nula nebo více uzlů.
  • Fondy systémových uzlů vyžadují skladovou položku virtuálního počítače minimálně 4 virtuálních procesorů a 4 GB paměti.
  • Virtuální počítače řady B series nejsou podporovány pro fondy systémových uzlů.
  • Doporučuje se minimálně tři uzly s 8 virtuálními procesory nebo dva uzly nejméně 16 virtuálních procesorů (například Standard_DS4_v2), zejména pro velké clustery (repliky podů s více jádry, 3 až 4+ doplňky atd.).
  • Fondy spotových uzlů vyžadují fondy uzlů uživatele.
  • Přidání dalšího fondu systémových uzlů nebo změna fondu uzlů je fond systémových uzlů se automaticky nepřesouvají systémové pody. Systémové pody se můžou dál spouštět ve stejném fondu uzlů, i když ho změníte na fond uzlů uživatele. Pokud odstraníte nebo škálujete fond uzlů se systémem, na kterém byly dříve systémové fondy uzlů, nasadí se tyto systémové pody s upřednostňovaným plánováním do nového fondu systémových uzlů.

S fondy uzlů můžete provádět následující operace:

  • Vytvoření vyhrazeného fondu systémových uzlů (preferování plánování systémových podů k fondům mode:systemuzlů )
  • Změňte fond systémových uzlů na fond uzlů uživatele, pokud máte jiný fond systémových uzlů, který se má provést v clusteru AKS.
  • Změňte fond uzlů uživatele na fond systémových uzlů.
  • Odstraňte fondy uzlů uživatele.
  • Fondy systémových uzlů můžete odstranit za předpokladu, že máte jiný fond systémových uzlů, který se má provést v clusteru AKS.
  • Cluster AKS může mít více fondů systémových uzlů a vyžaduje alespoň jeden fond systémových uzlů.
  • Pokud chcete změnit různá neměnná nastavení u stávajících fondů uzlů, můžete vytvořit nové fondy uzlů, které je nahradí. Jedním z příkladů je přidání nového fondu uzlů s novým nastavením maxPods a odstraněním starého fondu uzlů.
  • Spřažení uzlů použijte k vyžadování nebo preferování uzlů, které je možné naplánovat na základě popisků uzlů. Můžete nastavit , na kubernetes.azure.com, a values buď user nebo system na YAML, použít tuto definici pomocí kubectl apply -f yourYAML.yaml.Inoperatorkey

Vytvoření nového clusteru AKS s fondem systémových uzlů

Při vytváření nového clusteru AKS se počáteční fond uzlů ve výchozím nastavení nastaví na režim typu system. Při vytváření nových fondů uzlů s az aks nodepool addtěmito fondy uzlů jsou fondy uzlů uživatele, pokud explicitně nezadáte parametr režimu.

Následující příklad vytvoří skupinu prostředků myResourceGroup v oblasti eastus.

az group create --name myResourceGroup --location eastus

Pomocí příkazu az aks create vytvořte cluster AKS. Následující příklad vytvoří cluster myAKSCluster s jedním vyhrazeným systémovým fondem obsahujícím dva uzly. U produkčních úloh se ujistěte, že používáte fondy systémových uzlů s alespoň třemi uzly. Dokončení této operace může trvat několik minut.

# Create a new AKS cluster with a single system pool
az aks create -g myResourceGroup --name myAKSCluster --node-count 2 --generate-ssh-keys

Přidání vyhrazeného fondu systémových uzlů do existujícího clusteru AKS

Do existujících clusterů AKS můžete přidat jeden nebo více fondů systémových uzlů. Doporučuje se naplánovat pody aplikací ve fondech uzlů uživatelů a vyhradit fondy systémových uzlů pouze kritickým podům systému. Tím zabráníte nechtěným podům aplikací v náhodném odstranění systémových podů. Vynucujte toto chování pomocí taintu CriticalAddonsOnly=true:NoSchedule pro fondy systémových uzlů.

Následující příkaz přidá vyhrazený fond uzlů systému typů režimů s výchozím počtem tří uzlů.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name systempool \
    --node-count 3 \
    --node-taints CriticalAddonsOnly=true:NoSchedule \
    --mode System

Zobrazení podrobností pro fond uzlů

Podrobnosti o fondu uzlů můžete zkontrolovat pomocí následujícího příkazu.

az aks nodepool show -g myResourceGroup --cluster-name myAKSCluster -n systempool

Režim typu Systém je definován pro fondy systémových uzlů a režim typu Uživatel je definován pro fondy uzlů uživatele. V případě systémového fondu ověřte, že je taint nastavený na CriticalAddonsOnly=true:NoSchedule, což zabrání podům aplikací v bytostech naplánovaných v tomto fondu uzlů.

{
  "agentPoolType": "VirtualMachineScaleSets",
  "availabilityZones": null,
  "count": 3,
  "enableAutoScaling": null,
  "enableNodePublicIp": false,
  "id": "/subscriptions/yourSubscriptionId/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/agentPools/systempool",
  "maxCount": null,
  "maxPods": 110,
  "minCount": null,
  "mode": "System",
  "name": "systempool",
  "nodeImageVersion": "AKSUbuntu-1604-2020.06.30",
  "nodeLabels": {},
  "nodeTaints": [
    "CriticalAddonsOnly=true:NoSchedule"
  ],
  "orchestratorVersion": "1.16.10",
  "osDiskSizeGb": 128,
  "osType": "Linux",
  "provisioningState": "Succeeded",
  "proximityPlacementGroupId": null,
  "resourceGroup": "myResourceGroup",
  "scaleSetEvictionPolicy": null,
  "scaleSetPriority": null,
  "spotMaxPrice": null,
  "tags": null,
  "type": "Microsoft.ContainerService/managedClusters/agentPools",
  "upgradeSettings": {
    "maxSurge": null
  },
  "vmSize": "Standard_DS2_v2",
  "vnetSubnetId": null
}

Aktualizace stávajících fondů uzlů clusteru a uzlů uživatelů

Poznámka:

K nastavení režimu fondu systémových uzlů je potřeba použít rozhraní API verze 2020-03-01 nebo vyšší. Clustery vytvořené ve verzích rozhraní API starších než 2020-03-01 obsahují jako výsledek pouze fondy uzlů uživatele. Pokud chcete dostávat funkce a výhody fondu systémových uzlů ve starších clusterech, aktualizujte režim stávajících fondů uzlů pomocí následujících příkazů na nejnovější verzi Azure CLI.

Režimy můžete změnit pro fondy systémových i uživatelských uzlů. Fond systémových uzlů můžete změnit na fond uživatelů pouze v případě, že v clusteru AKS již existuje jiný fond systémových uzlů.

Tento příkaz změní fond systémových uzlů na fond uzlů uživatele.

az aks nodepool update -g myResourceGroup --cluster-name myAKSCluster -n mynodepool --mode user

Tento příkaz změní fond uzlů uživatele na fond systémových uzlů.

az aks nodepool update -g myResourceGroup --cluster-name myAKSCluster -n mynodepool --mode system

Odstranění fondu systémových uzlů

Poznámka:

Pokud chcete použít fondy systémových uzlů v clusterech AKS před rozhraním API verze 2020-03-02, přidejte nový fond systémových uzlů a odstraňte původní výchozí fond uzlů.

Abyste mohli některý z nich odstranit, musíte mít v clusteru AKS alespoň dva fondy systémových uzlů.

az aks nodepool delete -g myResourceGroup --cluster-name myAKSCluster -n mynodepool

Vyčištění prostředků

Pokud chcete cluster odstranit, pomocí příkazu az group delete odstraňte skupinu prostředků AKS:

az group delete --name myResourceGroup --yes --no-wait

Další kroky

V tomto článku jste se naučili vytvářet a spravovat fondy systémových uzlů v clusteru AKS. Informace o tom, jak spustit a zastavit fondy uzlů AKS, najdete v tématu spuštění a zastavení fondů uzlů AKS.