Vytvoření fondů uzlů pro cluster ve službě Azure Kubernetes Service (AKS)

Ve službě Azure Kubernetes Service (AKS) jsou uzly stejné konfigurace seskupené do fondů uzlů. Tyto fondy uzlů obsahují základní virtuální počítače, na kterých běží vaše aplikace. Při vytváření clusteru AKS definujete počáteční počet uzlů a jejich velikost (SKU), který vytvoří fond systémových uzlů.

Pokud chcete podporovat aplikace, které mají různé požadavky na výpočetní prostředky nebo úložiště, můžete vytvářet fondy uzlů uživatelů. Fondy systémových uzlů slouží jako primární účel hostování důležitých podů systému, jako jsou CoreDNS a konnectivity. Fondy uzlů uživatelů slouží jako primární účel hostování podů aplikace. Můžete například použít více fondů uzlů uživatelů k poskytování GPU pro aplikace náročné na výpočetní výkon nebo přístup k vysoce výkonnému úložišti SSD. Pokud ale chcete mít v clusteru AKS jenom jeden fond, můžete naplánovat pody aplikací ve fondech systémových uzlů.

Poznámka:

Tato funkce umožňuje větší kontrolu nad vytvářením a správou více fondů uzlů a vyžaduje samostatné příkazy pro operace vytvoření, aktualizace nebo odstranění (CRUD). Dříve operace clusteru prostřednictvím az aks create spravovaného rozhraní APICluster nebo az aks update používaly a byly jedinými možnostmi pro změnu řídicí roviny a fondu s jedním uzlem. Tato funkce zveřejňuje samostatnou sadu operací pro fondy agentů prostřednictvím rozhraní API agentPool a vyžaduje použití az aks nodepool sady příkazů ke spouštění operací v jednotlivých fondech uzlů.

Tento článek ukazuje, jak vytvořit jeden nebo více fondů uzlů v clusteru AKS.

Než začnete

Omezení

Při vytváření clusterů AKS, které podporují více fondů uzlů, platí následující omezení:

  • Viz Kvóty, omezení velikosti virtuálních počítačů a dostupnost oblastí ve službě Azure Kubernetes Service (AKS).
  • Fond systémových uzlů můžete odstranit, pokud máte jiný fond systémových uzlů, který se má provést v clusteru AKS. V opačném případě nelze odstranit fond systémových uzlů.
  • Systémové fondy musí obsahovat alespoň jeden uzel a fondy uzlů uživatelů můžou obsahovat nula nebo více uzlů.
  • Cluster AKS musí pro použití více fondů uzlů používat nástroj pro vyrovnávání zatížení skladové položky Standard. Tato funkce není u nástrojů pro vyrovnávání zatížení skladové položky Basic podporovaná.
  • Cluster AKS musí pro uzly používat škálovací sady virtuálních počítačů.
  • Název fondu uzlů může obsahovat pouze malé alfanumerické znaky a musí začínat malými písmeny.
    • U fondů uzlů Linuxu musí mít délku 1 až 12 znaků.
    • U fondů uzlů Windows musí mít délku 1 až 6 znaků.
  • Všechny fondy uzlů se musí nacházet ve stejné virtuální síti.
  • Když při vytváření clusteru vytváříte více fondů uzlů, musí verze Kubernetes pro fondy uzlů odpovídat sadě verzí pro řídicí rovinu.

Vytvoření clusteru AKS

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. Pokud jeden uzel přestane fungovat, ztratíte prostředky řídicí roviny a dojde k ohrožení redundance. Toto riziko můžete zmírnit tím, že budete mít více uzlů řídicí roviny.

  1. Pomocí příkazu vytvořte skupinu az group create prostředků Azure.

    az group create --name $RESOURCE_GROUP_NAME --location $LOCATION
    
  2. Pomocí příkazu vytvořte cluster AKS s jedním fondem az aks create uzlů.

    az aks create \
        --resource-group $RESOURCE_GROUP_NAME \
        --name $CLUSTER_NAME \
        --vm-set-type VirtualMachineScaleSets \
        --node-count 2 \
        --location $LOCATION \
        --load-balancer-sku standard \
        --generate-ssh-keys
    

    Vytvoření clusteru bude trvat několik minut.

  3. Až bude cluster připravený, pomocí příkazu získejte přihlašovací údaje clusteru az aks get-credentials .

    az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME
    

