Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
Puede crear un clúster de AKS con etiquetas de nodo para establecer metadatos de clave y valor para la programación de cargas de trabajo.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX"
export AKS_CLUSTER_NAME="myAKSCluster$RANDOM_SUFFIX"
az group create --name $RESOURCE_GROUP --location $REGION
Resultados:
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx",
"location": "eastus2",
"managedBy": null,
"name": "myResourceGroupxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Cree el clúster de AKS que especifique etiquetas de nodo (por ejemplo, dept=IT, costcenter=9000):
az aks create \
--resource-group $RESOURCE_GROUP \
--name $AKS_CLUSTER_NAME \
--node-count 2 \
--nodepool-labels dept=IT costcenter=9000 \
--generate-ssh-keys --location $REGION
Resultados:
{
"aadProfile": null,
"addonProfiles": {},
"agentPoolProfiles": [
{
"count": 2,
"enableAutoScaling": null,
"mode": "System",
"name": "nodepool1",
"nodeLabels": {
"costcenter": "9000",
"dept": "IT"
}
}
],
"dnsPrefix": "myaksclusterxxx-dns",
"fqdn": "myaksclusterxxx-xxxxxxxx.hcp.eastus2.azmk8s.io",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSClusterxxx",
"location": "eastus2",
"name": "myAKSClusterxxx",
"resourceGroup": "myResourceGroupxxx"
}
Compruebe que se han establecido las etiquetas:
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER_NAME --overwrite-existing
kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
Creación de un grupo de nodos con una etiqueta
Puede crear un grupo de nodos adicional con etiquetas para necesidades de programación específicas.
export NODEPOOL_NAME="labelnp"
az aks nodepool add \
--resource-group $RESOURCE_GROUP \
--cluster-name $AKS_CLUSTER_NAME \
--name $NODEPOOL_NAME \
--node-count 1 \
--labels dept=HR costcenter=5000
A continuación se muestra un ejemplo de salida del comando az aks nodepool list que muestra que el grupo de nodos labelnp está creando nodos con nodeLabels especificadas:
az aks nodepool list --resource-group $RESOURCE_GROUP --cluster-name $AKS_CLUSTER_NAME
Resultados:
[
{
"count": 2,
"name": "nodepool1",
"nodeLabels": {
"costcenter": "9000",
"dept": "IT"
}
},
{
"count": 1,
"name": "labelnp",
"nodeLabels": {
"costcenter": "5000",
"dept": "HR"
},
"provisioningState": "Creating"
}
]
Compruebe que se han establecido las etiquetas:
kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
Actualización de etiquetas en grupos de nodos existentes
Puede actualizar las etiquetas en un grupo de nodos existente. Tenga en cuenta que la actualización de etiquetas sobrescribirá las etiquetas antiguas.
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $AKS_CLUSTER_NAME \
--name $NODEPOOL_NAME \
--labels dept=ACCT costcenter=6000
Compruebe que se han establecido las nuevas etiquetas:
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 |
<runtime.GOARCH> | amd64 |
N/D |
kubernetes.io/os |
<OS Type> (Tipo de SO) | Linux/Windows |
Iguales |
node.kubernetes.io/instance-type |
<Tamaño de VM> | Standard_NC6s_v3 |
Virtual |
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/managedby |
aks |
aks |
N/D |
kubernetes.azure.com/mode |
<modo> |
User o system |
Usuario |
kubernetes.azure.com/role |
agente | Agent |
Iguales |
kubernetes.azure.com/scalesetpriority |
<Prioridad de VMSS> |
spot o regular |
N/D |
kubernetes.io/hostname |
<nombre de host> | aks-nodepool-00000000-vmss000000 |
Iguales |
kubernetes.azure.com/storageprofile |
<Perfil de almacenamiento en disco del sistema operativo> | Managed |
N/D |
kubernetes.azure.com/storagetier |
<Nivel de almacenamiento de disco del sistema operativo> | Premium_LRS |
N/D |
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/network-name |
<nombre de red virtual del grupo de nodos> | vnetName |
Red virtual de nodo virtual |
kubernetes.azure.com/network-subnet |
<nombre de subred del grupo de nodos> | subnetName |
Nombre de subred del 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 |
kubernetes.azure.com/os-sku-effective |
<SKU real del sistema operativo elegida> |
Ubuntu2204 o similar (nunca Ubuntu, siempre tiene la versión especificada) |
N/D |
kubernetes.azure.com/os-sku-requested |
<SKU del sistema operativo solicitada por el usuario> |
Ubuntu, Ubuntu2204o similar (coincide exactamente con la SKU solicitada de la API) |
N/D |
kubernetes.azure.com/sku-cpu |
<núm. de CPU> | 4 |
Iguales |
kubernetes.azure.com/sku-memory |
<memoria en GB> | 16 |
Iguales |
kubernetes.azure.com/nodepool-type |
<Tipo de grupo de nodos> | VirtualMachineScaleSets |
N/D |
- 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.
- Los nodos de aprovisionamiento automático de nodos (Karpenter) tienen etiquetas adicionales correspondientes a los selectores admitidos.
-
kubernetes.azure.com/network-nameykubernetes.azure.com/network-subnetse truncarán si los nombres de recursos subyacentes tienen más de 64 caracteres de longitud.
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.