Správa poolů uzlů pro cluster (AKS na Azure Local 22H2)
Platí pro: AKS v Azure Local 22H2, AKS na Windows Serveru
Poznámka:
Informace o správě fondů uzlů v AKS v Azure Local 23H2 najdete v tématu Správa fondů uzlů.
V AKS povolené službou Azure Arc 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. 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 tím, jak vytvářet a spravovat fondy více uzlů. V důsledku toho jsou pro operace vytváření, aktualizace a odstranění vyžadovány samostatné příkazy. Dříve byly operace clusteru prostřednictvím New-AksHciCluster nebo Set-AksHciCluster jedinou možností vytvořit nebo škálovat cluster s jedním fondem uzlů Windows a jedním fondem uzlů Linuxu. Tato funkce zveřejň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í v jednotlivých fondech uzlů.
Než začnete
Doporučujeme nainstalovat verzi 1.1.6. Pokud už máte nainstalovaný modul PowerShellu, 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 části 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 uzlů Linuxu s názvem linuxnodepool, který má 1 uzel. Pokud už máte cluster nasazený se starší verzí AKS a chcete pokračovat ve starém nasazení, můžete tento krok přeskočit. Pomocí nové sady příkazů fondu uzlů můžete do existujícího clusteru přidat další fond uzlů.
New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1 -osType linux
Poznámka:
Stará sada parametrů je New-AksHciCluster
stále podporovaná.
Přidání fondu uzlů
Cluster s názvem mycluster
*' vytvořený v předchozím kroku má jeden fond uzlů. K existujícímu clusteru můžete přidat druhý fond uzlů 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 žádný 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 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 k nasazení clusteru použijete nové sady New-AksHciCluster
parametrů a pak spustíte Get-AksHciCluster
získání informací o clusteru, vrátí se pole WindowsNodeCount
a LinuxNodeCount
ve výstupu 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ů můžete škálovat nahoru nebo dolů ve fondu uzlů.
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ů pojmenovaném linuxnodepool
v clusteru mycluster
.
Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3
Škálování uzlů řídicí roviny
Správa uzlů řídicí roviny se nezměnila. Způsob, jakým se vytvářejí, škálují a odebírají, zůstávají stejné. Uzly řídicí roviny 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, protože se mění poptávka po úlohách 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é byly vytvořeny 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ů pojmenovaný 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 fondu uzlů. Další informace o taintech a tolerancech najdete v tématu Kubernetes Taints a tolerance.
Nastavení taintů fondu uzlů
Pokud chcete vytvořit fond uzlů s taintem, použijte New-AksHciNodePool. Zadejte název taintnp
a pomocí parametru -taints
zadejte sku=gpu:noSchedule
pro taint.
New-AksHciNodePool -clusterName mycluster -name taintnp -count 1 -osType linux -taints sku=gpu:NoSchedule
Poznámka:
Taint lze 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
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 použili taint sku=gpu:NoSchedule při vytváření fondu uzlů. Následující základní příklad manifestu YAML používá tolerance, aby plánovač Kubernetes mohl spustit pod NGINX na uzlu v tomto 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