Správa fondů uzlů pro cluster (AKS ve službě Azure Stack HCI 22H2)
Platí pro: AKS ve Službě Azure Stack HCI 22H2, AKS na Windows Serveru
Poznámka
Informace o správě fondů uzlů v AKS ve službě Azure Stack HCI 23H2 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.
Poznámka
Tato funkce umožňuje větší kontrolu nad vytvářením a správou více fondů uzlů. V důsledku toho se pro operace vytvoření, aktualizace a odstranění vyžadují samostatné příkazy. Dříve byly operace clusteru prostřednictvím New-AksHciCluster nebo Set-AksHciCluster jedinou možností, jak vytvořit nebo škálovat cluster s jedním fondem uzlů Windows a jedním fondem uzlů Linuxu. Tato funkce zpřístupňuje samostatnou sadu operací pro fondy uzlů, které vyžadují použití příkazů fondu uzlů New-AksHciNodePool, Set-AksHciNodePool, Get-AksHciNodePool a Remove-AksHciNodePool ke spouštění operací s individuálním fondem uzlů.
Než začnete
Doporučujeme nainstalovat verzi 1.1.6. Pokud už máte modul PowerShellu nainstalovaný, vyhledejte verzi spuštěním následujícího příkazu:
Get-Command -Module AksHci
Pokud potřebujete aktualizovat PowerShell, postupujte podle pokynů v tématu Upgrade hostitele AKS.
Vytvoření clusteru AKS
Začněte vytvořením clusteru AKS s jedním fondem uzlů. Následující příklad používá příkaz New-AksHciCluster k vytvoření nového clusteru Kubernetes s jedním fondem linuxových uzlů s názvem linuxnodepool, který má 1 uzel. Pokud už máte cluster nasazený se starší verzí AKS a chcete dál používat staré nasazení, můžete tento krok přeskočit. Stále můžete použít novou sadu příkazů fondu uzlů k přidání dalšího fondu uzlů do existujícího clusteru.
New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1 -osType linux
Poznámka
Stará sada parametrů pro New-AksHciCluster
je stále podporována.
Přidání fondu uzlů
Cluster s názvem mycluster
*' vytvořený v předchozím kroku má jeden fond uzlů. Druhý fond uzlů můžete přidat do existujícího clusteru pomocí příkazu New-AksHciNodePool . Následující příklad vytvoří fond uzlů Windows s názvem windowsnodepool s jedním uzlem. Ujistěte se, že název fondu uzlů není stejný jako jakýkoli existující fond uzlů.
New-AksHciNodePool -clusterName mycluster -name windowsnodepool -count 1 -osType Windows -osSku Windows2022
Získání informací o konfiguraci fondu uzlů
Pokud chcete zobrazit informace o konfiguraci fondů uzlů, použijte příkaz Get-AksHciNodePool .
Get-AksHciNodePool -clusterName mycluster
Příklad výstupu:
ClusterName : mycluster
NodePoolName : linuxnodepool
Version : v1.20.7
OsType : Linux
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
ClusterName : mycluster
NodePoolName : windowsnodepool
Version : v1.20.7
OsType : Windows
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Pokud chcete zobrazit informace o konfiguraci jednoho konkrétního fondu uzlů, použijte -name
parametr v rutině Get-AksHciNodePool.
Get-AksHciNodePool -clusterName mycluster -name linuxnodepool
Příklad výstupu:
ClusterName : mycluster
NodePoolName : linuxnodepool
Version : v1.20.7
OsType : Linux
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Get-AksHciNodePool -clusterName mycluster -name windowsnodepool
Příklad výstupu:
ClusterName : mycluster
NodePoolName : windowsnodepool
Version : v1.20.7
OsType : Windows
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Poznámka
Pokud použijete nové sady parametrů v New-AksHciCluster
k nasazení clusteru a pak spuštěním příkazu Get-AksHciCluster
získáte informace o clusteru, pole WindowsNodeCount
a LinuxNodeCount
ve výstupu vrátí 0
. Pokud chcete získat přesný počet uzlů v každém fondu uzlů, použijte příkaz Get-AksHciNodePool
se zadaným názvem clusteru.
Š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 Set-AksHciNodePool . Následující příklad škáluje počet uzlů na 3 ve fondu uzlů s názvem linuxnodepool
v clusteru mycluster
.
Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3
Uzly řídicí roviny škálování
Správa uzlů řídicí roviny se nezměnila. Způsob jejich vytváření, škálování a odebírání zůstává stejný. Uzly řídicí roviny stále nasadíte pomocí příkazu New-AksHciCluster s parametry controlPlaneNodeCount
a controlPlaneVmSize
s výchozími hodnotami 1 a Standard_A4_V2, pokud nezadáte žádné hodnoty.
Možná budete muset škálovat uzly řídicí roviny s tím, jak se mění požadavky vašich aplikací. Pokud chcete škálovat uzly řídicí roviny, použijte příkaz Set-AksHciCluster . Následující příklad škáluje uzly řídicí roviny na 3 v mycluster
clusteru, který byl vytvořen v předchozích krocích.
Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3
Odstranění fondu uzlů
Pokud potřebujete odstranit fond uzlů, použijte příkaz Remove-AksHciNodePool . Následující příklad odebere fond uzlů s názvem windowsnodepool
z clusteru mycluster
.
Remove-AksHciNodePool -clusterName mycluster -name windowsnodepool
Určení taintu pro fond uzlů
Při vytváření fondu uzlů můžete do fondu uzlů přidat tainty. Když přidáte taint, získají tento taint také všechny uzly v rámci daného fondu uzlů. Další informace o taintech a snášencích najdete v tématu Ointy a tolerance Kubernetes.
Nastavení taintů fondu uzlů
Pokud chcete vytvořit fond uzlů s taintem, použijte New-AksHciNodePool. Zadejte název taintnp
a použijte -taints
parametr k zadání sku=gpu:noSchedule
taintu.
New-AksHciNodePool -clusterName mycluster -name taintnp -count 1 -osType linux -taints sku=gpu:NoSchedule
Poznámka
Taint je možné nastavit pouze pro fondy uzlů během vytváření fondu uzlů.
Spuštěním následujícího příkazu se ujistěte, že se fond uzlů úspěšně nasadil se zadaným taintem.
Get-AksHciNodePool -clusterName mycluster -name taintnp
Výstup
Status : {Phase, Details}
ClusterName : mycluster
NodePoolName : taintnp
Version : v1.20.7-kvapkg.1
OsType : Linux
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Taints : {sku=gpu:NoSchedule}
V předchozím kroku jste při vytváření fondu uzlů použili taint sku=gpu:NoSchedule . Následující základní příklad manifestu YAML používá toleranci, která plánovači Kubernetes umožňuje spustit pod NGINX na uzlu v daném fondu uzlů.
Vytvořte soubor s názvem nginx-toleration.yaml
a zkopírujte informace v následujícím textu.
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"
Pak naplánujte pod pomocí následujícího příkazu.
kubectl apply -f nginx-toleration.yaml
Pokud chcete ověřit, že byl pod nasazený, spusťte následující příkaz:
kubectl describe pod mypod
[...]
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 32s default-scheduler Successfully assigned default/mypod to moc-lk4iodl7h2y
Normal Pulling 30s kubelet Pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine"
Normal Pulled 26s kubelet Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine" in 4.529046457s
Normal Created 26s kubelet Created container mypod