Usare le etichette in un cluster del servizio Azure Kubernetes (AKS)
Se sono presenti più pool di nodi, è possibile aggiungere un'etichetta durante la creazione del pool di nodi. Le etichette Kubernetes gestiscono le regole di pianificazione per i nodi. È possibile aggiungere le etichette a un pool di nodi in qualsiasi momento e applicarle a tutti i nodi del pool di nodi.
Questa guida pratica illustra come usare le etichette in un cluster del servizio Azure Kubernetes (AKS).
Prerequisiti
È necessario che sia installata e configurata l'interfaccia della riga di comando di Azure 2.2.0 o versione successiva. Eseguire az --version
per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
Creare un cluster del servizio Azure Kubernetes con un'etichetta
Creare un cluster del servizio Azure Kubernetes con un'etichetta usando il
az aks create
comando e specificare il--node-labels
parametro per impostare le etichette. Le etichette devono essere una coppia chiave/valore e avere una sintassi valida.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 2 \ --nodepool-labels dept=IT costcenter=9000 \ --generate-ssh-keys
Verificare che le etichette siano state impostate usando il
kubectl get nodes --show-labels
comando.kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
Creare un pool di nodi con un'etichetta
Creare un pool di nodi con un'etichetta usando il
az aks nodepool add
comando e specificare un nome per i--name
parametri e le etichette per il--labels
parametro. Le etichette devono essere una coppia chiave/valore e avere una sintassi validaIl comando di esempio seguente crea un pool di nodi denominato labelnp con le etichette dept=HR e 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'output di esempio seguente del
az aks nodepool list
comando mostra che il pool di nodi labelnp sta Creando nodi con i nodeLabels specificati:[ { ... "count": 1, ... "name": "labelnp", "orchestratorVersion": "1.15.7", ... "provisioningState": "Creating", ... "nodeLabels": { "costcenter": "5000", "dept": "HR" }, ... }, ... ]
Verificare che le etichette siano state impostate usando il
kubectl get nodes --show-labels
comando.kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
Aggiornamento delle etichette nei pool di nodi esistenti
Aggiornare un'etichetta in un pool di nodi esistente usando il
az aks nodepool update
comando. L'aggiornamento delle etichette nei pool di nodi esistenti sovrascrive le etichette precedenti con le nuove etichette. Le etichette devono essere una coppia chiave/valore e avere una sintassi valida.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name labelnp \ --labels dept=ACCT costcenter=6000 \ --no-wait
Verificare che le etichette siano state impostate usando il
kubectl get nodes --show-labels
comando.kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
Etichette non disponibili
Etichette di sistema riservate
Dal rilascio del servizio Azure Kubernetes 2021-08-19, il servizio Azure Kubernetes ha interrotto la possibilità di apportare modifiche alle etichette riservate del servizio Azure Kubernetes. Il tentativo di modificare queste etichette genera un messaggio di errore.
Le etichette seguenti sono etichette riservate del servizio Azure Kubernetes. L'utilizzo dei nodi virtuali specifica se queste etichette potrebbero essere una funzionalità di sistema supportata nei nodi virtuali. Alcune proprietà che queste funzionalità di sistema cambiano non sono disponibili nei nodi virtuali perché richiedono la modifica dell'host.
Etichetta | Valore | Esempio/Opzioni | Utilizzo dei nodi virtuali |
---|---|---|---|
kubernetes.azure.com/agentpool | <nome del pool di agenti> | nodepool1 | Uguali |
kubernetes.io/arch | amd64 | runtime.GOARCH | N/D |
kubernetes.io/os | <OS Type> (Tipo di sistema operativo) | Linux/Windows | Uguali |
node.kubernetes.io/instance-type | <Dimensioni macchina virtuale> | Standard_NC6s_v3 | Macchine |
topology.kubernetes.io/region | <Regione Azure> | westus2 | Uguali |
topology.kubernetes.io/zone | <zona di Azure> | 0 | Uguali |
kubernetes.azure.com/cluster | <MC_RgName> | MC_aks_myAKSCluster_westus2 | Uguali |
kubernetes.azure.com/mode | <mode> | Utente o sistema | User |
kubernetes.azure.com/role | agente | Agente | Uguali |
kubernetes.azure.com/scalesetpriority | <Priorità del set di scalabilità di macchine virtuali> | Spot o regolare | N/D |
kubernetes.io/hostname | <hostname> | aks-nodepool-00000000-vmss000000 | Uguali |
kubernetes.azure.com/storageprofile | <Profilo di archiviazione su disco del sistema operativo> | Gestito | N/D |
kubernetes.azure.com/storagetier | <Livello di archiviazione su disco del sistema operativo> | Premium_LRS | N/D |
kubernetes.azure.com/instance-sku | <Famiglia SKU> | Standard_N | Macchine |
kubernetes.azure.com/node-image-version | <Versione del disco rigido virtuale> | AKSUbuntu-1804-2020.03.05 | Versione del nodo virtuale |
kubernetes.azure.com/subnet | <nome subnet nodepool> | subnetName | Nome della subnet del nodo virtuale |
kubernetes.azure.com/vnet | <nome nodepool vnet> | vnetName | Rete virtuale del nodo virtuale |
kubernetes.azure.com/ppg | <nome nodepool ppg> | ppgName | N/D |
kubernetes.azure.com/encrypted-set | <nodepool encrypted-set name> | encrypted-set-name | N/D |
kubernetes.azure.com/accelerator | <acceleratore> | nvidia | N/D |
kubernetes.azure.com/fips_enabled | <è abilitato fips?> | true | N/D |
kubernetes.azure.com/os-sku | <os/sku> | Creare o aggiornare lo SKU del sistema operativo | Linux |
- Lo stesso è incluso nelle posizioni in cui i valori previsti per le etichette non differiscono tra un pool di nodi standard e un pool di nodi virtuali. Poiché i pod dei nodi virtuali non espongono alcuna macchina virtuale sottostante (VM), i valori dello SKU della macchina virtuale vengono sostituiti con lo SKU Virtuale.
- La versione del nodo virtuale fa riferimento alla versione attuale della versione rilasciata del connettore virtuale Kubelet-ACI.
- Il nome della subnet del nodo virtuale è il nome della subnet in cui i pod dei nodi virtuali vengono distribuiti nell'Istanza di contenitore di Azure (ACI).
- La rete virtuale del nodo virtuale è il nome della rete virtuale, che contiene la subnet in cui vengono distribuiti i pod dei nodi virtuali in ACI.
Prefissi riservati
I prefissi seguenti sono prefissi riservati del servizio Azure Kubernetes e non possono essere usati per alcun nodo:
- kubernetes.azure.com/
- kubernetes.io/
Per altre informazioni sui prefissi riservati, vedere Etichette note di Kubernetes, annotazioni e taints.
Etichette deprecate
Le etichette seguenti sono pianificate per la deprecazione con il rilascio di Kubernetes v1.24. Si suggerisce di modificare i riferimenti alle etichette con il sostituto consigliato.
Etichetta | Sostituzione consigliata | Gestore |
---|---|---|
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 | Servizio Azure Kubernetes |
kubernetes.io/role* | kubernetes.azure.com/role=agent | Servizio Azure Kubernetes |
Agentpool* | kubernetes.azure.com/agentpool | Servizio Azure Kubernetes |
Storageprofile* | kubernetes.azure.com/storageprofile | Servizio Azure Kubernetes |
Storagetier* | kubernetes.azure.com/storagetier | Servizio Azure Kubernetes |
Acceleratore* | kubernetes.azure.com/accelerator | Servizio Azure Kubernetes |
*Appena deprecato. Per maggiori informazioni, vedere le note sulla versione.
Passaggi successivi
Altre informazioni sulle etichette Kubernetes sono disponibili nella documentazione sulle etichette di Kubernetes.
Azure Kubernetes Service