Partilhar via


Usar marcas do Azure no Serviço Kubernetes do Azure (AKS)

Com o Serviço Kubernetes do Azure (AKS), você pode definir marcas do Azure em um cluster AKS e seus recursos relacionados usando o Azure Resource Manager e a CLI do Azure. Você também pode usar manifestos do Kubernetes para definir marcas do Azure para determinados recursos. As tags do Azure são um recurso de rastreamento útil para determinados processos de negócios, como estorno.

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

Antes de começar

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

  • As tags definidas em um cluster AKS se aplicam a todos os recursos relacionados ao cluster, mas não aos pools de nós. Esta operação substitui os valores das chaves existentes.
  • As tags definidas em um pool de nós aplicam-se somente aos recursos relacionados a esse pool de nós. Esta operação substitui os valores das chaves existentes. Os recursos fora desse pool de nós, incluindo recursos para o restante do cluster e outros pools de nós, não são afetados.
  • IPs, arquivos e discos públicos podem ter tags definidas pelo Kubernetes por meio de um manifesto do Kubernetes. As tags definidas dessa forma mantêm os valores do Kubernetes, mesmo que você os atualize posteriormente usando um método diferente. Quando você remove IPs, arquivos ou discos públicos através do Kubernetes, todas as tags definidas pelo Kubernetes são removidas. As tags nesses recursos que o Kubernetes não rastreia permanecem inalteradas.

Pré-requisitos

  • A CLI do Azure versão 2.0.59 ou posterior. Para encontrar a sua versão, execute az --version. Se você precisar instalá-lo ou atualizar 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. Nesse caso, uma tag com a chave especificada é atualizada ou recuperada 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 e está sendo Key1 val1 definido.
  • Para recursos compartilhados, as tags não podem determinar a divisão no uso de recursos por conta própria.

Tags do Azure e clusters AKS

Quando você cria ou atualiza um cluster AKS com o --tags parâmetro, as tags do Azure especificadas são atribuídas a seguir:

  • O próprio cluster AKS e seus recursos relacionados:
    • Tabela de rotas
    • IP público
    • Balanceador de carga
    • Grupo de segurança de rede
    • Rede virtual
    • Kubelet msi gerenciado pelo AKS
    • msi add-on gerenciado pelo AKS
    • Zona DNS privada associada ao cluster privado
    • Ponto de extremidade privado associado ao cluster privado
  • O grupo de recursos do nó

Nota

O DNS Privado do Azure suporta apenas 15 etiquetas. Para obter mais informações, consulte os recursos de tag.

Criar ou atualizar tags em um cluster AKS

Criar um novo cluster AKS

Importante

Se você estiver usando recursos existentes ao criar um novo cluster, como um endereço IP ou uma tabela de rotas, o az aks create comando substituirá o conjunto de tags. Se você excluir o cluster posteriormente, todas as tags definidas pelo cluster serão removidas.

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

    Nota

    Para definir marcas no pool de nós inicial, no conjunto de dimensionamento da máquina virtual e em cada instância do conjunto de dimensionamento da máquina virtual associada ao pool de nós inicial, você 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 tags foram aplicadas ao cluster e seus recursos relacionados usando o az aks show comando.

    az aks show --resource-group myResourceGroup --name myAKSCluster --query '[tags]'
    

    A saída de exemplo a seguir mostra as tags aplicadas ao cluster:

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

Atualizar um cluster AKS existente

Importante

A definição de tags em um cluster usando o az aks update comando substitui o conjunto de tags. Por exemplo, se o cluster tiver as tags dept=IT e costcenter=9999, e você usar az aks update com as tags team=alpha e costcenter=1234, a nova lista de tags será team=alpha e costcenter=1234.

  1. Atualize as tags em um cluster existente usando 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 tags foram aplicadas ao cluster e seus recursos relacionados usando o az aks show comando.

    az aks show --resource-group myResourceGroup --name myAKSCluster --query '[tags]'
    

    A saída de exemplo a seguir mostra as tags aplicadas ao cluster:

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

Adicionar tags a pools de nós

Você pode aplicar uma marca do Azure a um pool de nós novo ou existente em seu cluster AKS. As tags aplicadas a um pool de nós são aplicadas a cada nó dentro do pool de nós e persistem por meio de atualizações. As tags também são aplicadas a novos nós que são adicionados a um pool de nós durante operações de expansão. Adicionar uma tag pode ajudar em tarefas como controle de políticas ou estimativa de custos.

Quando você cria ou atualiza um pool de nós com o --tags parâmetro, as tags especificadas são atribuídas aos seguintes recursos:

  • O pool de nós.
  • O conjunto de dimensionamento de máquina virtual e cada instância de conjunto de escala de máquina virtual associada ao pool de nós.

Criar um novo pool de nós

  1. Crie um pool de nós com uma marca do Azure usando 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 tags foram aplicadas ao pool de nós usando o az aks show comando.

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

    A saída de exemplo a seguir mostra as tags aplicadas ao pool de nós:

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

Atualizar um pool de nós existente

Importante

A definição de tags em um pool de nós usando o az aks nodepool update comando substitui o conjunto de tags. Por exemplo, se o pool de nós tiver as tags abtest=a e costcenter=5555, e você usar az aks nodepool update com as tags appversion=0.0.2 e costcenter=4444, a nova lista de tags será appversion=0.0.2 e costcenter=4444.

  1. Atualize um pool de nós com uma marca do Azure usando 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 tags foram aplicadas ao pool de nós usando o az aks show comando.

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

    A saída de exemplo a seguir mostra as tags aplicadas ao pool de nós:

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

Adicionar tags usando o Kubernetes

Importante

A configuração de tags em arquivos, discos e IPs públicos usando o Kubernetes atualiza o conjunto de tags. Por exemplo, se o disco tiver as tags dept=IT e costcenter=5555, e você usar o Kubernetes para definir as tags team=beta e costcenter=3333, a nova lista de tags será dept=IT, team=beta e costcenter=3333.

Todas as atualizações feitas nas tags por meio do Kubernetes retêm o valor definido por meio do Kubernetes. Por exemplo, se o disco tiver as tags dept=IT e costcenter=5555 definidas pelo Kubernetes, e você usar o portal para definir as tags team=beta e costcenter=3333, a nova lista de tags será dept=IT, team=beta e costcenter=5555. Se você remover o disco através do Kubernetes, o disco terá a tag team=beta.

Você pode aplicar marcas do Azure a IPs, discos e arquivos públicos usando um manifesto do Kubernetes.

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

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

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

Próximos passos

Saiba mais sobre como usar rótulos em um cluster AKS.