Přidání fondu uzlů

Cluster vytvořený v předchozím kroku má jeden fond uzlů. V této části přidáme do clusteru druhý fond uzlů.

  1. Pomocí příkazu vytvořte nový fond az aks nodepool add uzlů. Následující příklad vytvoří fond uzlů s názvem mynodepool , který spouští tři uzly:

    az aks nodepool add \
        --resource-group $RESOURCE_GROUP_NAME \
        --cluster-name $CLUSTER_NAME \
        --name $NODE_POOL_NAME \
        --node-count 3
    
  2. Pomocí příkazu zkontrolujte stav fondů az aks node pool list uzlů a zadejte název skupiny prostředků a clusteru.

    az aks nodepool list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
    

    Následující příklad výstupu ukazuje, že mynodepool byl úspěšně vytvořen se třemi uzly. Po vytvoření clusteru AKS v předchozím kroku se vytvořil výchozí fond uzlů 1 s počtem uzlů 2.

    [
      {
        ...
        "count": 3,
        ...
        "name": "mynodepool",
        "orchestratorVersion": "1.15.7",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      },
      {
        ...
        "count": 2,
        ...
        "name": "nodepool1",
        "orchestratorVersion": "1.15.7",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      }
    ]
    

Fondy uzlů ARM64

Procesor ARM64 poskytuje pro úlohy Kubernetes nízký výkon. Pokud chcete vytvořit fond uzlů ARM64, musíte zvolit virtuální počítač řady Dpsv5, Dplsv5 nebo Epsv5 .

Omezení

  • Fondy uzlů ARM64 nejsou podporované v clusterech s podporou Defenderu s verzí Kubernetes nižší než 1.29.0.
  • Fondy uzlů s podporou FIPS se u skladových položek ARM64 nepodporují.
  • Fondy uzlů Windows se nepodporují u skladových položek ARM64.

Přidání fondu uzlů ARM64

  • Přidejte fond uzlů ARM64 do existujícího clusteru pomocí nástroje az aks nodepool add.

    az aks nodepool add \
        --resource-group $RESOURCE_GROUP_NAME \
        --cluster-name $CLUSTER_NAME \
        --name $ARM_NODE_POOL_NAME \
        --node-count 3 \
        --node-vm-size Standard_D2pds_v5
    

Fondy uzlů Azure s Linuxem

Hostitel kontejneru Azure Linux pro AKS je opensourcová linuxová distribuce dostupná jako hostitel kontejneru AKS. Poskytuje vysokou spolehlivost, zabezpečení a konzistenci. Zahrnuje pouze minimální sadu balíčků potřebných pro spouštění úloh kontejneru, které zlepšují dobu spouštění a celkový výkon.

Přidání fondu uzlů Azure s Linuxem

  • Přidejte fond uzlů Azure s Linuxem do existujícího az aks nodepool add clusteru pomocí příkazu a zadejte --os-sku AzureLinux.

    az aks nodepool add \
        --resource-group $RESOURCE_GROUP_NAME \
        --cluster-name $CLUSTER_NAME \
        --name $AZ_LINUX_NODE_POOL_NAME \
        --os-sku AzureLinux
    

Migrace uzlů Ubuntu do uzlů Azure s Linuxem

Existující uzly Ubuntu můžete migrovat do Azure Linuxu pomocí jedné z následujících metod:

Fondy uzlů s jedinečnými podsítěmi

Úloha může vyžadovat rozdělení uzlů clusteru do samostatných fondů pro logickou izolaci. Samostatná podsítě vyhrazená pro každý fond uzlů v clusteru můžou pomoct tuto izolaci podporovat, což může řešit požadavky, jako je například nesouvislé adresní prostor virtuální sítě pro rozdělení mezi fondy uzlů.

Poznámka:

