Compartir vía


Usar etiquetas en un clúster de Azure Kubernetes Service (AKS)

Si tiene varios grupos de nodos, puede agregar una etiqueta durante la creación del grupo de nodos. Las etiquetas de Kubernetes controlan las reglas de programación de los nodos. Puede agregar etiquetas a un grupo de nodos en cualquier momento y aplicarlas a todos los nodos del grupo de nodos.

En esta guía paso a paso, aprenderá a usar etiquetas en un clúster de Azure Kubernetes Service (AKS).

Requisitos previos

Es preciso que esté instalada y configurada la versión 2.2.0 de la CLI de Azure, o cualquier otra posterior. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

Creación de un clúster de AKS con una etiqueta

  1. Cree un clúster de AKS con una etiqueta con el comando az aks create y especifique el parámetro --node-labels para establecer las etiquetas. Las etiquetas deben ser un par clave-valor y tener una sintaxis válida.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 2 \
        --nodepool-labels dept=IT costcenter=9000 \
        --generate-ssh-keys
    
  2. Compruebe que las etiquetas se han establecido con el comando kubectl get nodes --show-labels.

    kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
    

Creación de un grupo de nodos con una etiqueta

  1. Cree un grupo de nodos con una etiqueta con el comando az aks nodepool add y especifique un nombre para los parámetros --name y las etiquetas del parámetro --labels. Las etiquetas deben ser un par clave-valor y tener una sintaxis válida

    El siguiente comando de ejemplo crea un grupo de nodos denominado labelnp con las etiquetas dept=HR y costcenter=5000.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name labelnp \
        --node-count 1 \
        --labels dept=HR costcenter=5000 \
        --no-wait
    

    En la siguiente salida de ejemplo del comando az aks nodepool list se puede ver que el grupo de nodos labelnp está Creando nodos con el valor nodeLabels especificado:

    [
      {
        ...
        "count": 1,
        ...
        "name": "labelnp",
        "orchestratorVersion": "1.15.7",
        ...
        "provisioningState": "Creating",
        ...
        "nodeLabels":  {
          "costcenter": "5000",
          "dept": "HR"
        },
        ...
      },
     ...
    ]
    
  2. Compruebe que las etiquetas se han establecido con el comando kubectl get nodes --show-labels.

    kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
    

Actualización de etiquetas en grupos de nodos existentes

  1. Actualice una etiqueta en un grupo de nodos existente mediante el comando az aks nodepool update. La actualización de etiquetas en grupos de nodos existentes sobrescribe las etiquetas antiguas con las nuevas etiquetas. Las etiquetas deben ser un par clave-valor y tener una sintaxis válida.

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name labelnp \
        --labels dept=ACCT costcenter=6000 \
        --no-wait
    
  2. Compruebe que las etiquetas se han establecido con el comando kubectl get nodes --show-labels.

    kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
    

Etiquetas no disponibles

Etiquetas reservadas del sistema

Desde la versión 2021-08-19 de AKS, AKS ha detenido la capacidad de hacer cambios en las etiquetas reservadas de AKS. Si intenta cambiar estas etiquetas, se produce un mensaje de error.

Las etiquetas siguientes son etiquetas reservadas de AKS. El uso del nodo virtual especifica si estas etiquetas podrían ser una característica del sistema admitida en los nodos virtuales. Algunas propiedades que cambian estas características del sistema no están disponibles en los nodos virtuales, ya que requieren modificar el host.

Etiqueta Value Ejemplo/Opciones Uso del nodo virtual
kubernetes.azure.com/agentpool <nombre del grupo de agentes> nodepool1 Iguales
kubernetes.io/arch AMD64 runtime.GOARCH N/D
kubernetes.io/os <OS Type> (Tipo de SO) Linux y Windows Iguales
node.kubernetes.io/instance-type <Tamaño de VM> Standard_NC6s_v3 Las máquinas
topology.kubernetes.io/region <Región de Azure> westus2 Iguales
topology.kubernetes.io/zone <Zona de Azure> 0 Iguales
kubernetes.azure.com/cluster <MC_RgName> MC_aks_myAKSCluster_westus2 Iguales
kubernetes.azure.com/mode <mode> Usuario o sistema Usuario
kubernetes.azure.com/role agente Agente Iguales
kubernetes.azure.com/scalesetpriority <Prioridad de VMSS> De acceso puntual o regular N/D
kubernetes.io/hostname <hostname> aks-nodepool-00000000-vmss000000 Iguales
kubernetes.azure.com/storageprofile <Perfil de almacenamiento en disco del sistema operativo> Administrado N/D
kubernetes.azure.com/storagetier <Nivel de almacenamiento de disco del sistema operativo> Premium_LRS N/D
kubernetes.azure.com/instance-sku <Sku Family> (Familia de SKU) Standard_N Las máquinas
kubernetes.azure.com/node-image-version <Versión del disco duro virtual> AKSUbuntu-1804-2020.03.05 Versión del nodo virtual
kubernetes.azure.com/subnet <nombre de subred del grupo de nodos> subnetName Nombre de subred del nodo virtual
kubernetes.azure.com/vnet <nombre de red virtual del grupo de nodos> vnetName Red virtual de nodo virtual
kubernetes.azure.com/ppg <nombre ppg del grupo de nodos> ppgName N/D
kubernetes.azure.com/encrypted-set <nombre de conjunto cifrado del grupo de nodos> encrypted-set-name N/D
kubernetes.azure.com/accelerator <acelerador> nvidia N/D
kubernetes.azure.com/fips_enabled <¿Está habilitado fips?> true N/D
kubernetes.azure.com/os-sku <os/sku> Crear o actualizar SKU de sistema operativo Linux
  • Lo mismo se incluye en los lugares donde los valores esperados para las etiquetas no difieren entre un grupo de nodos estándar y un grupo de nodos virtual. Dado que los pods de nodo virtual no exponen ninguna máquina virtual (VM) subyacente, los valores de SKU de máquina virtual se reemplazan por la SKU Virtual.
  • La versión del nodo virtual hace referencia a la versión actual de la versión del conector virtual de Kubelet-ACI.
  • El nombre de subred del nodo virtual es el nombre de la subred donde se implementan los pods de nodo virtual en Azure Container Instance (ACI).
  • Red virtual de nodo virtual es el nombre de la red virtual, que contiene la subred donde se implementan pods de nodo virtual en ACI.

Prefijos reservados

Los siguientes prefijos son prefijos reservados de AKS y no pueden utilizarse para ningún nodo:

  • kubernetes.azure.com/
  • kubernetes.io/

Para obtener más información sobre prefijos reservados, consulte Etiquetas, anotaciones y marcas conocidas de Kubernetes.

Etiquetas en desuso

Las siguientes etiquetas están previstas para desuso con el lanzamiento de Kubernetes v1.24. Debe cambiar las referencias de etiqueta al sustituto recomendado.

Etiqueta Sustituto recomendado Responsable de mantenimiento
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

*Recién en desuso. Para más información, consulte las notas de la versión.

Pasos siguientes

Más información sobre las etiquetas de Kubernetes en la documentación de etiquetas de Kubernetes.