Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Se você tiver vários pools de nós, talvez queira adicionar um rótulo durante a criação do pool de nós. Os Rótulos de Kubernetes identificam 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 do pool de nós.
Neste guia de instruções, você aprende a como usar rótulos em um cluster do Serviço de Kubernetes do Azure (AKS).
Pré-requisitos
Você precisará da CLI do Azure versão 2.2.0 ou posterior instalada e configurada. Execute az --version para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
Criar um cluster do AKS com um rótulo
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 do AKS especificando rótulos 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 pool de nós com um rótulo
Você pode criar um pool de nós adicional com rótulos para necessidades de agendamento 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 seguinte saída de exemplo do comando az aks nodepool list mostra que o pool de nós labelnp está Criando nós com o nodeLabels especificado:
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"
Atualizando rótulos em pools 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"
Rótulos indisponíveis
Rótulos de sistema reservados
Desde a versão 2021-08-19 do AKS, o AKS interrompeu a capacidade de fazer alterações em rótulos reservados do AKS. Tentar alterar esses rótulos resulta em uma mensagem de erro.
Os seguintes rótulos são rótulos reservados do AKS. O uso do nó virtual especifica se esses rótulos podem ser um recurso do sistema com suporte 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.
| Rótulo | Valor | Exemplo/Opções | Uso de nós virtuais |
|---|---|---|---|
kubernetes.azure.com/agentpool |
<nome do pool de agentes> | nodepool1 |
Idêntico |
kubernetes.io/arch |
<runtime.GOARCH> | amd64 |
N/D |
kubernetes.io/os |
<Tipo de sistema operacional> | Linux/Windows |
Idêntico |
node.kubernetes.io/instance-type |
<Tamanho da VM> | Standard_NC6s_v3 |
Máquinas |
topology.kubernetes.io/region |
<Região do Azure> | westus2 |
Idêntico |
topology.kubernetes.io/zone |
<Zona do Azure> | 0 |
Idêntico |
kubernetes.azure.com/cluster |
<MC_RgName> | MC_aks_myAKSCluster_westus2 |
Idêntico |
kubernetes.azure.com/managedby |
aks |
aks |
N/D |
kubernetes.azure.com/mode |
<mode> |
User ou system |
Usuário |
kubernetes.azure.com/role |
agente | Agent |
Idêntico |
kubernetes.azure.com/scalesetpriority |
<prioridade do VMSS> |
spot ou regular |
N/D |
kubernetes.io/hostname |
<nome do host> | aks-nodepool-00000000-vmss000000 |
Idêntico |
kubernetes.azure.com/storageprofile |
<Perfil de armazenamento em disco do sistema operacional> | Managed |
N/D |
kubernetes.azure.com/storagetier |
<Camada de armazenamento em disco do sistema operacional> | Premium_LRS |
N/D |
kubernetes.azure.com/node-image-version |
<Versão do disco rígido virtual> | AKSUbuntu-1804-2020.03.05 |
Versão do nó virtual |
kubernetes.azure.com/network-name |
<nome da vnet nodepool> | vnetName |
Rede virtual do nó virtual |
kubernetes.azure.com/network-subnet |
<nome da sub-rede nodepool> | subnetName |
Nome da sub-rede do nó virtual |
kubernetes.azure.com/ppg |
<nome ppg nodepool> | ppgName |
N/D |
kubernetes.azure.com/encrypted-set |
<nodepool criptografado-definir nome> | encrypted-set-name |
N/D |
kubernetes.azure.com/accelerator |
<acelerador> | nvidia |
N/D |
kubernetes.azure.com/fips_enabled |
<O FIPS está habilitado?> | true |
N/D |
kubernetes.azure.com/os-sku |
<os/sku> | Criar ou atualizar a unidade de manutenção de estoque do sistema operacional | Linux |
kubernetes.azure.com/os-sku-effective |
<SKU atual do sistema operacional escolhido> |
Ubuntu2204 ou semelhante (nunca Ubuntu, sempre tem a versão especificada) |
N/D |
kubernetes.azure.com/os-sku-requested |
<SKU do sistema operacional solicitada pelo usuário> |
Ubuntu, Ubuntu2204ou semelhante (corresponde exatamente ao sku solicitado da API) |
N/D |
kubernetes.azure.com/sku-cpu |
<número de CPUs> | 4 |
Idêntico |
kubernetes.azure.com/sku-memory |
<memória em GB> | 16 |
Idêntico |
kubernetes.azure.com/nodepool-type |
<Tipo de grupo de nós> | VirtualMachineScaleSets |
N/D |
- O mesmo está incluído em locais em que 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 VM (máquina virtual) subjacente, os valores de SKU da VM são substituídos pelo SKU Virtual.
- A versão do nó virtual refere-se à versão atual da versão virtual do conector Kubelet-ACI.
- Nome da sub-rede do nó virtual é o nome da sub-rede em que os pods de nó virtual são implantados na ACI (Instância de Contêiner do Azure).
- A rede virtual do nó virtual é o nome da rede virtual, que contém a sub-rede em que os pods de nó virtual são implantados na ACI.
- Node Auto Provisioning (Karpenter) nós possuem rótulos adicionais correspondentes aos seletores suportados.
-
kubernetes.azure.com/network-nameekubernetes.azure.com/network-subnetserá truncado se os nomes de recursos subjacentes tiverem mais de 64 caracteres.
Prefixos reservados
Os seguintes prefixos são prefixos reservados para o AKS e não podem ser usados em nenhum nó:
- kubernetes.azure.com/
- kubernetes.io/
Para obter mais informações sobre prefixos reservados, consulte Rótulos, anotações e traços bem conhecidos do Kubernetes.
Rótulos preterido
Os rótulos a seguir devem ser preteridos na versão v1.24 do Kubernetes. Você deve alterar todas as referências do rótulo para o substituto recomendado.
| Rótulo | 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 | Serviço de Kubernetes do Azure |
| kubernetes.io/role* | kubernetes.azure.com/role=agent | Serviço de Kubernetes do Azure |
| Agentpool* | kubernetes.azure.com/agentpool | Serviço de Kubernetes do Azure |
| Storageprofile* | kubernetes.azure.com/storageprofile | Serviço de Kubernetes do Azure |
| Storagetier* | kubernetes.azure.com/storagetier | Serviço de Kubernetes do Azure |
| Accelerator* | kubernetes.azure.com/accelerator | Serviço de Kubernetes do Azure |
*Preterido recentemente. Para obter mais informações, consulte as Notas Sobre a Versão.
Próximas etapas
Saiba mais sobre os rótulos do Kubernetes na Documentação de rótulos do Kubernetes.