Utilizar etiquetas do Azure no Azure Kubernetes Service (AKS)

Com Azure Kubernetes Service (AKS), pode definir etiquetas do Azure num cluster do AKS e os respetivos recursos relacionados com o Azure Resource Manager e a CLI do Azure. Também pode utilizar manifestos do Kubernetes para definir etiquetas do Azure para determinados recursos. As etiquetas do Azure são um recurso de controlo útil para determinados processos empresariais, como o estorno.

Este artigo explica como definir etiquetas do Azure para clusters do AKS e recursos relacionados.

Antes de começar

Reveja as seguintes informações antes de começar:

  • As etiquetas definidas num cluster do AKS aplicam-se a todos os recursos relacionados com o cluster, mas não aos conjuntos de nós. Esta operação substitui os valores das chaves existentes.
  • As etiquetas definidas num conjunto de nós aplicam-se apenas aos recursos relacionados com esse conjunto de nós. Esta operação substitui os valores das chaves existentes. Os recursos fora desse conjunto de nós, incluindo recursos para o resto do cluster e outros conjuntos de nós, não são afetados.
  • Os IPs públicos, ficheiros e discos podem ter etiquetas definidas pelo Kubernetes através de um manifesto do Kubernetes. As etiquetas definidas desta forma mantêm os valores do Kubernetes, mesmo que os atualize mais tarde com um método diferente. Quando remove IPs, ficheiros ou discos públicos através do Kubernetes, todas as etiquetas definidas pelo Kubernetes são removidas. As etiquetas nos recursos que o Kubernetes não controla permanecem inalteradas.

Pré-requisitos

  • A versão 2.0.59 ou posterior da CLI do Azure. Para localizar a sua versão, execute az --version. Se precisar de instalá-la ou atualizar a sua versão, consulte Instalar a CLI do Azure.
  • Kubernetes versão 1.20 ou posterior.

Limitações

  • As etiquetas do Azure têm chaves não sensíveis a maiúsculas e minúsculas para as operações, como quando está a obter uma etiqueta ao procurar a chave. Neste caso, uma etiqueta com a chave especificada é atualizada ou obtida independentemente do invólucro. Os valores das etiquetas são sensíveis às maiúsculas e minúsculas.
  • No AKS, se forem definidas várias etiquetas com chaves idênticas, mas maiúsculas e minúsculas diferentes, as etiquetas serão utilizadas por ordem alfabética. Por exemplo, {"Key1": "val1", "kEy1": "val2", "key1": "val3"} resulta em Key1 e val1 a ser definido.
  • Para recursos partilhados, as etiquetas não podem determinar a divisão na utilização de recursos por conta própria.

Etiquetas do Azure e clusters do AKS

Quando cria ou atualiza um cluster do AKS com o --tags parâmetro, são atribuídas as etiquetas do Azure que especificou:

  • O próprio cluster do AKS e os respetivos recursos relacionados:
    • Tabela de rota
    • IP público
    • Balanceador de carga
    • Grupo de segurança de rede
    • Rede virtual
    • Kubelet msi gerido pelo AKS
    • Msi de suplemento gerido pelo AKS
    • DNS Privado zona associada ao cluster privado
    • Ponto final privado associado ao cluster privado
  • O grupo de recursos do nó

Nota

O Azure DNS Privado suporta apenas 15 etiquetas. Para obter mais informações, veja os recursos da etiqueta.

Criar ou atualizar etiquetas num cluster do AKS

Criar um novo cluster do AKS

Importante

Se estiver a utilizar recursos existentes quando cria um novo cluster, como um endereço IP ou uma tabela de rotas, o az aks create comando substitui o conjunto de etiquetas. Se eliminar o cluster mais tarde, todas as etiquetas definidas pelo cluster serão removidas.

  1. Crie um cluster e atribua etiquetas do Azure com o az aks create comando com o --tags parâmetro .

    Nota

    Para definir etiquetas no conjunto de nós inicial, o conjunto de dimensionamento de máquinas virtuais e cada instância do conjunto de dimensionamento de máquinas virtuais associada ao conjunto de nós inicial, também pode definir o --nodepool-tags parâmetro.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --tags dept=IT costcenter=9999 \
        --generate-ssh-keys
    
  2. Verifique se as etiquetas foram aplicadas ao cluster e aos respetivos recursos relacionados com o az aks show comando .

    az aks show -g myResourceGroup -n myAKSCluster --query '[tags]'
    

    O seguinte resultado de exemplo mostra as etiquetas aplicadas ao cluster:

    {
      "clusterTags": {
        "dept": "IT",
        "costcenter": "9999"
      }
    }
    

Atualizar um cluster do AKS existente

Importante

