Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Se tiver vários conjuntos de nós, poderá querer adicionar uma etiqueta durante a criação do conjunto de nós. Os rótulos do Kubernetes lidam com as regras de agendamento para nós. Você pode adicionar rótulos a um pool de nós a qualquer momento e aplicá-los a todos os nós no pool de nós.
Neste guia de instruções, você aprenderá a usar rótulos em um cluster do Serviço Kubernetes do Azure (AKS).
Pré-requisitos
Você precisa da CLI do Azure versão 2.2.0 ou posterior instalada e configurada. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).
Criar um cluster do AKS com uma etiqueta
Você pode criar um cluster AKS com rótulos de nó para definir metadados de chave/valor para agendamento de carga de trabalho.
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"
}
Crie o cluster AKS especificando etiquetas de nó (por exemplo, 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"
}
Verifique se os rótulos foram definidos:
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"
Criar um conjunto de nós com uma etiqueta
Você pode criar um pool de nós adicional com rótulos para necessidades específicas de agendamento.
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
O seguinte é um exemplo de saída do comandoaz aks nodepool list mostrando que o pool de nós labelnp está criando nodes com os nodeLabels especificados:
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"
}
]
Verifique se os rótulos foram definidos:
kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
Atualizar etiquetas em conjuntos de nós existentes
Você pode atualizar os rótulos em um pool de nós existente. Observe que a atualização de rótulos substituirá os rótulos antigos.
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $AKS_CLUSTER_NAME \
--name $NODEPOOL_NAME \
--labels dept=ACCT costcenter=6000
Verifique se os novos rótulos estão definidos:
kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
Etiquetas indisponíveis
Etiquetas de sistema reservadas
Desde o lançamento do AKS em 2021-08-19, o AKS parou a capacidade de fazer alterações nos rótulos reservados do AKS. A tentativa de alterar esses rótulos resulta em uma mensagem de erro.
Os rótulos a seguir são rótulos reservados AKS. O uso do nó virtual especifica se esses rótulos podem ser um recurso de sistema suportado em nós virtuais. Algumas propriedades que esses recursos do sistema alteram não estão disponíveis nos nós virtuais porque exigem a modificação do host.
| Etiqueta | Valor | Exemplo/Opções | Uso do nó virtual |
|---|---|---|---|
kubernetes.azure.com/agentpool |
<Nome do pool de agentes> | nodepool1 |
Mesma |
kubernetes.io/arch |
<duração de execução. GOARCH> | amd64 |
N/A |
kubernetes.io/os |
<Tipo de SO> | Linux/Windows |
Mesma |
node.kubernetes.io/instance-type |
<Tamanho da VM> | Standard_NC6s_v3 |
Virtuais |
topology.kubernetes.io/region |
<Região do Azure> | westus2 |
Mesma |
topology.kubernetes.io/zone |
<Zona do Azure> | 0 |
Mesma |
kubernetes.azure.com/cluster |
<MC_RgName> | MC_aks_myAKSCluster_westus2 |
Mesma |
kubernetes.azure.com/managedby |
aks |
aks |
N/A |
kubernetes.azure.com/mode |
<modo> |
User ou system |
Utilizador |
kubernetes.azure.com/role |
agente | Agent |
Mesma |
kubernetes.azure.com/scalesetpriority |
<Prioridade VMSS> |
spot ou regular |
N/A |
kubernetes.io/hostname |
<nome do host> | aks-nodepool-00000000-vmss000000 |
Mesma |
kubernetes.azure.com/storageprofile |
<Perfil de armazenamento em disco do SO> | Managed |
N/A |
kubernetes.azure.com/storagetier |
<Nível de armazenamento em disco do SO> | Premium_LRS |
N/A |
kubernetes.azure.com/node-image-version |
<Versão VHD> | AKSUbuntu-1804-2020.03.05 |
Versão do nó virtual |
kubernetes.azure.com/network-name |
<Nome da VNet do NodePool> | vnetName |
Rede virtual de nó virtual |
kubernetes.azure.com/network-subnet |
<Nome da sub-rede do NodePool> | subnetName |
Nome da sub-rede do nó virtual |
kubernetes.azure.com/ppg |
<Nome do NodePool PPG> | ppgName |
N/A |
kubernetes.azure.com/encrypted-set |
<Nome do conjunto criptografado do nodepool> | encrypted-set-name |
N/A |
kubernetes.azure.com/accelerator |
<acelerador> | nvidia |
N/A |
kubernetes.azure.com/fips_enabled |
<FIPS está ativado?> | true |
N/A |
kubernetes.azure.com/os-sku |
<OS/SKU> | Criar ou atualizar o SKU do SO | Linux |
kubernetes.azure.com/os-sku-effective |
<SKU do Sistema Operativo efetivamente escolhido> |
Ubuntu2204 ou semelhante (nunca Ubuntu, tem sempre a versão especificada) |
N/A |
kubernetes.azure.com/os-sku-requested |
<SKU de SO solicitado pelo utilizador> |
Ubuntu, Ubuntu2204, ou semelhante (corresponde exatamente ao SKU solicitado à API) |
N/A |
kubernetes.azure.com/sku-cpu |
<num CPUs> | 4 |
Mesma |
kubernetes.azure.com/sku-memory |
<memória em GB> | 16 |
Mesma |
kubernetes.azure.com/nodepool-type |
<Tipo de pool de nós> | VirtualMachineScaleSets |
N/A |
- O mesmo está incluído em locais onde os valores esperados para os rótulos não diferem entre um pool de nós padrão e um pool de nós virtuais. Como os pods de nó virtual não expõem nenhuma máquina virtual (VM) subjacente, os valores de SKU da VM são substituídos pelo SKU Virtual.
- Versão do nó virtual refere-se à versão atual da versão do conector Kubelet-ACI virtual.
- Nome da sub-rede do nó virtual é o nome da sub-rede onde os pods do nó virtual são implantados na Instância de Contêiner do Azure (ACI).
- Rede virtual de nó virtual é o nome da rede virtual, que contém a sub-rede onde os pods de nó virtual são implantados na ACI.
- Os nós de Provisão Automática de Nó (Karpenter) têm etiquetas adicionais correspondentes aos seletores suportados.
-
kubernetes.azure.com/network-nameekubernetes.azure.com/network-subnetserão truncados se os nomes dos recursos subjacentes forem superiores a 64 caracteres.
Prefixos reservados
Os seguintes prefixos são prefixos reservados AKS e não podem ser usados para nenhum nó:
- kubernetes.azure.com/
- kubernetes.io/
Para obter mais informações sobre prefixos reservados, consulte Rótulos, anotações e manchas conhecidos do Kubernetes.
Etiquetas preteridas
Os seguintes rótulos estão planejados para descontinuação com o lançamento do Kubernetes v1.24. Você deve alterar todas as referências de rótulo para o substituto recomendado.
| Etiqueta | Substituto recomendado | Mantenedor |
|---|---|---|
| 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 |
| Perfil de armazenamento* | kubernetes.azure.com/storageprofile | Azure Kubernetes Service |
| Nível de armazenamento* | kubernetes.azure.com/storagetier | Azure Kubernetes Service |
| Acelerador* | kubernetes.azure.com/accelerator | Azure Kubernetes Service |
*Recentemente preterido. Para obter mais informações, consulte as Notas de versão.
Próximos passos
Saiba mais sobre rótulos do Kubernetes na documentação de rótulos do Kubernetes.