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 taintnp
op 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.yaml
en 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