Crear y gestionar etiquetas en GKE en Azure
En esta página se explica cómo crear y gestionar etiquetas en los clústeres de GKE en Azure.
Información general
Una etiqueta es un par clave-valor que se puede adjuntar a un recurso de Google Cloud. Puedes usar etiquetas para permitir o denegar políticas de forma condicional en función de si un recurso tiene una etiqueta específica.
Como administrador de la plataforma, puedes usar las etiquetas para conceder roles de gestión de identidades y accesos (IAM) de forma condicional en función de si un clúster tiene una etiqueta específica. Por ejemplo, puedes configurar GKE para que asigne automáticamente roles de gestión de identidades y accesos a los usuarios que sean contratistas, de forma que puedan acceder a clústeres específicos que normalmente solo están disponibles para los empleados a tiempo completo.
Después de crear una etiqueta, puede adjuntarla a un Google Cloud recurso como par clave-valor mediante un enlace de etiqueta. Puedes asociar un valor a cada clave de un recurso. Por ejemplo, si has asociado env:dev a un clúster de GKE en Azure, no puedes asociar env:prod ni env:test. Puedes adjuntar hasta 50 etiquetas a cada recurso.
En GKE en Azure, hay varios métodos para anotar tus recursos, tal como se indica en la siguiente tabla:
| Tipo de anotación | Nivel | Descripción | Ejemplo |
|---|---|---|---|
| Etiquetas | Clúster de GKE |
Permitir o denegar políticas de forma condicional en función de la etiqueta. Para obtener más información, consulta el artículo Descripción general de las etiquetas en la documentación de Resource Manager. |
Concede automáticamente a los usuarios que sean contratistas acceso a clústeres específicos que normalmente solo están disponibles para los empleados a tiempo completo. |
| Etiquetas de clúster de GKE | Clúster de GKE |
Organiza los recursos de GKE para monitorizar el uso y la facturación. Para obtener más información, consulta Etiquetas de clústeres. |
Diferenciar entre los clústeres propiedad de centros de costes o equipos específicos de tu organización. |
| Etiquetas de Kubernetes | Clúster de GKE |
Asociar componentes y recursos de clústeres entre sí y gestionar los ciclos de vida de los recursos. Para obtener más información, consulta Etiquetas y selectores de Kubernetes. |
Requerir que las cargas de trabajo se programen en nodos con etiquetas específicas. |
Antes de empezar
Antes de empezar, asegúrate de que has realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si quieres usar Google Cloud CLI para esta tarea, instálala y, a continuación, inicialízala. Si ya has instalado la CLI de gcloud, obtén la versión más reciente ejecutando el comando
gcloud components update. Es posible que las versiones anteriores de la interfaz de línea de comandos de gcloud no admitan la ejecución de los comandos de este documento.
Asegúrate de que tienes los siguientes roles de gestión de identidades y accesos para trabajar con etiquetas:
roles/resourcemanager.tagAdminroles/resourcemanager.tagUser
Para obtener información sobre los permisos que conceden estos roles, consulta Permisos necesarios en la documentación de Resource Manager.
- Asegúrate de que tienes un clúster de GKE en Azure en ejecución.
Crear claves y valores de etiquetas
Para poder adjuntar una etiqueta a tus recursos de GKE, debes crear la etiqueta y configurar sus valores. Para crear claves y valores de etiquetas, consulta los artículos Crear una etiqueta y Añadir valores de etiquetas en la documentación de Resource Manager.
Adjuntar etiquetas a un clúster
Puedes asociar etiquetas a un clúster si tienes los permisos correctos mediante la CLI de Google Cloud, la Google Cloud consola o la API Tags.
gcloud
Para crear un enlace de etiqueta que asocie una etiqueta a un clúster, ejecuta el siguiente comando:
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Haz los cambios siguientes:
TAG_VALUE_ID: el ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se va a adjuntar. Por ejemplo,tagValues/4567890123. Para obtener información sobre los identificadores de etiquetas, consulta Definiciones e identificadores de etiquetas.
RESOURCE_ID: el nombre completo del recurso de tu clúster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/azureClusters/CLUSTER_NAME.En el ID de recurso:
PROJECT_ID: tu ID de proyecto Google Cloud .CLUSTER_NAME: el nombre del clúster.
CLUSTER_LOCATION: el nombre de la Google Cloud ubicación desde la que se gestiona tu clúster.
Consola
Ve a la página Google Kubernetes Engine en la Google Cloud consola.
En la lista de clústeres, haga clic en el nombre del clúster que quiera modificar.
En la sección Metadatos, junto a Etiquetas, haz clic en Editar etiquetas.
Si tu organización no aparece en el panel Etiquetas, haz clic en Seleccionar ámbito. Selecciona tu organización y haz clic en Abrir.
En el panel Etiquetas, selecciona Añadir etiqueta.
Selecciona la clave de la etiqueta que quieras adjuntar en la lista. Puedes filtrar la lista escribiendo palabras clave.
Selecciona el valor de la etiqueta que quieras adjuntar de la lista. Puedes filtrar la lista escribiendo palabras clave.
Haz clic en Guardar.
En el cuadro de diálogo Confirmar, haz clic en Confirmar para adjuntar la etiqueta.
Recibirás una notificación para confirmar que se han actualizado las etiquetas.
API
Para adjuntar una etiqueta a un recurso, primero debes crear una representación JSON de una vinculación de etiquetas que incluya los IDs permanentes del valor de la etiqueta y del recurso. Para obtener más información sobre el formato de un enlace de etiqueta, consulta la referencia de TagBinding.
Usa el método tagBindings.create con el endpoint en el que se encuentra tu clúster.
POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Sustituye LOCATION por la ubicación de tu clúster, como Google Cloud.us-central1
Cuerpo de la solicitud JSON:
{
"parent": "RESOURCE_ID",
"tagValue": "TAG_VALUE_ID"
}
Haz los cambios siguientes:
RESOURCE_ID: el nombre completo del recurso de tu clúster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/azureClusters/CLUSTER_NAME.En el ID de recurso:
PROJECT_ID: tu ID de proyecto Google Cloud .CLUSTER_NAME: el nombre del clúster.
TAG_VALUE_ID: el ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se va a adjuntar. Por ejemplo,tagValues/4567890123. Para obtener información sobre los identificadores de etiquetas, consulta Definiciones e identificadores de etiquetas.
El resultado debería ser similar al siguiente:
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.TagBinding",
"name": "tagBindings///container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/azureClusters/CLUSTER_NAME/tagValues/TAG_VALUE_ID",
"parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/azureClusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
}
Mostrar las etiquetas asociadas a un clúster
Puedes consultar las etiquetas asociadas a un clúster mediante la CLI de gcloud, la Google Cloud consola o la API Tags.
gcloud
Para obtener una lista de las asociaciones de etiquetas conectadas a un clúster, ejecuta el siguiente comando:
gcloud resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Haz los cambios siguientes:
RESOURCE_ID: el nombre completo del recurso de tu clúster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/azureClusters/CLUSTER_NAME.En el ID de recurso:
PROJECT_ID: tu ID de proyecto Google Cloud .CLUSTER_NAME: el nombre del clúster.
CLUSTER_LOCATION: la Google Cloud ubicación de tu clúster.
Consola
Ve a la página Google Kubernetes Engine en la Google Cloud consola.
En la lista de clústeres, haga clic en el nombre del clúster que quiera ver.
En la sección Metadatos, junto a Etiquetas, busque los valores de etiqueta adjuntos.
API
Para obtener una lista de enlaces de etiquetas de un clúster, usa el método tagBindings.list
con el endpoint en el que se encuentra tu clúster.
GET https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Cuerpo de la solicitud JSON:
{
"parent": RESOURCE_ID,
}
Haz los cambios siguientes:
RESOURCE_ID: el nombre completo del recurso de tu clúster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/azureClusters/CLUSTER_NAME.En el ID de recurso:
PROJECT_ID: tu ID de proyecto Google Cloud .CLUSTER_NAME: el nombre del clúster.
El resultado debería ser similar al siguiente:
"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/azureClusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
]
Desasociar etiquetas de un clúster
Para desvincular una etiqueta de un clúster, elimina el recurso de vinculación de etiquetas asociado al clúster mediante la CLI de gcloud, la Google Cloud consola o la API Tags. Si necesitas eliminar una etiqueta, primero debes desvincularla de todos los recursos a los que esté asociada.
gcloud
Para separar una vinculación de etiquetas asociada a un clúster, ejecuta el siguiente comando:
gcloud resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Haz los cambios siguientes:
TAG_VALUE_ID: el ID permanente o el nombre con espacio de nombres del valor de la etiqueta que se va a separar. Por ejemplo,tagValues/4567890123. Para obtener información sobre los identificadores de etiquetas, consulta el artículo Definiciones e identificadores de etiquetas.RESOURCE_ID: el nombre completo del recurso de tu clúster, como//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/azureClusters/CLUSTER_NAME.En el ID de recurso:
PROJECT_ID: tu ID de proyecto Google Cloud .CLUSTER_NAME: el nombre del clúster.
CLUSTER_LOCATION: la Google Cloud ubicación en la que se encuentra tu clúster.
Consola
Ve a la página Google Kubernetes Engine en la Google Cloud consola.
En la lista de clústeres, haga clic en el nombre del clúster que quiera modificar.
En la sección Metadatos, junto a Etiquetas, haz clic en Editar etiquetas.
En el panel Etiquetas, junto a la etiqueta que quieras desvincular, haz clic en Eliminar elemento.
Haz clic en Guardar.
En el cuadro de diálogo Confirmar, haz clic en Confirmar para separar la etiqueta.
Recibirás una notificación para confirmar que se han actualizado las etiquetas.
API
Para eliminar enlaces de etiquetas de un clúster, usa el método tagBindings.delete con el endpoint en el que se encuentra el clúster.
DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/TAG_BINDING_NAME
Sustituye TAG_BINDING_NAME por el nombre de recurso completo del objeto tagBinding que quieras separar. Por ejemplo, tagBindings/container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/tagValues/TAG_VALUE_ID.
Eliminar claves y valores de etiqueta
Antes de eliminar claves y valores de etiquetas, asegúrate de que las etiquetas no estén asociadas a ningún recurso. A continuación, consulta la sección sobre cómo eliminar etiquetas para eliminar las claves y los valores.
Condiciones y etiquetas de gestión de identidades y accesos
Puedes usar etiquetas y condiciones de gestión de identidades y accesos para conceder enlaces de roles de forma condicional a los usuarios de tu jerarquía de proyectos. Cuando cambias o eliminas la etiqueta asociada a un clúster que tiene una política de gestión de identidades y accesos con enlaces de roles condicionales, GKE vuelve a evaluar los permisos de acceso en función de las condiciones actualizadas.
La autorización para enumerar y crear clústeres de GKE se comprueba a nivel de proyecto, no a nivel de clúster individual. Si usas enlaces de roles de gestión de identidades y accesos condicionales con etiquetas a nivel de clúster para restringir el acceso a clústeres específicos, es posible que esos usuarios tengan problemas al intentar enumerar o crear clústeres en el proyecto. Para evitar estos errores, adjunta una etiqueta al proyecto principal y usa una vinculación de rol condicional para conceder acceso a la lista o crearla. Para obtener información sobre los roles y los permisos, consulta la referencia de roles de gestión de identidades y accesos.
Para obtener más información sobre las concesiones de acceso condicional en IAM, consulta Condiciones y etiquetas de gestión de identidades y accesos.
Siguientes pasos
- Consulta cómo definir una política de organización con etiquetas.
- Más información sobre cómo gestionar etiquetas y adjuntarlas a recursos
- Consulta los otros servicios que admiten etiquetas.
- Consulta cómo usar etiquetas con la gestión de identidades y accesos.