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
- Potřebujete nainstalovanou a nakonfigurovanou verzi Azure CLI 2.2.0 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. - Projděte si možnosti úložiště pro aplikace ve službě Azure Kubernetes Service a naplánujte konfiguraci úložiště.
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.
Pomocí příkazu vytvořte skupinu
az group create
prostředků Azure.az group create --name $RESOURCE_GROUP_NAME --location $LOCATION
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.
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ů.
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
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:
- Odeberte existující fondy uzlů a přidejte nové fondy uzlů Azure s Linuxem.
- Místní migrace skladové položky operačního systému
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 jecontainerd
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ástrojeaz 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
nacontainerd
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
naEphemeral
.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říkazemaz 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
- Během vytváření clusteru můžete zadat dočasné disky s operačním systémem pomocí
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).
Azure Kubernetes Service