Ujistěte se, že používáte verzi 2.35.0 Azure CLI nebo novější.

Omezení

  • Všechny podsítě přiřazené fondům uzlů musí patřit do stejné virtuální sítě.
  • Systémové pody musí mít přístup ke všem uzlům a podům v clusteru, aby poskytovaly důležité funkce, jako je překlad DNS a tunelování protokolů kubectl/exec/port-forward proxy.
  • Pokud virtuální síť po vytvoření clusteru rozbalíte, musíte před přidáním podsítě mimo původní blok CIDR aktualizovat cluster. Zatímco při přidávání fondu agentů dochází k chybám AKS, aks-preview rozšíření Azure CLI (verze 0.5.66 a vyšší) teď podporuje spuštění az aks update příkazu pouze s požadovanými -g <resourceGroup> -n <clusterName> argumenty. Tento příkaz provede operaci aktualizace bez provedení jakýchkoli změn, které můžou obnovit cluster zablokovaný ve stavu selhání.
  • V clusterech s verzí Kubernetes menší než 1.23.3 přenosy SNAT kube-proxy z nových podsítí, což může způsobit, že Služba Azure Network Policy pakety zahodí.
  • Uzly Windows provoz SNAT do nových podsítí do doby, než se fond uzlů znovu nezmagí.
  • Interní nástroje pro vyrovnávání zatížení ve výchozím nastavení mají jednu z podsítí fondu uzlů.

Přidání fondu uzlů s jedinečnou podsítí

  • Přidejte fond uzlů s jedinečnou podsítí do existujícího az aks nodepool add clusteru pomocí příkazu a zadejte --vnet-subnet-id.

    az aks nodepool add \
        --resource-group $RESOURCE_GROUP_NAME \
        --cluster-name $CLUSTER_NAME \
        --name $NODE_POOL_NAME \
        --node-count 3 \
        --vnet-subnet-id $SUBNET_RESOURCE_ID
    

Fondy uzlů s podporou FIPS

Další informace o povolení standardu FIPS (Federal Information Process Standard) pro váš cluster AKS najdete v tématu Povolení federal information process Standard (FIPS) pro fondy uzlů Azure Kubernetes Service (AKS).

Fondy uzlů Windows Serveru s využitím containerd

Počínaje Kubernetes verze 1.20 a vyšší můžete jako modul runtime kontejneru pro fondy uzlů Windows Serveru 2019 zadat containerd . Počínaje Kubernetes 1.23 containerd je výchozí a jediný modul runtime kontejneru pro Windows.

Důležité

Při použití containerd s fondy uzlů Windows Serveru 2019:

  • Řídicí rovina i fondy uzlů Windows Serveru 2019 musí používat Kubernetes verze 1.20 nebo vyšší.
  • Při vytváření nebo aktualizaci fondu uzlů pro spouštění kontejnerů Windows Serveru je výchozí hodnota pro --node-vm-size Standard_D2s_v3, která byla minimální doporučená velikost pro fondy uzlů Windows Serveru 2019 před Kubernetes verze 1.20. Minimální doporučená velikost fondů uzlů Windows Serveru 2019 je containerd Standard_D4s_v3. Při nastavování parametru --node-vm-size zkontrolujte seznam omezených velikostí virtuálních počítačů.
  • Doporučujeme používat tainty nebo popisky s fondy uzlů Windows Serveru 2019 se spuštěnými containerd a toleracemi nebo selektory uzlů s vašimi nasazeními, aby se zajistilo správné naplánování vašich úloh.

Přidání fondu uzlů Windows Serveru pomocí containerd

  • Přidejte fond containerd uzlů Windows Serveru do existujícího clusteru pomocí nástroje az aks nodepool add.

    Poznámka:

    Pokud vlastní hlavičku WindowsContainerRuntime=containerd nezadáte, fond uzlů ve výchozím nastavení stále používá containerd jako modul runtime kontejneru.

    az aks nodepool add \
        --resource-group $RESOURCE_GROUP_NAME \
        --cluster-name $CLUSTER_NAME \
        --os-type Windows \
        --name $CONTAINER_D_NODE_POOL_NAME \
        --node-vm-size Standard_D4s_v3 \
        --kubernetes-version 1.20.5 \
        --aks-custom-headers WindowsContainerRuntime=containerd \
        --node-count 1
    

