Esta página mostra como criar e gerir etiquetas nos clusters anexados do GKE.
Vista geral
Uma etiqueta é um par de chave-valor que pode anexar a um recurso no Google Cloud. Pode usar etiquetas para permitir ou recusar condicionalmente políticas com base no facto de um recurso ter uma etiqueta específica.
Enquanto administrador da plataforma, um exemplo de utilização das etiquetas pode ser conceder condicionalmente funções de gestão de identidade e de acesso (IAM) com base no facto de um cluster ter uma etiqueta específica. Por exemplo, pode configurar o GKE para conceder automaticamente funções de gestão de identidades e acessos a utilizadores que sejam contratados para que possam aceder a clusters específicos que normalmente só estão disponíveis para funcionários a tempo inteiro.
Depois de criar uma etiqueta, pode anexá-la a um Google Cloud recurso como um
par de chave-valor através de uma associação de etiquetas. Para cada chave, pode anexar um valor a um recurso. Por exemplo, se tiver associado env:dev ao seu cluster, não pode
associar também env:prod ou env:test. Pode anexar até 50 etiquetas a cada recurso.
Nos clusters anexados do GKE, existem vários métodos para anotar os seus recursos, conforme descrito na tabela seguinte:
| Tipo da nota | Nível | Descrição | Exemplo |
|---|---|---|---|
| Etiquetas | Cluster do GKE |
Permitir ou negar condicionalmente políticas com base na etiqueta. Para saber mais, consulte o artigo Vista geral das etiquetas na documentação do Resource Manager. |
Conceder automaticamente aos utilizadores que são contratados acesso a clusters específicos que, normalmente, só estão disponíveis para funcionários a tempo inteiro. |
| Etiquetas de cluster do GKE | Cluster do GKE |
Organize os recursos do GKE para monitorizar a utilização e a faturação. Para saber mais, consulte o artigo Etiquetas de cluster. |
Diferenciar entre clusters pertencentes a centros de custos ou equipas específicos na sua organização. |
| Etiquetas do Kubernetes | Cluster do GKE |
Associar componentes e recursos do cluster entre si e gerir os ciclos de vida dos recursos. Para saber mais, consulte o artigo Etiquetas e seletores do Kubernetes. |
Exigir que as cargas de trabalho sejam agendadas em nós com etiquetas específicas. |
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ative a API Google Kubernetes Engine
- Se quiser usar a CLI gcloud para esta tarefa,
instale-a e, em seguida,
inicialize a
CLI gcloud. Se instalou anteriormente a CLI gcloud, execute o comando
gcloud components updatepara obter a versão mais recente. As versões anteriores da CLI gcloud podem não suportar a execução dos comandos neste documento.
Certifique-se de que tem as seguintes funções de IAM para trabalhar com etiquetas:
roles/resourcemanager.tagAdminroles/resourcemanager.tagUser
Para ver informações sobre as autorizações concedidas por estas funções, consulte a secção Autorizações necessárias.
Crie chaves e valores de etiquetas
Antes de poder anexar uma etiqueta aos seus recursos do GKE, tem de criar a etiqueta e configurar os respetivos valores. Para criar chaves e valores de etiquetas, consulte os artigos Criar uma etiqueta e Adicionar valores de etiquetas na documentação do Resource Manager.
Anexe etiquetas a um cluster
Pode anexar etiquetas a um cluster existente se tiver as autorizações corretas através da CLI Google Cloud, da Google Cloud consola ou da API Tags.
gcloud
Para criar uma associação de etiquetas para anexar uma etiqueta a um cluster, execute o seguinte comando:
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Substitua o seguinte:
TAG_VALUE_ID: o ID permanente ou o nome com espaço de nomes do valor da etiqueta a anexar. Por exemplo,tagValues/4567890123. Para ver detalhes sobre os identificadores de etiquetas, consulte o artigo Definições e identificadores de etiquetas.RESOURCE_ID: O nome completo do recurso do seu cluster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME.No ID do recurso:
PROJECT_ID: o ID do seu Google Cloud projeto.CLUSTER_NAME: o nome do seu cluster.
CLUSTER_LOCATION: o nome da Google Cloud localização a partir da qual o seu cluster é gerido.
Consola
Aceda à página Google Kubernetes Engine na Google Cloud consola.
Na lista de clusters, clique no nome do cluster que quer modificar.
Na secção Metadados, junto a Etiquetas, clique em Editar etiquetas.
Se a sua organização não aparecer no painel Etiquetas, clique em Selecionar âmbito. Selecione a sua organização e clique em Abrir.
No painel Etiquetas, selecione Adicionar etiqueta.
Selecione a chave da etiqueta que quer anexar na lista. Pode filtrar a lista escrevendo palavras-chave.
Selecione o valor da etiqueta que quer anexar na lista. Pode filtrar a lista escrevendo palavras-chave.
Clique em Guardar.
Na caixa de diálogo Confirmar, clique em Confirmar para anexar a etiqueta.
É apresentada uma notificação a confirmar que as etiquetas foram atualizadas.
API
Para anexar uma etiqueta a um recurso, tem de criar primeiro uma representação JSON de uma associação de etiquetas que inclua os IDs permanentes do valor da etiqueta e do recurso. Para mais informações sobre o formato de uma associação de etiquetas, consulte a referência de TagBinding.
Use o método tagBindings.create com o ponto final onde o cluster está localizado.
POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Substitua LOCATION pela Google Cloud
localização onde o cluster está localizado, como us-central1.
Corpo do pedido JSON:
{
"parent": "RESOURCE_ID",
"tagValue": "TAG_VALUE_ID"
}
Substitua o seguinte:
RESOURCE_ID: O nome completo do recurso do seu cluster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME.No ID do recurso:
PROJECT_ID: o ID do seu Google Cloud projeto.CLUSTER_NAME: o nome do seu cluster.
TAG_VALUE_ID: o ID permanente ou o nome com espaço de nomes do valor da etiqueta a anexar. Por exemplo,tagValues/4567890123. Para ver detalhes sobre os identificadores de etiquetas, consulte o artigo Definições e identificadores de etiquetas.
O resultado é semelhante ao seguinte:
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.TagBinding",
"name": "tagBindings///container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/attachedClusters/CLUSTER_NAME/tagValues/TAG_VALUE_ID",
"parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/attachedClusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
}
Listar etiquetas anexadas a um cluster
Pode listar as etiquetas anexadas a um cluster através da CLI gcloud, da Google Cloud consola ou da API Tags.
gcloud
Para obter uma lista de associações de etiquetas anexadas a um cluster, execute o seguinte comando:
gcloud resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Substitua o seguinte:
RESOURCE_ID: O nome completo do recurso do seu cluster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME.No ID do recurso:
PROJECT_ID: o ID do seu Google Cloud projeto.CLUSTER_NAME: o nome do seu cluster.
CLUSTER_LOCATION: a localização Google Cloud onde o cluster está localizado.
Consola
Aceda à página Google Kubernetes Engine na Google Cloud consola.
Na lista de clusters, clique no nome do cluster que quer ver.
Na secção Metadados, junto a Etiquetas, procure os valores das etiquetas atualmente anexados.
API
Para obter uma lista de associações de etiquetas para um cluster, use o tagBindings.list
método com o ponto final onde o cluster está localizado.
GET https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Corpo do pedido JSON:
{
"parent": RESOURCE_ID,
}
Substitua o seguinte:
RESOURCE_ID: O nome completo do recurso do seu cluster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME.No ID do recurso:
PROJECT_ID: o ID do seu Google Cloud projeto.CLUSTER_NAME: o nome do seu cluster.
O resultado é semelhante ao seguinte:
"tagBindings": [
{
"name": "tagBindings/%2F%2Fcontainer.googleapis.com%2Fprojects%2Ftags-bugbash-project%2Flocations%2Fus-central1%2Fclusters%2Ftestcluster/tagValues/758072120217",
"parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/attachedClusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
]
Desassocie etiquetas de um conjunto
Pode desassociar uma etiqueta de um cluster eliminando o recurso de associação de etiquetas anexado ao cluster através da CLI gcloud, da Google Cloud consola ou da API Tags. Se precisar de eliminar uma etiqueta, tem de a desassociar primeiro de todos os recursos associados.
gcloud
Para desassociar uma associação de etiquetas anexada a um cluster, execute o seguinte comando:
gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Substitua o seguinte:
TAG_VALUE_ID: o ID permanente ou o nome com espaço de nomes do valor da etiqueta a desassociar. Por exemplo,tagValues/4567890123. Para ver detalhes sobre os identificadores de etiquetas, consulte o artigo Definições e identificadores de etiquetas.RESOURCE_ID: O nome completo do recurso do seu cluster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME.No ID do recurso:
PROJECT_ID: o ID do seu Google Cloud projeto.CLUSTER_NAME: o nome do seu cluster.
CLUSTER_LOCATION: a localização Google Cloud onde o cluster está localizado.
Consola
Aceda à página Google Kubernetes Engine na Google Cloud consola.
Na lista de clusters, clique no nome do cluster que quer modificar.
Na secção Metadados, junto a Etiquetas, clique em Editar etiquetas.
No painel Etiquetas, junto à etiqueta que quer desassociar, clique em Eliminar item.
Clique em Guardar.
Na caixa de diálogo Confirmar, clique em Confirmar para desassociar a etiqueta.
É apresentada uma notificação a confirmar que as etiquetas foram atualizadas.
API
Para eliminar associações de etiquetas para um cluster, use o método tagBindings.delete com o ponto final onde o cluster está localizado.
DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/TAG_BINDING_NAME
Substitua TAG_BINDING_NAME pelo nome completo do recurso do tagBindingobjeto que quer desanexar. Por exemplo,
tagBindings/container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/tagValues/TAG_VALUE_ID.
Elimine chaves de etiquetas e valores de etiquetas
Antes de eliminar chaves e valores de etiquetas, certifique-se de que as etiquetas estão desassociadas de todos os recursos. Em seguida, consulte o artigo Eliminar etiquetas para eliminar as chaves e os valores.
Condições e etiquetas da gestão de identidade e de acesso
Pode usar etiquetas e condições de IAM para conceder condicionalmente associações de funções aos utilizadores na hierarquia do seu projeto. Quando altera ou elimina a etiqueta associada a um cluster que tem uma política de IAM com associações de funções condicionais, o GKE reavalia as autorizações de acesso com base nas condições atualizadas.
A autorização para listar e criar clusters do GKE é verificada ao nível do projeto e não ao nível do cluster individual. Se usar associações de funções do IAM condicionais com etiquetas ao nível do cluster para restringir o acesso a clusters específicos, esses utilizadores podem ter erros ao tentar listar ou criar clusters no projeto. Para evitar estes erros, anexe uma etiqueta ao projeto principal e use uma associação de funções condicional para conceder acesso à lista ou criar acesso. Para informações sobre funções e autorizações, consulte a referência de funções de IAM.
Para mais informações sobre concessões de acesso condicional na IAM, consulte o artigo Condições e etiquetas da gestão de identidades e acessos.
O que se segue?
- Saiba como definir uma política da organização com etiquetas.
- Saiba como gerir etiquetas e anexá-las a recursos.
- Veja os outros serviços que suportam etiquetas.
- Saiba como usar etiquetas com o IAM.