Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek vysvětluje, jak nakonfigurovat fondy uzlů pro automatické zřizování uzlů (NAP) ve službě Azure Kubernetes Service (AKS), včetně selektorů SKU, limitů prostředků a prioritních vah. Obsahuje také příklady, které vám pomůžou začít.
Přehled poolů uzlů v NAP
Architektura NAP používá požadavky na skladovou položku virtuálního počítače k rozhodování o tom, které virtuální počítače jsou nejvhodnější pro nevyřízené úlohy. Můžete nakonfigurovat:
- Rodiny SKU a konkrétní typy instancí.
- Limity a priority prostředků.
- Spotové instance či instance na vyžádání
- Požadavky na architekturu a možnosti
Prostředek NodePool nastaví omezení na uzly, které vytváří NAP, i na pody spuštěné na těchto uzlech. Při první instalaci architektury NAP se vytvoří výchozí nastavení NodePool. Tento fond uzlů můžete upravit nebo vytvořit další fondy uzlů tak, aby vyhovovaly vašim požadavkům na úlohy.
Klíčové chování NodePools v NAP
Při konfiguraci NodePools pro NAP mějte na paměti následující chování:
- Architektura NAP vyžaduje alespoň jeden
NodePool, aby fungovala. - Architektura NAP vyhodnocuje každou nakonfigurovanou architekturu
NodePool. - NAP přeskočí
NodePoolss tainty, které pod netoleruje. - Architektura NAP aplikuje na zřízené uzly tainty po spuštění, ale nevyžaduje tolerance podů.
- NAP funguje nejlépe s vzájemně se vylučujícím
NodePools. Pokud se shoduje více položek reprezentovanýchNodePools, použije se ta s nejvyšší váhou.
Kontrola výchozí konfigurace fondu uzlů
Konfigurace výchozího Karpenteru NodePool vytvořeného default NAP je následující:
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
name: default
spec:
disruption:
consolidationPolicy: WhenEmptyOrUnderutilized
template:
spec:
nodeClassRef:
name: default
expireAfter: Never
# Requirements that constrain the parameters of provisioned nodes.
# These requirements are combined with pod.spec.affinity.nodeAffinity rules.
# Operators { In, NotIn, Exists, DoesNotExist, Gt, and Lt } are supported.
# https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#operators
requirements:
- key: kubernetes.io/arch
operator: In
values:
- amd64
- key: kubernetes.io/os
operator: In
values:
- linux
- key: karpenter.sh/capacity-type
operator: In
values:
- on-demand
- key: karpenter.azure.com/sku-family
operator: In
values:
- D
Vytvoří také system-surge uzlový fond, který pomáhá automaticky škálovat uzly systémového fondu.
Řízení konfigurace výchozího fondu uzlů během vytváření clusteru
Když vytvoříte nový cluster AKS s povolenou architekturou NAP pomocí Azure CLI, můžete zahrnout příznak --node-provisioning-default-pools, abyste mohli řídit konfiguraci výchozího NAP NodePool.
Příznak --node-provisioning-default-pools řídí výchozí konfiguraci architektury NAP NodePool a přijímá následující hodnoty:
-
Auto(výchozí): Vytvoří dva standardyNodePoolspro okamžité použití. -
None: Nevytváří žádnéNodePools. Musíte definovat vlastní.
Výstraha
Změna z Auto na None: Pokud změníte nastavení z Auto na None existující cluster, výchozí nastavení NodePools se neodstraní automaticky. Pokud je už nepotřebujete, musíte je odstranit ručně.
Možnosti konfigurace fondu uzlů
Následující části popisují různé možnosti NodePools konfigurace architektury NAP, včetně známých popisků a selektorů skladových položek, limitů fondu uzlů a váhy fondu uzlů.
Známé popisky a selektory skladových položek
Kubernetes definuje známé štítky, které Azure implementuje. Tyto popisky můžete definovat v spec.requirements části NodePool rozhraní API. NAP také podporuje štítky specifické pro Azure pro pokročilé plánování.
karpenter.azure.com Selektory skladových položek
Následující tabulka uvádí karpenter.azure.com selektory skladových položek, které můžete použít v spec.requirements části NodePool rozhraní API k definování charakteristik virtuálních počítačů pro uzly:
| Selector | Description | Example |
|---|---|---|
karpenter.azure.com/sku-family |
Řada specifikací virtuálního počítače | D, F, L atd. |
karpenter.azure.com/sku-name |
Explicitní název skladové položky | Standard_A1_v2 |
karpenter.azure.com/sku-version |
SKU verze (bez "v", může použít 1) | 1, 2 |
karpenter.sh/capacity-type |
Typ přidělování virtuálních počítačů (spotový/ na vyžádání) | Skvrna |
karpenter.azure.com/sku-cpu |
Počet procesorů ve virtuálním počítači | 16 |
karpenter.azure.com/sku-memory |
Velikost paměti ve virtuálním počítači v MiB | 131072 |
kubernetes.azure.com/sku-cpu |
Počet procesorů ve virtuálním počítači | 16 |
kubernetes.azure.com/sku-memory |
Velikost paměti ve virtuálním počítači v MiB | 131072 |
karpenter.azure.com/sku-gpu-name |
Název GPU | A100 |
karpenter.azure.com/sku-gpu-manufacturer |
Výrobce GPU | nvidia |
karpenter.azure.com/sku-gpu-count |
Počet GPU na virtuální počítač | 2 |
karpenter.azure.com/sku-networking-accelerated |
Jestli má virtuální počítač akcelerované síťové služby | [pravda, nepravda] |
karpenter.azure.com/sku-storage-premium-capable |
Jestli virtuální počítač podporuje úložiště Premium IO | [pravda, nepravda] |
karpenter.azure.com/sku-storage-ephemeralos-maxsize |
Omezení velikosti dočasného disku s operačním systémem (OS) v Gb | 92 |
kubernetes.io dobře známé štítky
Následující tabulka uvádí kubernetes.io známé štítky, které můžete použít v spec.requirements části NodePool rozhraní API k definování charakteristik pro vaše uzly:
| Označení | Description | Example |
|---|---|---|
topology.kubernetes.io/zone |
Zóny dostupnosti | [uksouth-1,uksouth-2,uksouth-3] |
kubernetes.io/os |
Operační systém | Linux |
kubernetes.io/arch |
Architektura procesoru (AMD64 nebo ARM64) | [amd64, arm64] |
Příklady skupin skladových položek
Selektor karpenter.azure.com/sku-family umožňuje cílit na konkrétní rodiny virtuálních počítačů.
| Rodina | Description |
|---|---|
| řada D | Virtuální počítače pro obecné účely s vyváženým poměrem procesoru k paměti |
| Řada F | Virtuální počítače optimalizované pro výpočty s vysokým poměrem procesoru k paměti |
| Řada E | Virtuální počítače optimalizované pro paměť pro aplikace náročné na paměť |
| Řada L | Virtuální počítače optimalizované pro úložiště s vysokou propustností disku |
| N-series | Virtuální počítače s podporou GPU pro úlohy náročné na výpočetní výkon |
Příklad konfigurace pomocí řady skladových položek:
requirements:
- key: karpenter.azure.com/sku-family
operator: In
values:
- D
- F
Příklady názvů skladových položek
Selektor karpenter.azure.com/sku-name umožňuje zadat přesný typ instance virtuálního počítače.
requirements:
- key: karpenter.azure.com/sku-name
operator: In
values:
- Standard_D4s_v3
- Standard_F8s_v2
Příklady verzí skladové položky
Selektor karpenter.azure.com/sku-version cílí na konkrétní generace skladových položek virtuálních počítačů.
requirements:
- key: karpenter.azure.com/sku-version
operator: In
values:
- "3" # v3 generation
- "5" # v5 generation
Příklad zóny dostupnosti
Selektor topology.kubernetes.io/zone umožňuje určit zóny dostupnosti pro vaše uzly.
requirements:
- key: topology.kubernetes.io/zone
operator: In
values:
- eastus-1
- eastus-2
Poznámka:
Dostupné zóny pro vaši oblast najdete pomocí az account list-locations --output table příkazu Azure CLI.
Příklad architektury
Selektor kubernetes.io/arch umožňuje určit architekturu procesoru pro uzly. Nap podporuje jak amd64 a arm64 uzly.
requirements:
- key: kubernetes.io/arch
operator: In
values:
- amd64
- arm64
Příklad operačního systému
Selektor kubernetes.io/os umožňuje zadat operační systém pro vaše uzly.
requirements:
- key: kubernetes.io/os
operator: In
values:
- linux
Příklad typu kapacity
Selektor karpenter.sh/capacity-type umožňuje určit, jestli se mají používat spotové instance nebo instance na vyžádání.
Poznámka:
NAP určuje prioritu spotových instancí, když jsou specifikovány jak spotové instance, tak instance na vyžádání.
requirements:
- key: karpenter.sh/capacity-type
operator: In
values:
- spot
- on-demand
Omezení fondu uzlů
Ve výchozím nastavení se NAP pokouší naplánovat vaše úlohy v rámci dostupné kvóty Azure. Můžete také určit horní limit prostředků, které fond uzlů používá, zadáním limitů v rámci specifikace fondu uzlů. Například:
spec:
# Resource limits constrain the total size of the cluster.
# Limits prevent Node Auto Provisioning from creating new instances once the limit is exceeded.
limits:
cpu: "1000"
memory: 1000Gi
Váhy skupiny uzlů
Pokud máte definovaných více fondů uzlů, můžete nastavit předvolbu, kde by měla být úloha naplánována definováním relativní váhy v definicích fondu uzlů. Například:
spec:
# Priority given to the node pool when the scheduler considers which to select.
# Higher weights indicate higher priority when comparing node pools.
# Specifying no weight is equivalent to specifying a weight of 0.
weight: 10
Další kroky
Pro více informací o automatickém zřizování uzlů v AKS si přečtěte následující články: