Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Com AKS (Serviço de Kubernetes do Azure), você pode definir marcas de Azure em um cluster do AKS e seus recursos relacionados usando Azure Resource Manager e o CLI do Azure. Você também pode usar manifestos do Kubernetes para definir marcas de Azure para determinados recursos. Azure tags são um útil recurso de acompanhamento para determinados processos de negócios, como chargeback.
Este artigo explica como definir marcas de Azure para clusters do AKS e recursos relacionados.
Antes de começar
Analise as informações a seguir antes de começar:
- As marcas definidas em um cluster do 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 se aplicam somente aos recursos relacionados a ele. Esta operação substitui os valores das chaves existentes. 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 públicos, arquivos e discos podem ter tags definidas pelo Kubernetes por meio de um manifesto do Kubernetes. Para discos e arquivos criados por meio de um
StorageClass, o parâmetrotagsé aplicado ao recurso de Azure subjacente quando o AKS provisiona o volume. A atualização doStorageClassposteriormente afeta apenas os volumes provisionados recentemente. Quando você remove IPs, arquivos ou discos públicos através do Kubernetes, todas as marcas definidas pelo Kubernetes são removidas. As marcas nesses recursos que o Kubernetes não rastreia permanecem inalteradas.
Pré-requisitos
- O CLI do Azure versão 2.0.59 ou posterior. Para encontrar suas versões, execute
az --version. Se você precisar instalá-la ou atualizar sua versão, consulte Instalar CLI do Azure. - Kubernetes versão 1.20 ou posterior.
Limitações
- As tags do Azure têm chaves que não diferenciam maiúsculas de minúsculas para operações, como quando você está recuperando uma tag pesquisando a chave. Nesse caso, uma marca com a chave especificada é atualizada ou recuperada independentemente das letras maiúsculas e minúsculas. Os valores da marca diferenciam maiúsculas de minúsculas.
- No AKS, se várias tags forem definidas com chaves idênticas, mas com letras maiúsculas ou minúsculas diferentes, elas serão usadas em ordem alfabética. Por exemplo,
{"Key1": "val1", "kEy1": "val2", "key1": "val3"}resulta na definição deKey1eval1. - Para recursos compartilhados, as tags não conseguem determinar sozinhas a divisão no uso de recursos.
- Para discos e arquivos que dão suporte a um volume persistente do Kubernetes, a
PersistentVolumeespecificação é imutável após a criação. Falha ao editar ou corrigir umPersistentVolumeexistente para alterar tags ou outros atributos de volume. - Atualizar tags diretamente no recurso do Azure subjacente não sincroniza esses valores das tags de volta para o YAML ou metadados do Kubernetes
PersistentVolume.
Marcas do Azure e clusters do AKS
Quando você cria ou atualiza um cluster do AKS com o parâmetro --tags, a seguir são atribuídas as marcas de Azure que você especificou:
- O próprio cluster do AKS e seus recursos relacionados:
- Tabela de rotas
- IP público
- Balanceador de carga
- Grupo de segurança de rede
- Rede virtual
- MSI do Kubelet gerenciado pelo AKS
- MSI do Complemento gerenciado pelo AKS
- Zona de DNS privada associada ao cluster privado
- Ponto de extremidade privado associado ao cluster privado
- O grupo de recursos de nó
Observação
Azure DNS privado dá suporte apenas a 15 tags. Para obter mais informações, consulte os recursos de tags.
Criar ou atualizar etiquetas no cluster do AKS
Criar um cluster do AKS
Importante
Se estiver utilizando recursos existentes ao criar um novo cluster, como um endereço IP ou uma tabela de rotas, o comando az aks create substitui o conjunto de marcas. Se você excluir o cluster posteriormente, todas as marcas definidas pelo cluster serão removidas.
Crie um cluster e atribua marcas de Azure usando o comando
az aks createcom o parâmetro--tags.Observação
Para definir as marcas no pool de nós inicial, no conjunto de dimensionamento de máquinas virtuais e em cada instância do conjunto de dimensionamento de máquinas virtuais associada ao pool de nós inicial, você também pode definir o parâmetro
--nodepool-tags.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --tags dept=IT costcenter=9999 \ --generate-ssh-keysVerifique se as marcas foram aplicadas ao cluster e a seus recursos relacionados utilizando o comando
az aks show.az aks show --resource-group myResourceGroup --name myAKSCluster --query '[tags]'O exemplo de saída a seguir mostra as tags aplicadas ao cluster:
{ "clusterTags": { "dept": "IT", "costcenter": "9999" } }
Atualizar um cluster de AKS existente
Importante
A definição de marcas em um cluster usando o comando az aks update substitui o conjunto de marcas. Por exemplo, se seu cluster tiver as marcas dept=IT e costcenter=9999, e você usar az aks update com as marcas team=alpha e costcenter=1234, a nova lista de marcas será team=alpha e costcenter=1234.
Atualize as marcas em um cluster existente usando o comando
az aks updatecom o parâmetro--tags.az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --tags team=alpha costcenter=1234Verifique se as marcas foram aplicadas ao cluster e a seus recursos relacionados utilizando o comando
az aks show.az aks show --resource-group myResourceGroup --name myAKSCluster --query '[tags]'O exemplo de output a seguir mostra as tags aplicadas ao cluster.
{ "clusterTags": { "team": "alpha", "costcenter": "1234" } }
Adicionar rótulos aos pools de nós
Você pode aplicar um tag do Azure a um pool de nós novo ou existente no cluster do AKS. As marcas aplicadas a um pool de nós são aplicadas a cada nó dentro do pool de nós e são mantidas por meio de atualizações. As tags também são aplicadas a novos nós adicionados a um pool de nós durante operações de expansão. A adição de uma etiqueta pode ajudar com tarefas como rastreamento de políticas ou estimativa de custos.
Quando você cria ou atualiza um pool de nós com o parâmetro --tags, as marcas que você especifica são atribuídas aos seguintes recursos:
- O pool de nós.
- O conjunto de dimensionamento de máquinas virtuais e cada instância de conjunto de dimensionamento de máquinas virtuais associada ao pool de nós.
Criar um novo pool de nós
Crie um pool de nós com uma tag do Azure usando o comando
az aks nodepool addcom o parâmetro--tags.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name tagnodepool \ --node-count 1 \ --tags abtest=a costcenter=5555 \ --no-waitVerifique se as tags foram aplicadas ao pool de nós usando o comando
az aks show.az aks show --resource-group myResourceGroup --name myAKSCluster --query 'agentPoolProfiles[].{nodepoolName:name,tags:tags}'O exemplo de saída a seguir mostra as marcas 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 marcas em um pool de nós usando o comando az aks nodepool update substitui o conjunto de marcas. 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 um tag do Azure usando o comando
az aks nodepool update.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name tagnodepool \ --tags appversion=0.0.2 costcenter=4444 \ --no-waitVerifique se as tags foram aplicadas ao pool de nós usando o comando
az aks show.az aks show --resource-group myResourceGroup --name myAKSCluster --query 'agentPoolProfiles[].{nodepoolName:name,tags:tags}'O exemplo de saída a seguir mostra as marcas aplicadas ao pool de nós:
[ { "nodepoolName": "nodepool1", "tags": null }, { "nodepoolName": "tagnodepool", "tags": { "appversion": "0.0.2", "costcenter": "4444" } } ]
Adicionar tags com o uso do Kubernetes
Importante
Definir marcas em arquivos, discos e os IPs públicos usando o Kubernetes atualiza o conjunto de marcas. 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.
Quaisquer atualizações que fizer nas tags através do Kubernetes mantêm o valor definido através 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, em seguida, você remover o disco por meio do Kubernetes, o disco terá a tag team=beta.
Para discos e arquivos que dão suporte a um volume persistente, o valor de tags em uma StorageClass é uma configuração de momento de provisionamento. Depois que o volume é criado, a PersistentVolume especificação é imutável, portanto, a edição ou aplicação de patches no PV para alterar tags ou outros atributos de volume não funcionará. As alterações feitas diretamente no recurso subjacente do Azure não são sincronizadas com o arquivo YAML ou os metadados do PV.
Você pode aplicar Azure marcas a IPs públicos, discos e arquivos usando um manifesto do Kubernetes.
Para os IPs públicos, use 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 arquivos e discos, use tags em parâmetros. Por exemplo:
--- apiVersion: storage.k8s.io/v1 ... parameters: ... tags: costcenter=3333,team=beta ...
Atualizar tags para volumes persistentes existentes
Para atualizar as tags de um volume persistente existente, seja ele baseado em disco ou em arquivo, atualize as tags no recurso do Azure subjacente em vez de editar o PersistentVolume. Essa operação não interrompe pontos de montagem, pods ou acesso a dados existentes.
Para os volumes persistentes do Azure com suporte de disco, atualize o disco gerenciado diretamente. Por exemplo:
az disk update \ --name myManagedDisk \ --resource-group MC_myResourceGroup_myAKSCluster_eastus \ --set tags.abc=ABC123Para volumes persistentes com suporte Arquivos do Azure, atualize a conta de armazenamento diretamente. Por exemplo:
az storage account update \ --name mystorageaccount \ --resource-group MC_myResourceGroup_myAKSCluster_eastus \ --set tags.abc=ABC123
Alterações para StorageClass afetam apenas os volumes provisionados recentemente e não atualizam os volumes persistentes existentes.
Próximas etapas
Saiba mais sobre o uso de rótulos em um cluster do AKS.