Delen via


Knooppuntgroepen voor een cluster beheren (AKS in Azure Local 22H2)

Van toepassing op: AKS in Azure Local 22H2, AKS op Windows Server

Notitie

Zie Knooppuntgroepen beherenvoor meer informatie over het beheren van knooppuntgroepen in AKS in Azure Local 23H2.

In AKS die door Azure Arc is ingeschakeld, worden knooppunten van dezelfde configuratie gegroepeerd in knooppuntgroepen. Deze knooppuntgroepen bevatten de onderliggende VM's waarop uw toepassingen worden uitgevoerd. In dit artikel leest u hoe u knooppuntgroepen voor een cluster in AKS Arc maakt en beheert.

Notitie

Met deze functie hebt u meer controle over het maken en beheren van meerdere knooppuntgroepen. Als gevolg hiervan zijn afzonderlijke opdrachten vereist voor het maken, bijwerken en verwijderen van bewerkingen. Voorheen waren clusterbewerkingen via New-AksHciCluster of Set-AksHciCluster de enige optie om een cluster te maken of te schalen met één Windows-knooppuntgroep en één Linux-knooppuntgroep. Deze functie maakt een afzonderlijke bewerkingsset beschikbaar voor knooppuntgroepen waarvoor het gebruik van de knooppuntgroepopdrachten New-AksHciNodePool, Set-AksHciNodePool, Get-AksHciNodePool en Remove-AksHciNodePool nodig is om bewerkingen uit te voeren op een afzonderlijke knooppuntgroep.

Voordat u begint

U wordt aangeraden versie 1.1.6 te installeren. Als u de PowerShell-module al hebt geïnstalleerd, voert u de volgende opdracht uit om de versie te vinden:

Get-Command -Module AksHci

Als u PowerShell wilt bijwerken, volgt u de instructies in De AKS-host upgraden.

Een AKS-cluster maken

Maak eerst een AKS-cluster met één knooppuntgroep. In het volgende voorbeeld wordt de opdracht New-AksHciCluster gebruikt om een nieuw Kubernetes-cluster te maken met één Linux-knooppuntgroep met de naam linuxnodepool, die 1 knooppunt heeft. Als u al een cluster hebt geïmplementeerd met een oudere versie van AKS en u uw oude implementatie wilt blijven gebruiken, kunt u deze stap overslaan. U kunt nog steeds de nieuwe set knooppuntgroepopdrachten gebruiken om meer knooppuntgroepen toe te voegen aan uw bestaande cluster.

New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1 -osType linux

Notitie

De oude parameterset voor New-AksHciCluster wordt nog steeds ondersteund.

Een knooppuntgroep toevoegen

Het cluster met de naam mycluster*, dat in de vorige stap is gemaakt, heeft één knooppuntgroep. U kunt een tweede knooppuntgroep toevoegen aan het bestaande cluster met behulp van de opdracht New-AksHciNodePool . In het volgende voorbeeld wordt een Windows-knooppuntgroep met de naam windowsnodepool gemaakt met één knooppunt. Zorg ervoor dat de naam van de knooppuntgroep niet dezelfde naam heeft als een bestaande knooppuntgroep.

New-AksHciNodePool -clusterName mycluster -name windowsnodepool -count 1 -osType Windows -osSku Windows2022

Configuratiegegevens van een knooppuntgroep ophalen

Gebruik de opdracht Get-AksHciNodePool om de configuratiegegevens van uw knooppuntgroepen weer te geven.

Get-AksHciNodePool -clusterName mycluster

Voorbeelduitvoer:

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

Als u de configuratiegegevens van één specifieke knooppuntgroep wilt bekijken, gebruikt u de -name parameter in Get-AksHciNodePool.

Get-AksHciNodePool -clusterName mycluster -name linuxnodepool

Voorbeelduitvoer:

ClusterName  : mycluster
NodePoolName : linuxnodepool
Version      : v1.20.7
OsType       : Linux
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed
Get-AksHciNodePool -clusterName mycluster -name windowsnodepool

