Partilhar via


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

  1. 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
    
  2. 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

  1. 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álida

    O 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"
        },
        ...
      },
     ...
    ]
    
  2. 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

  1. 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
    
  2. 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.