Gérer des pools de nœuds pour un cluster (AKS sur Azure Stack HCI 22H2)
S’applique à : AKS sur Azure Stack HCI 22H2, AKS sur Windows Server
Notes
Pour plus d’informations sur la gestion des pools de nœuds dans AKS sur Azure Stack HCI 23H2, consultez Gérer les pools de nœuds.
Dans AKS activé par Azure Arc, les nœuds de la même configuration sont regroupés dans des pools de nœuds. Ces pools de nœuds contiennent les machines virtuelles sous-jacentes qui exécutent vos applications. Cet article vous montre comment créer et gérer des pools de nœuds pour un cluster dans AKS Arc.
Notes
Cette fonctionnalité permet de mieux contrôler la création et la gestion de plusieurs pools de nœuds. Par conséquent, des commandes distinctes sont requises pour les opérations de création, de mise à jour et de suppression. Auparavant, les opérations de cluster via New-AksHciCluster ou Set-AksHciCluster étaient la seule option permettant de créer ou de mettre à l’échelle un cluster avec un pool de nœuds Windows et un pool de nœuds Linux. Cette fonctionnalité propose une opération distincte définie pour les pools de nœuds qui requièrent l’utilisation des commandes de pool de nœuds New-AksHciNodePool, Set-AksHciNodePool, AksHciNodePool et Remove-AksHciNodePool pour exécuter des opérations sur un pool de nœuds individuel.
Avant de commencer
Nous vous recommandons d’installer la version 1.1.6. Si le module PowerShell est déjà installé, exécutez la commande suivante pour rechercher la version :
Get-Command -Module AksHci
Si vous devez mettre à jour PowerShell, suivez les instructions fournies dans Mettre à niveau l’hôte AKS.
Créer un cluster AKS
Pour commencer, créez un cluster AKS avec un pool de nœuds unique. L’exemple suivant utilise la commande New-AksHciCluster pour créer un cluster Kubernetes avec un pool de nœuds Linux nommé linuxnodepool, qui a 1 nœud. Si vous avez déjà déployé un cluster avec une version antérieure d’AKS et que vous souhaitez continuer à utiliser votre ancien déploiement, vous pouvez ignorer cette étape. Vous pouvez toujours utiliser le nouvel ensemble de commandes de pool de nœuds pour ajouter un pool de nœuds à votre cluster existant.
New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1 -osType linux
Notes
L’ancien paramètre défini pour New-AksHciCluster
est toujours pris en charge.
Ajouter un pool de nœuds
Le cluster nommé mycluster
*', créé à l’étape précédente, a un pool de nœuds unique. Vous pouvez ajouter un deuxième pool de nœuds au cluster existant à l’aide de la commande New-AksHciNodePool . L’exemple suivant crée un pool de nœuds Windows nommé windowsnodepool avec un nœud. Assurez-vous que le nom du pool de nœuds n’est pas le même nom que n’importe quel pool de nœuds existant.
New-AksHciNodePool -clusterName mycluster -name windowsnodepool -count 1 -osType Windows -osSku Windows2022
Obtenir les informations de configuration d’un pool de nœuds
Pour afficher les informations de configuration de vos pools de nœuds, utilisez la commande Get-AksHciNodePool.
Get-AksHciNodePool -clusterName mycluster
Exemple de sortie :
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
Pour afficher les informations de configuration d’un pool de nœuds spécifique, utilisez le -name
paramètre dans Get-AksHciNodePool.
Get-AksHciNodePool -clusterName mycluster -name linuxnodepool
Exemple de sortie :
ClusterName : mycluster
NodePoolName : linuxnodepool
Version : v1.20.7
OsType : Linux
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Get-AksHciNodePool -clusterName mycluster -name windowsnodepool
Exemple de sortie :
ClusterName : mycluster
NodePoolName : windowsnodepool
Version : v1.20.7
OsType : Windows
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Notes
Si vous utilisez les nouveaux ensemble de paramètres dans New-AksHciCluster
pour déployer un cluster, puis exécutez Get-AksHciCluster
pour obtenir les informations de cluster ; les champs WindowsNodeCount
et LinuxNodeCount
retournent 0
dans la sortie. Pour obtenir le nombre précis de nœuds dans chaque pool de nœuds, utilisez la commande Get-AksHciNodePool
avec le nom de cluster spécifié.
Mettre à l'échelle un pool de nœuds
Vous pouvez mettre à l’échelle le nombre de nœuds à la hausse ou à la baisse dans un pool de nœuds.
Pour mettre à l’échelle le nombre de nœuds dans un pool de nœuds, utilisez la commande Set-AksHciNodePool. L’exemple suivant met à l’échelle le nombre de nœuds à 3 dans un pool de nœuds nommé linuxnodepool
dans le mycluster
cluster.
Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3
Mettre à l’échelle les nœuds de plan de contrôle
La gestion des nœuds du plan de contrôle n’a pas changé. La façon dont ils sont créés, mis à l’échelle et supprimés reste inchangée. Vous allez toujours déployer des nœuds de plan de contrôle avec la commande New-AksHciCluster avec les paramètres controlPlaneNodeCount
et controlPlaneVmSize
avec les valeurs par défaut de 1 et Standard_A4_V2, respectivement, si vous ne fournissez aucune valeur.
Vous devrez peut-être mettre à l’échelle les nœuds du plan de contrôle au fil des changements de la charge de travail de vos applications. Utilisez la commande Set-AksHciCluster pour mettre à l’échelle les nœuds du plan de contrôle. L’exemple suivant met à l’échelle les nœuds du plan de contrôle à 3 dans mycluster
le cluster, qui a été créé aux étapes précédentes.
Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3
Supprimer un pool de nœuds
Si vous devez supprimer un pool de nœuds, utilisez la commande Remove-AksHciNodePool. L’exemple suivant supprime du cluster le pool de mycluster
nœuds nomméwindowsnodepool
.
Remove-AksHciNodePool -clusterName mycluster -name windowsnodepool
Spécifier une aversion pour un pool de nœuds
Lors de la création d’un pool de nœuds, vous pouvez lui ajouter des aversions. Quand vous ajoutez une aversion, tous les nœuds du pool reçoivent cette aversion. Pour plus d’informations sur les aversions et les tolérances, consultez Aversions et tolérances de Kubernetes.
Définition des aversions d’un pool de nœuds
Pour créer un pool de nœuds avec une aversion, utilisez New-AksHciNodePool. Spécifiez le nom taintnp
et utilisez le -taints
paramètre à spécifier sku=gpu:noSchedule
pour la teinte.
New-AksHciNodePool -clusterName mycluster -name taintnp -count 1 -osType linux -taints sku=gpu:NoSchedule
Notes
Une teinte ne peut être définie pour un pool de nœuds que pendant la création de celui-ci.
Exécutez la commande suivante pour vous assurer que le pool de nœuds a été correctement déployé avec la teinte spécifiée.
Get-AksHciNodePool -clusterName mycluster -name taintnp
Sortie
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}
À l’étape précédente, vous avez appliqué la teinte sku=gpu:NoSchedule lorsque vous avez créé votre pool de nœuds. L’exemple de manifeste YAML de base suivant utilise une tolérance pour autoriser le planificateur Kubernetes à exécuter un pod NGINX sur un nœud de ce pool de nœuds.
Créez un fichier nommé nginx-toleration.yaml
et copiez les informations dans le texte suivant.
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"
Ensuite, planifiez le pod à l’aide de la commande suivante.
kubectl apply -f nginx-toleration.yaml
Pour vérifier que le pod a été déployé, exécutez la commande suivante :
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