Definir etiquetas num cluster com o az aks update comando substitui o conjunto de etiquetas. Por exemplo, se o cluster tiver as etiquetas dept=TI e costcenter=9999 e utilizar az aks update com as etiquetas team=alpha e costcenter=1234, a nova lista de etiquetas será team=alpha e costcenter=1234.

  1. Atualize as etiquetas num cluster existente com o az aks update comando com o --tags parâmetro .

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --tags team=alpha costcenter=1234
    
  2. Verifique se as etiquetas foram aplicadas ao cluster e aos respetivos recursos relacionados com o az aks show comando .

    az aks show -g myResourceGroup -n myAKSCluster --query '[tags]'
    

    O seguinte resultado de exemplo mostra as etiquetas aplicadas ao cluster:

    {
      "clusterTags": {
        "team": "alpha",
        "costcenter": "1234"
      }
    }
    

Adicionar etiquetas a conjuntos de nós

Pode aplicar uma etiqueta do Azure a um conjunto de nós novo ou existente no cluster do AKS. As etiquetas aplicadas a um conjunto de nós são aplicadas a cada nó no conjunto de nós e são mantidas através de atualizações. As etiquetas também são aplicadas a novos nós que são adicionados a um conjunto de nós durante operações de escalamento horizontal. Adicionar uma etiqueta pode ajudar com tarefas como controlo de políticas ou estimativa de custos.

Quando cria ou atualiza um conjunto de nós com o --tags parâmetro, as etiquetas que especificar são atribuídas aos seguintes recursos:

  • O conjunto de nós.
  • O conjunto de dimensionamento de máquinas virtuais e cada instância do conjunto de dimensionamento de máquinas virtuais associada ao conjunto de nós.

Criar um novo conjunto de nós

  1. Crie um conjunto de nós com uma etiqueta do Azure com o az aks nodepool add comando com o --tags parâmetro .

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name tagnodepool \
        --node-count 1 \
        --tags abtest=a costcenter=5555 \
        --no-wait
    
  2. Verifique se as etiquetas foram aplicadas ao conjunto de nós com o az aks show comando .

    az aks show -g myResourceGroup -n myAKSCluster --query 'agentPoolProfiles[].{nodepoolName:name,tags:tags}'
    

    O resultado de exemplo seguinte mostra as etiquetas aplicadas ao conjunto de nós:

    [
      {
        "nodepoolName": "nodepool1",
        "tags": null
      },
      {
        "nodepoolName": "tagnodepool",
        "tags": {
          "abtest": "a",
          "costcenter": "5555"
        }
      }
    ]
    

Atualizar um conjunto de nós existente

Importante

Definir etiquetas num conjunto de nós com o az aks nodepool update comando substitui o conjunto de etiquetas. Por exemplo, se o conjunto de nós tiver as etiquetas abtest=a e costcenter=5555 e utilizar az aks nodepool update com as etiquetas appversion=0.0.2 e costcenter=4444, a nova lista de etiquetas será appversion=0.0.2 e costcenter=4444.

  1. Atualize um conjunto de nós com uma etiqueta do Azure com o az aks nodepool update comando .

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name tagnodepool \
        --tags appversion=0.0.2 costcenter=4444 \
        --no-wait
    
  2. Verifique se as etiquetas foram aplicadas ao conjunto de nós com o az aks show comando .

    az aks show -g myResourceGroup -n myAKSCluster --query 'agentPoolProfiles[].{nodepoolName:name,tags:tags}'
    

    O resultado de exemplo seguinte mostra as etiquetas aplicadas ao conjunto de nós:

    [
      {
        "nodepoolName": "nodepool1",
        "tags": null
      },
      {
        "nodepoolName": "tagnodepool",
        "tags": {
          "appversion": "0.0.2",
          "costcenter": "4444"
        }
      }
    ]
    

Adicionar etiquetas com o Kubernetes

Importante

Definir etiquetas em ficheiros, discos e IPs públicos com o Kubernetes atualiza o conjunto de etiquetas. Por exemplo, se o disco tiver as etiquetas dept=TI e costcenter=5555 e utilizar o Kubernetes para definir as etiquetas team=beta e costcenter=3333, a nova lista de etiquetas será dept=IT, team=beta e costcenter=3333.

Todas as atualizações que fizer às etiquetas através do Kubernetes mantêm o valor definido através do Kubernetes. Por exemplo, se o disco tiver etiquetas dept=TI e costcenter=5555 definidas pelo Kubernetes e utilizar o portal para definir as etiquetas team=beta e costcenter=3333, a nova lista de etiquetas será dept=IT, team=beta e costcenter=5555. Se remover o disco através do Kubernetes, o disco terá a etiqueta team=beta.

Pode aplicar etiquetas do Azure a IPs públicos, discos e ficheiros com um manifesto do Kubernetes.

  • Para IPs públicos, utilize service.beta.kubernetes.io/azure-pip-tags em anotações. Por exemplo:

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/azure-pip-tags: costcenter=3333,team=beta
    spec:
      ...
    
  • Para ficheiros e discos, utilize etiquetas em parâmetros. Por exemplo:

    ---
    apiVersion: storage.k8s.io/v1
    ...
    parameters:
      ...
      tags: costcenter=3333,team=beta
    ...
    

Passos seguintes

Saiba mais sobre como utilizar etiquetas num cluster do AKS.