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á sendoKey1
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.
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
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.
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
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
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
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.
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
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.
Azure Kubernetes Service