Utiliser des étiquettes dans un cluster Azure Kubernetes Service (AKS)
Si vous avez plusieurs pools de nœuds, vous pouvez ajouter une étiquette lors de la création d’un pool de nœuds. Les étiquettes Kubernetes gèrent les règles de planification pour les nœuds. Vous pouvez ajouter des étiquettes à un pool de nœuds à tout moment et les appliquer à tous les nœuds du pool.
Dans ce guide pratique, vous allez découvrir comment utiliser des étiquettes dans un cluster Azure Kubernetes Service (AKS).
Prérequis
La version 2.2.0 (ou ultérieure) d’Azure CLI doit être installée et configurée. Exécutez az --version
pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
Créer un cluster AKS avec une étiquette
Créez un cluster AKS avec une étiquette à l’aide de la commande
az aks create
et spécifiez le paramètre--node-labels
pour définir vos étiquettes. Les intitulés doivent constituer une paire clé/valeur et avoir une syntaxe valide.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 2 \ --nodepool-labels dept=IT costcenter=9000 \ --generate-ssh-keys
Vérifiez que les étiquettes ont été définies à l’aide de la commande
kubectl get nodes --show-labels
.kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
Créer un pool de nœuds avec une étiquette
Créez un pool de nœuds avec une étiquette à l’aide de la commande
az aks nodepool add
et spécifiez un nom pour le paramètre--name
et des étiquettes pour le paramètre--labels
. Les étiquettes doivent être une paire clé/valeur et avoir une syntaxe valide.L’exemple de commande suivant crée un pool de nœuds nommé labelnp avec les étiquettes dept=HR et costcenter=5000.
az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name labelnp \ --node-count 1 \ --labels dept=HR costcenter=5000 \ --no-wait
L’exemple de sortie suivant de la commande
az aks nodepool list
montre que le pool de nœuds labelnp crée (Creating) des nœuds avec les étiquettes (nodeLabels) spécifiées :[ { ... "count": 1, ... "name": "labelnp", "orchestratorVersion": "1.15.7", ... "provisioningState": "Creating", ... "nodeLabels": { "costcenter": "5000", "dept": "HR" }, ... }, ... ]
Vérifiez que les étiquettes ont été définies à l’aide de la commande
kubectl get nodes --show-labels
.kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
Mise à jour d’étiquettes sur des pools de nœuds existants
Mettez à jour une étiquette sur un pool de nœuds existant à l’aide de la commande
az aks nodepool update
. La mise à jour d’étiquettes sur des pools de nœuds existants remplace les anciennes étiquettes par de nouvelles. Les intitulés doivent constituer une paire clé/valeur et avoir une syntaxe valide.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name labelnp \ --labels dept=ACCT costcenter=6000 \ --no-wait
Vérifiez que les étiquettes ont été définies à l’aide de la commande
kubectl get nodes --show-labels
.kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
Étiquettes non disponibles
Étiquettes système réservées
Depuis la version d’AKS 2021-08-19, AKS a supprimé la possibilité d’apporter des modifications aux étiquettes réservées d’AKS. Toute tentative de modifier ces étiquettes entraîne l’affichage d’un message d’erreur.
Les étiquettes suivantes sont des étiquettes réservées d’AKS. Utilisation de nœud virtuel spécifie si ces étiquettes pourraient être une fonctionnalité système prise en charge sur des nœuds virtuels. Certaines propriétés que ces fonctionnalités système modifient ne sont pas disponibles sur les nœuds virtuels, car elles nécessitent une modification de l’hôte.
Étiquette | Value | Exemples/options | Utilisation de nœud virtuel |
---|---|---|---|
kubernetes.azure.com/agentpool | <Nom de pool d'agents> | nodepool1 | Identique |
kubernetes.io/arch | amd64 | runtime.GOARCH | N/A |
kubernetes.io/os | <OS Type> | Linux/Windows | Identique |
node.kubernetes.io/instance-type | <Taille de la machine virtuelle> | Standard_NC6s_v3 | Les machines |
topology.kubernetes.io/region | <Région Azure> | westus2 | Identique |
topology.kubernetes.io/zone | <Azure zone> | 0 | Identique |
kubernetes.azure.com/cluster | <MC_RgName> | MC_aks_myAKSCluster_westus2 | Identique |
kubernetes.azure.com/mode | <mode> | Utilisateur ou système | Utilisateur |
kubernetes.azure.com/role | agent | Agent | Identique |
kubernetes.azure.com/scalesetpriority | <Priorité de VMSS> | Spot ou normale | N/A |
kubernetes.io/hostname | <hostname> | aks-nodepool-00000000-vmss000000 | Identique |
kubernetes.azure.com/storageprofile | <Profil de stockage de disque de système d’exploitation> | Adresses IP gérées | N/A |
kubernetes.azure.com/storagetier | <Niveau de stockage de disque de système d’exploitation> | Premium_LRS | N/A |
kubernetes.azure.com/instance-sku | <Famille de références SKU> | Standard_N | Les machines |
kubernetes.azure.com/node-image-version | <VHD version> | AKSUbuntu-1804-2020.03.05 | Version du nœud virtuel |
kubernetes.azure.com/subnet | <nom de sous-réseau de pool de nœuds> | subnetName | Nom de sous-réseau de nœud virtuel |
kubernetes.azure.com/vnet | <nom de réseau virtuel de pool de nœuds> | vnetName | Réseau virtuel de nœud virtuel |
kubernetes.azure.com/ppg | <nom de pgg de pool de nœuds> | ppgName | N/A |
kubernetes.azure.com/encrypted-set | <nom d’ensemble chiffré de pool de nœuds> | encrypted-set-name | N/A |
kubernetes.azure.com/accelerator | <accélérateur> | nvidia | N/A |
kubernetes.azure.com/fips_enabled | <fips est-il activé ?> | true | N/A |
kubernetes.azure.com/os-sku | <os/sku> | Créer ou mettre à jour une référence SKU de système d’exploitation | Linux |
- Même est inclus dans des emplacements où les valeurs attendues pour les étiquettes ne diffèrent pas entre un pool de nœuds standard et un pool de nœuds virtuels. Comme les pods de nœuds virtuels n’exposent pas de machine virtuelle sous-jacente, les valeurs de référence SKU de machine virtuelle sont remplacées par la référence SKU Virtuelle.
- Version du nœud virtuel fait référence à la version actuelle de la version du connecteur Kubelet-ACI virtuel.
- Nom du sous-réseau de nœuds virtuels est le nom du sous-réseau dans lequel des pod de nœuds virtuels sont déployés dans Azure Container instance (ACI).
- Réseau virtuel de nœuds virtuels est le nom du réseau virtuel qui contient le sous-réseau dans lequel des pods de nœuds virtuels sont déployés sur ACI.
Préfixes réservés
Les préfixes suivants sont des préfixes réservés d’AKS qui ne peuvent pas être utilisés avec un nœud :
- kubernetes.azure.com/
- kubernetes.io/
Pour plus d’informations sur les préfixes réservés, consultez l’article Well-Known Labels, Annotations and Taints (en anglais uniquement).
Étiquettes désapprouvées
La désapprobation des étiquettes suivantes est prévue avec la version de Kubernetes v 1.24. Vous devez modifier les références d’étiquette par le remplacement recommandé.
Étiquette | Remplacement recommandé | Gestionnaire |
---|---|---|
failure-domain.beta.kubernetes.io/region | topology.kubernetes.io/region | Kubernetes |
failure-domain.beta.kubernetes.io/zone | topology.kubernetes.io/zone | Kubernetes |
beta.kubernetes.io/arch | kubernetes.io/arch | Kubernetes |
beta.kubernetes.io/instance-type | node.kubernetes.io/instance-type | Kubernetes |
beta.kubernetes.io/os | kubernetes.io/os | Kubernetes |
node-role.kubernetes.io/agent* | kubernetes.azure.com/role=agent | Azure Kubernetes Service |
kubernetes.io/role* | kubernetes.azure.com/role=agent | Azure Kubernetes Service |
Agentpool* | kubernetes.azure.com/agentpool | Azure Kubernetes Service |
Storageprofile* | kubernetes.azure.com/storageprofile | Azure Kubernetes Service |
Storagetier* | kubernetes.azure.com/storagetier | Azure Kubernetes Service |
Accelerator* | kubernetes.azure.com/accelerator | Azure Kubernetes Service |
*Récemment désapprouvé. Pour plus d’informations, consultez les notes de publication.
Étapes suivantes
En savoir plus sur les étiquettes Kubernetes dans la documentation sur les étiquettes Kubernetes.
Azure Kubernetes Service