Upgrade konkrétního existujícího fondu uzlů Windows Serveru na containerd

  • Upgradujte z Dockeru konkrétní fond uzlů na containerd použití az aks nodepool upgrade příkazu.

    az aks nodepool upgrade \
        --resource-group $RESOURCE_GROUP_NAME \
        --cluster-name $CLUSTER_NAME \
        --name $CONTAINER_D_NODE_POOL_NAME \
        --kubernetes-version 1.20.7 \
        --aks-custom-headers WindowsContainerRuntime=containerd
    

Upgrade všech existujících fondů uzlů Windows Serveru na containerd

  • Upgradujte všechny fondy uzlů z Dockeru az aks nodepool upgrade na containerd použití příkazu.

    az aks nodepool upgrade \
        --resource-group $RESOURCE_GROUP_NAME \
        --cluster-name $CLUSTER_NAME \
        --kubernetes-version 1.20.7 \
        --aks-custom-headers WindowsContainerRuntime=containerd
    

Fondy uzlů s dočasnými disky s operačním systémem

  • Přidejte fond uzlů, který používá dočasné disky operačního systému do existujícího clusteru pomocí az aks nodepool add příkazu s příznakem nastaveným --node-osdisk-type na Ephemeral.

    Poznámka:

    • Během vytváření clusteru můžete zadat dočasné disky s operačním systémem pomocí --node-osdisk-type příznaku s příkazem az aks create .
    • Pokud chcete vytvořit fondy uzlů s disky operačního systému připojeného k síti, můžete to provést zadáním --node-osdisk-type Managed.
    az aks nodepool add --name $EPHEMERAL_NODE_POOL_NAME --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME -s Standard_DS3_v2 --node-osdisk-type Ephemeral
    

Důležité

Dočasným operačním systémem můžete nasazovat virtuální počítače a image instancí až do velikosti mezipaměti virtuálního počítače. Výchozí konfigurace disku s operačním systémem uzlu v AKS používá 128 GB, což znamená, že potřebujete velikost virtuálního počítače, která má mezipaměť větší než 128 GB. Výchozí Standard_DS2_v2 má velikost mezipaměti 86 GB, což není dostatečně velké. Skladová položka virtuálního počítače Standard_DS3_v2 má velikost mezipaměti 172 GB, což je dostatečně velké. Výchozí velikost disku s operačním systémem můžete také zmenšit pomocí --node-osdisk-size, ale mějte na paměti, že minimální velikost imagí AKS je 30 GB.

Odstranění fondu uzlů

Pokud už fond uzlů nepotřebujete, můžete ho odstranit a odebrat základní uzly virtuálních počítačů.

Upozornění

Když odstraníte fond uzlů, AKS neprovádí cordon a vyprázdnění a neexistují žádné možnosti obnovení pro ztrátu dat, ke kterým může dojít při odstranění fondu uzlů. Pokud pody nelze naplánovat v jiných fondech uzlů, tyto aplikace nebudou k dispozici. Ujistěte se, že fond uzlů neodstraníte, pokud aplikace používané v provozu nemají zálohy dat ani možnost spouštět v jiných fondech uzlů ve vašem clusteru. Pokud chcete minimalizovat přerušení plánování podů aktuálně spuštěných ve fondu uzlů, který chcete odstranit, před odstraněním proveďte cordon a vyprázdněte všechny uzly ve fondu uzlů.

  • Pomocí příkazu odstraňte fond az aks nodepool delete uzlů a zadejte název fondu uzlů.

    az aks nodepool delete --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --no-wait
    

    Odstranění uzlů a fondu uzlů trvá několik minut.

Další kroky

V tomto článku jste zjistili, jak vytvořit více fondů uzlů v clusteru AKS. Další informace o správě více fondů uzlů najdete v tématu Správa více fondů uzlů pro cluster ve službě Azure Kubernetes Service (AKS).