Voorbeelduitvoer:

ClusterName  : mycluster
NodePoolName : windowsnodepool
Version      : v1.20.7
OsType       : Windows
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed

Notitie

Als u de nieuwe parametersets gebruikt New-AksHciCluster om een cluster te implementeren en vervolgens uit te voeren Get-AksHciCluster om de clustergegevens op te halen, worden de velden WindowsNodeCount en LinuxNodeCount in de uitvoer geretourneerd 0. Als u het nauwkeurige aantal knooppunten in elke knooppuntgroep wilt ophalen, gebruikt u de opdracht Get-AksHciNodePool met de opgegeven clusternaam.

Een knooppuntgroep schalen

U kunt het aantal knooppunten omhoog of omlaag schalen in een knooppuntgroep.

Als u het aantal knooppunten in een knooppuntgroep wilt schalen, gebruikt u de opdracht Set-AksHciNodePool . In het volgende voorbeeld wordt het aantal knooppunten geschaald naar 3 in een knooppuntgroep met de naam linuxnodepool in het mycluster cluster.

Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3

Knooppunten van besturingsvlak schalen

Het beheer van besturingsvlakknooppunten is niet gewijzigd. De manier waarop ze worden gemaakt, geschaald en verwijderd, blijft hetzelfde. U implementeert nog steeds besturingsvlakknooppunten met de opdracht New-AksHciCluster met de parameters controlPlaneNodeCount en controlPlaneVmSize met de standaardwaarden van respectievelijk 1 en Standard_A4_V2 als u geen waarden opgeeft.

Mogelijk moet u de knooppunten van het besturingsvlak schalen wanneer de workloadvraag van uw toepassingen verandert. Als u de knooppunten van het besturingsvlak wilt schalen, gebruikt u de opdracht Set-AksHciCluster . In het volgende voorbeeld worden de besturingsvlakknooppunten geschaald naar 3 in mycluster het cluster, dat in de vorige stappen is gemaakt.

Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3

Een knooppuntgroep verwijderen

Als u een knooppuntgroep wilt verwijderen, gebruikt u de opdracht Remove-AksHciNodePool . In het volgende voorbeeld wordt de knooppuntgroep met de naam windowsnodepool uit het mycluster cluster verwijderd.

Remove-AksHciNodePool -clusterName mycluster -name windowsnodepool

Een taint opgeven voor een knooppuntgroep

Wanneer u een knooppuntgroep maakt, kunt u taints toevoegen aan die knooppuntgroep. Wanneer u een taint toevoegt, krijgen alle knooppunten in die knooppuntgroep die taint ook. Zie Kubernetes Taints en Tolerations voor meer informatie over taints en toleraties.

Taints voor knooppuntgroepen instellen

Als u een knooppuntgroep met een taint wilt maken, gebruikt u New-AksHciNodePool. Geef de naam taintnpop en gebruik de -taints parameter om op te geven sku=gpu:noSchedule voor de taint.

New-AksHciNodePool -clusterName mycluster -name taintnp -count 1 -osType linux -taints sku=gpu:NoSchedule

Notitie

Een taint kan alleen worden ingesteld voor knooppuntgroepen tijdens het maken van een knooppuntgroep.

Voer de volgende opdracht uit om te controleren of de knooppuntgroep is geïmplementeerd met de opgegeven taint.

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}

In de vorige stap hebt u de sku=gpu:NoSchedule taint toegepast toen u de knooppuntgroep maakte. In het volgende basisvoorbeeld van het YAML-manifest wordt een tolerantie gebruikt om de Kubernetes scheduler toe te staan een NGINX-pod uit te voeren op een knooppunt in die knooppuntgroep.

Maak een bestand met de naam nginx-toleration.yamlen kopieer de informatie in de volgende tekst.

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"

Plan vervolgens de pod met behulp van de volgende opdracht.

kubectl apply -f nginx-toleration.yaml

Voer de volgende opdracht uit om te controleren of de pod is geïmplementeerd:

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

Volgende stappen