Usar rótulos em um cluster do Serviço Kubernetes do Azure (AKS)
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
Crie um cluster AKS com um rótulo usando o
az aks create
comando e especifique o--node-labels
parâmetro para definir seus rótulos. Os rótulos devem ser um par chave/valor 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
kubectl get nodes --show-labels
comando.kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
Criar um conjunto de nós com uma etiqueta
Crie um pool de nós com um rótulo usando o
az aks nodepool add
comando e especifique um nome para os--name
parâmetros e rótulos para o--labels
parâmetro. Os rótulos devem ser um par chave/valor e ter uma sintaxe válidaO comando de exemplo a seguir 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 saída de exemplo a seguir do comando mostra que
az aks nodepool list
o pool de nós labelnp está Criando nós com os nodeLabels especificados:[ { ... "count": 1, ... "name": "labelnp", "orchestratorVersion": "1.15.7", ... "provisioningState": "Creating", ... "nodeLabels": { "costcenter": "5000", "dept": "HR" }, ... }, ... ]
Verifique se os rótulos foram definidos usando o
kubectl get nodes --show-labels
comando.kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
Atualizar etiquetas em conjuntos de nós existentes
Atualize um rótulo em um pool de nós existente usando o
az aks nodepool update
comando. A atualização de rótulos em pools de nós existentes substitui os rótulos antigos pelos novos rótulos. Os rótulos devem ser um par chave/valor 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
kubectl get nodes --show-labels
comando.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 | Value | Exemplo/Opções | Uso do nó virtual |
---|---|---|---|
kubernetes.azure.com/agentpool | <Nome do pool de agentes> | nodepool1 | Mesma |
kubernetes.io/arch | AMD64 | tempo de execução. GOARCA | N/A |
kubernetes.io/os | <Tipo de SO> | Linux/Windows | Mesma |
node.kubernetes.io/instance-type | <Tamanho da VM> | Standard_NC6s_v3 | Virtual |
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/mode | <modo> | Utilizador ou sistema | User |
kubernetes.azure.com/role | agente | Agente | Mesma |
kubernetes.azure.com/scalesetpriority | <Prioridade VMSS> | Pontual 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> | Não gerido | N/A |
kubernetes.azure.com/storagetier | <Nível de armazenamento em disco do SO> | Premium_LRS | N/A |
kubernetes.azure.com/instance-sku | <Família SKU> | Standard_N | Virtual |
kubernetes.azure.com/node-image-version | <Versão VHD> | AKSUbuntu-1804-2020.03.05 | Versão do nó virtual |
kubernetes.azure.com/subnet | <Nome da sub-rede do NodePool> | Nome da sub-rede | Nome da sub-rede do nó virtual |
kubernetes.azure.com/vnet | <Nome da VNet do NodePool> | vnetName | Rede virtual de nó virtual |
kubernetes.azure.com/ppg | <Nome do NodePool PPG> | ppgNome | N/A |
kubernetes.azure.com/encrypted-set | <Nome do conjunto criptografado do nodepool> | nome do conjunto criptografado | N/A |
kubernetes.azure.com/accelerator | <acelerador> | nvidia | N/A |
kubernetes.azure.com/fips_enabled | <O FIPS está habilitado?> | verdadeiro | N/A |
kubernetes.azure.com/os-sku | <OS/SKU> | Criar ou atualizar o SKU do SO | Linux |
- 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.
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.
Azure Kubernetes Service