Condividi tramite


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

  1. 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
    
  2. 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

  1. 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 valida

    Il 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"
        },
        ...
      },
     ...
    ]
    
  2. 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

  1. 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
    
  2. 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.