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
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
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
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álidaEl 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" }, ... }, ... ]
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
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
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.
Azure Kubernetes Service