Sdílet prostřednictvím


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