Usar etiquetas em um cluster do AKS (Serviço de Kubernetes do Azure)
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
Crie um cluster do AKS com um rótulo usando o comando
az aks create
e especifique o parâmetro--node-labels
para definir seus rótulos. Os rótulos devem ser um par de chaves/valores e ter uma sintaxe válida.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 2 \ --nodepool-labels dept=IT costcenter=9000 \ --generate-ssh-keys
Verifique se os rótulos foram definidos usando o comando
kubectl get nodes --show-labels
.kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
Criar um pool de nós com um rótulo
Crie um pool de nós com um rótulo usando o comando
az aks nodepool add
e especifique um nome para os parâmetros--name
e rótulos para o parâmetro--labels
. Os rótulos devem ser um par de chaves/valores e ter uma sintaxe válidaO seguinte comando de exemplo cria um pool de nós chamado labelnp com os rótulos dept=HR e costcenter=5000.
az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name labelnp \ --node-count 1 \ --labels dept=HR costcenter=5000 \ --no-wait
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:[ { ... "count": 1, ... "name": "labelnp", "orchestratorVersion": "1.15.7", ... "provisioningState": "Creating", ... "nodeLabels": { "costcenter": "5000", "dept": "HR" }, ... }, ... ]
Verifique se os rótulos foram definidos usando o comando
kubectl get nodes --show-labels
.kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
Atualizando rótulos em pools de nós existentes
Atualize um rótulo de um pool de nós existente usando o comando
az aks nodepool update
. A Atualização de rótulos em pools de nós existentes substitui os rótulos antigos com os novos rótulos. Os rótulos devem ser um par de chaves/valores e ter uma sintaxe válida.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name labelnp \ --labels dept=ACCT costcenter=6000 \ --no-wait
Verifique se os rótulos foram definidos usando o comando
kubectl get nodes --show-labels
.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 | amd64 | runtime.GOARCH | 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áquina |
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/mode | <mode> | Usuário ou sistema | Usuário |
kubernetes.azure.com/role | agente | Agente | Idêntico |
kubernetes.azure.com/scalesetpriority | <prioridade do VMSS> | Spot ou regular | N/D |
kubernetes.io/hostname | <hostname> | aks-nodepool-00000000-vmss000000 | Idêntico |
kubernetes.azure.com/storageprofile | <Perfil de armazenamento em disco do sistema operacional> | Gerenciado | N/D |
kubernetes.azure.com/storagetier | <Camada de armazenamento em disco do sistema operacional> | Premium_LRS | N/D |
kubernetes.azure.com/instance-sku | <Família do SKU> | Standard_N | Máquina |
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/subnet | <nome da sub-rede nodepool> | subnetName | Nome da sub-rede do nó virtual |
kubernetes.azure.com/vnet | <nome da vnet nodepool> | vnetName | Rede virtual 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 |
- 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.
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.
Azure Kubernetes Service