Správa fondů uzlů pro cluster (AKS ve službě Azure Stack HCI 23H2)
Platí pro: Azure Stack HCI verze 23H2
Poznámka
Informace o správě fondů uzlů v AKS ve službě Azure Stack HCI 22H2 najdete v tématu Správa fondů uzlů.
V AKS povolené službou Azure Arc se uzly stejné konfigurace seskupují do fondů uzlů. Tyto fondy uzlů obsahují základní virtuální počítače, na kterých běží vaše aplikace. V tomto článku se dozvíte, jak vytvořit a spravovat fondy uzlů pro cluster v AKS Arc.
Vytvoření clusteru Kubernetes
Začněte vytvořením clusteru Kubernetes s jedním fondem uzlů:
az aksarc create -n <cluster name> -g <resource group> --custom-location <custom location Id> --vnet-ids <vnet id> --generate-ssh-keys --load-balancer-count <load balancer count>
Přidání fondu uzlů
Fond uzlů můžete přidat do existujícího clusteru az aksarc nodepool add
pomocí příkazu . Ujistěte se, že název fondu uzlů není stejný jako existující fond uzlů:
az aksarc nodepool add --name <node pool name> -g <resource group> --cluster-name <cluster name> --os-sku <Linux or Windows> --node-count <count> --node-vm-size <vm size>
Získání informací o konfiguraci fondu uzlů
Pokud chcete zobrazit konfiguraci fondů uzlů, použijte příkaz az aksarc nodepool show
:
az aksarc nodepool show --cluster-name <cluster name> -n <node pool name> -g <resource group>
Příklad výstupu:
{
"availabilityZones": null,
"count": 1,
"extendedLocation": null,
"id":
"/subscriptions/<subscription>/resourceGroups/edgeci-registration-rr1s46r1710<resource
group>/providers/Microsoft.Kubernetes/connectedClusters/<cluster
name>/providers/Microsoft.HybridContainerService/provisionedClusterInstances/default/agentPools/<nodepoolname>",
"location": "westeurope",
"name": "nodepoolname",
"nodeImageVersion": null,
"osSku": "CBLMariner",
"osType": "Linux",
"provisioningState": "Succeeded",
"resourceGroup": "resourcegroup",
"status": {
"errorMessage": null,
"operationStatus": null,
"readyReplicas": [
{
"count": 1,
"vmSize": "Standard\_A4\_v2"
}
]
},
"systemData": {
…
},
"tags": null,
"type":
"microsoft.hybridcontainerservice/provisionedclusterinstances/agentpools",
"vmSize": "Standard\_A4\_v2"
}
Určení maximálního počtu podů nasazených do fondu uzlů
Maximální počet podů, které lze nasadit do uzlu, můžete nakonfigurovat při vytváření clusteru nebo při vytváření nových fondů uzlů. Pokud při vytváření fondů uzlů nezadáte maxPods
, fond uzlů se nasadí s výchozí hodnotou maximálně 110 podů:
az aksarc nodepool add --cluster-name <cluster name> -n <node pool name> -g <resource group> --max-pods 50 --yes
Škálování fondu uzlů
Počet uzlů ve fondu uzlů můžete škálovat nahoru nebo dolů.
Pokud chcete škálovat počet uzlů ve fondu uzlů, použijte příkaz az aksarc nodepool scale
. Následující příklad škáluje počet uzlů na 2 ve fondu uzlů s názvem nodepool1
:
az aksarc nodepool scale --cluster-name <cluster name> -n nodepool1 -g <resource group> --node-count 2 --yes
Odstranění fondu uzlů
Pokud potřebujete odstranit fond uzlů, použijte příkaz az aksarc nodepool delete
:
az aksarc nodepool delete --cluster-name <cluster name> -n <node pool name> -g <resource group> --yes
Určení taintu nebo popisku pro fond uzlů
Když vytváříte fond uzlů, můžete do něj přidat tainty nebo popisky. Když přidáte taint nebo popisek, všechny uzly v daném fondu uzlů získají také tento taint nebo popisek.
Důležité
K uzlům pro celý fond uzlů byste měli přidat tainty nebo popisky pomocí az aksarc nodepool
. Nedoporučujeme používat kubectl
k použití taintů nebo popisků na jednotlivé uzly ve fondu uzlů.
Nastavení taintů fondu uzlů
Pomocí příkazu vytvořte fond uzlů s taintem
az aksarc nodepool add
. Zadejte názevtaintnp
a použijte--node-taints
parametr k zadánísku=gpu:NoSchedule
taintu:az aksarc nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name taintnp \ --node-count 1 \ --node-taints sku=gpu:NoSchedule \ --no-wait
Pomocí příkazu zkontrolujte stav fondu
az aksarc nodepool list
uzlů:az aksarc nodepool list -g myResourceGroup --cluster-name myAKSCluster
Následující příklad výstupu ukazuje, že
taintnp
fond uzlů vytváří uzly se zadaným parametremnodeTaints
:[ { ... "count": 1, ... "name": "taintnp", ... "provisioningState": "Succeeded", ... "nodeTaints": [ "sku=gpu:NoSchedule" ], ... }, ... ]
Informace o taintu jsou viditelné v Kubernetes pro zpracování pravidel plánování pro uzly. Plánovač Kubernetes může pomocí taintů a tolerací omezit, které úlohy můžou běžet na uzlech.
- Na uzel se použije taint , který označuje, že se na nich dají naplánovat jenom konkrétní pody.
- Na pod se pak použije tolerance , která jim umožní "tolerovat" taint uzlu.
Nastavení tolerance fondu uzlů
V předchozím kroku jste použili sku=gpu:NoSchedule
taint při vytváření fondu uzlů. Následující příklad manifestu YAML používá toleranci, která plánovači Kubernetes umožňuje spustit pod NGINX na uzlu v tomto fondu uzlů:
Vytvořte soubor s názvem nginx-toleration.yaml a zkopírujte a vložte následující příklad YAML:
apiVersion: v1 kind: Pod metadata: name: mypod spec: containers: - image: mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine name: mypod resources: requests: cpu: 100m memory: 128Mi limits: cpu: 1 memory: 2G tolerations: - key: "sku" operator: "Equal" value: "gpu" effect: "NoSchedule"
Naplánujte pod pomocí
kubectl apply
příkazu:kubectl apply -f nginx-toleration.yaml
Naplánování podu a načtení image NGINX trvá několik sekund.
Zkontrolujte stav pomocí
kubectl describe pod
příkazu:kubectl describe pod mypod
Následující zhuštěný příklad výstupu ukazuje, že
sku=gpu:NoSchedule
se používá tolerance. V části Události plánovač přiřadil podmoc-lbeof1gn6x3
uzlu:[...] Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s sku=gpu:NoSchedule Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 54s default-scheduler Successfully assigned default/mypod to moc-lbeof1gn6x3 Normal Pulling 53s kubelet Pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine" Normal Pulled 48s kubelet Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine" in 3.025148695s (3.025157609s including waiting) Normal Created 48s kubelet Created container Normal Started 48s kubelet Started container
Na uzlech v nástroji lze naplánovat pouze pody, u kterých je tato tolerance použitá.
taintnp
Všechny ostatní pody jsou naplánované ve fondu uzlů nodepool1 . Pokud vytvoříte více fondů uzlů, můžete pomocí taintů a tolerance omezit, které pody se dají na těchto prostředcích uzlů naplánovat.
Nastavení popisků fondu uzlů
Další informace najdete v tématu Použití popisků v clusteru AKS s podporou Azure Arc. ::: zone-end
Další kroky
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro