Sdílet prostřednictvím


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 taintnpa 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.yamla 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

Další kroky