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 povolit nebo zakázat automatické zřizování uzlů (NAP) ve službě Azure Kubernetes Service (AKS) pomocí šablon Azure CLI nebo Azure Resource Manageru (ARM).
Pokud chcete vytvořit cluster AKS s podporou architektury NAP s vlastní virtuální sítí a podsítěmi, přečtěte si téma Vytvoření clusteru architektury NAP (Auto-Provisioning) uzlu ve vlastní virtuální síti.
Než začnete
Než začnete, projděte si přehled automatického zřizování uzlů (NAP) v článku AKS , který podrobně popisuje fungování architektury NAP, požadavky a omezení.
Povolte automatické zřizování uzlů (NAP) v clusteru AKS
Následující části vysvětlují, jak povolit architekturu NAP v novém nebo existujícím clusteru AKS:
Poznámka:
Můžete povolit metriky řídicí roviny, abyste viděli protokoly a operace z automatického zřizování uzlů pomocí spravované služby Azure Monitor pro doplněk Prometheus.
Povolit NAP na novém clusteru
Povolte automatické zřizování uzlů v novém clusteru pomocí příkazu
az aks createa nastavením příznaku--node-provisioning-modenaAuto. Následující příkaz také nastaví--network-pluginnaazure,--network-plugin-modenaoverlaya--network-dataplanenacilium.az aks create \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --node-provisioning-mode Auto \ --network-plugin azure \ --network-plugin-mode overlay \ --network-dataplane cilium \ --generate-ssh-keys
Vytvořte soubor s názvem
nap.jsona přidejte následující konfiguraci šablony ARM s polemproperties.nodeProvisioningProfile.modenastaveným na hodnotuAuto, která umožňuje NAP. (Výchozí nastavení jeManual.){ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "metadata": {}, "parameters": {}, "resources": [ { "type": "Microsoft.ContainerService/managedClusters", "apiVersion": "2025-05-01", "sku": { "name": "Base", "tier": "Standard" }, "name": "napcluster", "location": "uksouth", "identity": { "type": "SystemAssigned" }, "properties": { "networkProfile": { "networkPlugin": "azure", "networkPluginMode": "overlay", "networkPolicy": "cilium", "networkDataplane":"cilium", "loadBalancerSku": "Standard" }, "dnsPrefix": "napcluster", "agentPoolProfiles": [ { "name": "agentpool", "count": 3, "vmSize": "standard_d2s_v3", "osType": "Linux", "mode": "System" } ], "nodeProvisioningProfile": { "mode": "Auto" } } } ] }Povolte automatické zřizování uzlů v novém clusteru pomocí příkazu
az deployment group createa příznaku--template-filenastaveného na cestu k souboru šablony ARM.az deployment group create --resource-group $RESOURCE_GROUP --template-file ./nap.json
Povolit NAP na existujícím clusteru
Povolte automatické zřizování uzlů v existujícím clusteru pomocí příkazu
az aks updates příznakem--node-provisioning-modenastaveným naAuto.az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --node-provisioning-mode Auto
Zakázání automatického provisioningu uzlů (NAP) v AKS clusteru
Důležité
NAP můžete na clusteru zakázat pouze v případě splnění následujících podmínek:
- Neexistují žádné uzly NAP. Pomocí příkazu můžete
kubectl get nodes -l karpenter.sh/nodepoolzkontrolovat existující uzly spravované architekturou NAP. - Všechny existující Karpenter
NodePoolsmají svéspec.limits.cpupole nastavené na0. Tato akce zabrání vytvoření nových uzlů, ale nenaruší aktuálně spuštěné uzly.
Nastavte pole
spec.limits.cpuna0pro každý existující KarpenterNodePool. Například:apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: default spec: limits: cpu: 0Důležité
Pokud nechcete před zakázáním architektury NAP bezpečně migrovat všechny pody spuštěné na uzlu NAP, můžete přeskočit kroky 2 a 3 a místo toho použít
kubectl delete nodepříkaz pro každý uzel spravovaný architekturou NAP. Nicméně nedoporučujeme tyto kroky přeskočovat, protože by některé pody mohly zůstat v čekajícím stavu a nebudou respektovat rozpočty přerušení podů (PDB).Při použití
kubectl delete nodepříkazu dávejte pozor jenom na odstranění uzlů spravovaných architekturou NAP. Uzly spravované architekturoukubectl get nodes -l karpenter.sh/nodepoolNAP můžete identifikovat pomocí příkazu.Přidejte
karpenter.azure.com/disable:NoScheduletaint ke každému KarpenteruNodePool. Například:apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: default spec: template: spec: ... taints: - key: karpenter.azure.com/disable effect: NoScheduleTato akce spustí proces migrace úloh na uzlech spravovaných architekturou NAP na uzly bez architektury NAP, které dodržují limity souborů PDB a přerušení. Pody se migrují na uzly bez architektury NAP, pokud se dají přizpůsobit. Pokud není dostatek pevně stanovené kapacity, zůstanou některé uzly spravované NAP.
Navyšte kapacitu stávajících pevných velikostí
ManagedClusterAgentPoolsnebo vytvořte novou pevnou velikostAgentPools, která převezme zatížení ze spravovaných uzlů NAP. Při přidání těchto uzlů do clusteru se uzly spravované architekturou NAP vyprázdní a práce se migruje na uzly s pevnou velikostí.Pomocí příkazu
kubectl get nodes -l karpenter.sh/nodepoolodstraňte všechny NAP-spravované uzly. Pokud uzly spravované architekturou NAP stále existují, cluster pravděpodobně nemá kapacitu s pevnou velikostí. V takovém případě byste měli přidat další uzly, aby bylo možné migrovat zbývající úlohy.
Aktualizujte režim NAP na
Manualpomocí příkazu Azure CLIaz aks updates příznakem--node-provisioning-modenastaveným naManual.az aks update \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --node-provisioning-mode Manual
Aktualizujte pole
properties.nodeProvisioningProfile.modenaManualve vaší šabloně ARM a znovu ho nasaďte.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "metadata": {}, "parameters": {}, "resources": [ { "type": "Microsoft.ContainerService/managedClusters", "apiVersion": "2025-05-01", "sku": { "name": "Base", "tier": "Standard" }, "name": "napcluster", "location": "uksouth", "identity": { "type": "SystemAssigned" }, "properties": { "networkProfile": { "networkPlugin": "azure", "networkPluginMode": "overlay", "networkPolicy": "cilium", "networkDataplane":"cilium", "loadBalancerSku": "Standard" }, "dnsPrefix": "napcluster", "agentPoolProfiles": [ { "name": "agentpool", "count": 3, "vmSize": "standard_d2s_v3", "osType": "Linux", "mode": "System" } ], "nodeProvisioningProfile": { "mode": "Manual" } } } ] }
Automatické zřizování uzlů monitorování
Načtení protokolů a stavu Karpenteru
Z Karpenteru můžete načíst protokoly a aktualizace stavu, které vám pomůžou diagnostikovat a ladit události související s architekturou NAP. AKS spravuje automatické zřizování uzlů vaším jménem a spouští ho ve spravované řídicí rovině. Můžete povolit protokoly řídicí roviny, abyste viděli protokoly a operace Karpenteru z automatického zřizování uzlů. Další informace o protokolech řídicí roviny najdete v dokumentaci k protokolům řídicí roviny AKS.
Pomocí zde uvedených pokynů nastavte pravidlo pro protokoly prostředků, které bude přenášet protokoly automatického zřizování uzlů do Log Analytics. Nezapomeňte zaškrtnout políčko
node-auto-provisioningpři výběru možností pro protokoly.Vyberte oddíl Protokol ve vašem clusteru.
Do Log Analytics zadejte následující příklad dotazu:
AKSControlPlane | where Category == "karpenter-events"Zobrazení událostí automatického zřizování uzlů v CLI:
kubectl get events --field-selector source=karpenter-events
Metriky automatického zřizování uzlů
Můžete povolit měření řídicí roviny (Preview) pro zobrazení konkrétních metrik Karpenteru a operací z automatického zřizování uzlů pomocí spravované služby Azure Monitor pro doplněk Prometheus.
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: