Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Dependiendo de su rol como operador de clúster o desarrollador, puede proporcionar un entorno (Project) en el escritorio de AKS para que los desarrolladores implementen, migren o administren aplicaciones, o permitirles implementar y administrar aplicaciones en un clúster de AKS dedicado. Como alternativa, puede conceder a más desarrolladores acceso para administrar, observar y solucionar problemas de aplicaciones.
De forma predeterminada, al crear un proyecto en el escritorio de AKS, puede compartirlo con otras personas de su organización y establece los permisos para usted. Sin embargo, es posible que tenga que mantener permisos a lo largo del tiempo o automatizarlos o definir un modelo operativo estableciendo los permisos adecuados.
En este artículo se describe cómo administrar permisos de RBAC para permitir que los miembros del equipo trabajen con el escritorio de AKS.
Nota:
El escritorio de AKS no proporciona actualmente una opción de interfaz de usuario para modificar los permisos del proyecto después de la creación. Para actualizar los permisos o conceder acceso a usuarios adicionales después de crear un proyecto, use Azure Portal o la CLI de Azure como se describe en este artículo.
Nota:
Al crear proyectos en el escritorio de AKS, los espacios de nombres administrados de AKS se crean en el mismo grupo de recursos que el clúster.
Prerrequisitos
- Una suscripción de Azure. Si no tiene una suscripción de Azure, puede crear una cuenta gratuita de Azure.
- La CLI de Azure, versión 2.64.0 o posterior, instalada y configurada. Compruebe la versión con el comando
az --version. Para la instalación o la actualización, consulte Instalación de la CLI de Azure. - Extensión de la CLI de
aks-previewAzure. Instálelo mediante elaz extension add --name aks-previewcomando . - Un conocimiento básico del control de acceso basado en rol (RBAC) de Azure, consulte ¿Qué es RBAC de Azure? y roles integrados de Azure.
- Un grupo de recursos de Azure que contiene el clúster de AKS y los proyectos administrados de AKS creados a través del escritorio de AKS.
- Un clúster de AKS Standard que cumpla los requisitos de escritorio de AKS o un clúster automático de AKS, que es el clúster de Kubernetes en el que se ejecutan las aplicaciones.
- Un Azure Container Registry (ACR) para almacenar tus imágenes de contenedor para su despliegue.
Responsabilidades del operador de clúster
Como operador de clúster, es responsable del aprovisionamiento y la configuración de la infraestructura básica que permite a los equipos de desarrollo compilar e implementar aplicaciones. Sus responsabilidades incluyen:
- Creación de la infraestructura de Azure necesaria (grupo de recursos, clúster de AKS, ACR).
- Configuración de la integración del ACR con el clúster AKS.
- Asignación de permisos para que los usuarios creen proyectos.
- Opcionalmente, delegar la administración de permisos a los creadores de Project.
Creación de recursos de infraestructura
Para crear los recursos de infraestructura, necesita permisos para crear recursos en Azure. Si no tiene asignado el rol RBAC Propietario, necesita el rol Colaborador para crear recursos y el rol Administrador de acceso de usuarios para asignar permisos a otros usuarios. Asigne permisos a los usuarios para que puedan crear recursos en el grupo de recursos mediante los pasos siguientes:
Establezca variables de entorno para el grupo de recursos y el nombre del clúster. Asegúrese de reemplazar los marcadores de posición por los nombres reales del grupo de recursos y del clúster.
export RESOURCE_GROUP=<infra-resource-group> export CLUSTER_NAME=<cluster-name> export SUBSCRIPTION_ID=$(az account show --query id --output tsv) export ACR_NAME=<acr-name>Asigne el rol necesario para crear recursos en el grupo de recursos mediante el
az role assignment createcomando . Asegúrese de reemplazar<user-id>por el identificador de usuario o entidad de servicio adecuado.az role assignment create --role "Contributor" \ --assignee <user-id> \ --scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP
Integración de ACR con el clúster de AKS
Adjunte el registro de contenedor de Azure con el clúster de AKS mediante el az aks update comando .
az aks update \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--attach-acr $ACR_NAME
Selección de un modelo de creación de proyectos
Como operador de clúster, tiene dos opciones para cómo funcionan los desarrolladores con proyectos en el escritorio de AKS:
- Modelo de autoservicio: los desarrolladores crean y administran sus propios proyectos. Este enfoque proporciona a los desarrolladores una autonomía completa, pero requiere otorgarles el rol de Colaborador del espacio de nombres en Azure Kubernetes Service. Cuando los desarrolladores crean sus propios proyectos, reciben automáticamente el rol Propietario en el espacio de nombres administrado y pueden iniciar inmediatamente la implementación de aplicaciones.
- Modelo administrado: crea proyectos para desarrolladores y les concede acceso. Actualmente, puede configurarlo durante la creación del proyecto. Este enfoque proporciona más control sobre la creación de proyectos, pero si necesita asignar más miembros del equipo al proyecto después de la creación, debe asignarlos los permisos necesarios mediante Azure Portal o la CLI de Azure, tal como se describe en las secciones siguientes.
Modelo de autoservicio: permitir a los desarrolladores crear sus propios proyectos
Para permitir que los desarrolladores creen sus propios proyectos, asígneles el rol Colaborador del espacio de nombres de Azure Kubernetes Service en el clúster de AKS. Los proyectos de escritorio de AKS crean espacios de nombres administrados de AKS en segundo plano y este rol concede los permisos necesarios.
Asigne a los desarrolladores el rol Colaborador del espacio de nombres de Azure Kubernetes Service usando el comando az role assignment create. Asegúrese de reemplazar el marcador de posición por el identificador de usuario o principal de servicio adecuado.
az role assignment create \
--role "Azure Kubernetes Service Namespace Contributor" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME
Modelo administrado: creación de proyectos para desarrolladores y asignación de acceso
Si prefiere crear proyectos en nombre de los desarrolladores, debe asignar tres roles esenciales para permitirles acceder al clúster y trabajar en su espacio de nombres asignado:
-
Rol de usuario de clúster de Azure Kubernetes Service: permite a los desarrolladores descargar las credenciales del clúster mediante el
az aks get-credentialscomando . - Usuario del espacio de nombres de Azure Kubernetes Service: concede acceso al espacio de nombres administrado.
- Uno de los roles de RBAC de Kubernetes (Lector, Escritor o Administrador): controla las acciones que pueden realizar en el espacio de nombres.
Los tres roles son necesarios para que los desarrolladores accedan y trabajen correctamente con sus proyectos en el escritorio de AKS. Sin el rol de usuario de clúster de Azure Kubernetes Service, los desarrolladores no pueden descargar el archivo kubeconfig necesario para conectarse al clúster.
Asignación de acceso al clúster
Asigne el rol de usuario de clúster de Azure Kubernetes Service para habilitar la descarga de kubeconfig mediante el az role assignment create comando . Asegúrese de reemplazar el marcador de posición por el identificador de usuario o principal de servicio adecuado.
az role assignment create \
--role "Azure Kubernetes Service Cluster User Role" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME
Asignación de acceso al espacio de nombres
Asigne el rol de Usuario del Espacio de Nombres de Azure Kubernetes Service para el proyecto o espacio de nombres específico con el comando az role assignment create. Asegúrese de reemplazar el marcador de posición por el identificador de usuario o principal de servicio adecuado.
export NAMESPACE_NAME=<namespace-or-project-name>
az role assignment create \
--role "Azure Kubernetes Service Namespace User" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME/namespaces/$NAMESPACE_NAME
Asignación del rol RBAC de Kubernetes
Asigne el rol RBAC de Kubernetes adecuado en función de lo que el desarrollador debe hacer:
- Lector RBAC de Azure Kubernetes Service para acceso de solo lectura.
- RBAC Writer de Azure Kubernetes Service para implementar aplicaciones.
- Administrador de RBAC de Azure Kubernetes Service para el control administrativo total.
Obtenga el identificador del clúster de AKS mediante el
az aks showcomando .AKS_ID=$(az aks show \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --query id \ --output tsv)Asigne el rol RBAC de Kubernetes adecuado mediante el
az role assignment createcomando . Asegúrese de reemplazar el marcador de posición por el identificador de usuario o principal de servicio adecuado. En el ejemplo siguiente se asigna el rol Escritor basado en RBAC de Azure Kubernetes Service:az role assignment create \ --role "Azure Kubernetes Service RBAC Writer" \ --assignee <developer-user-id> \ --scope $AKS_ID/namespaces/$NAMESPACE_NAME
Permitir que los creadores de Project asignen permisos de acceso (opcional)
Si desea que los creadores de Project puedan asignar permisos de acceso a otros usuarios, concédales el rol Administrador de acceso de usuario. Este permiso permite al usuario establecer permisos en los recursos del grupo de recursos de infraestructura.
Asigne el rol Administrador de acceso de usuario mediante el az role assignment create comando . Asegúrese de reemplazar el marcador de posición por el identificador de usuario o principal de servicio adecuado.
az role assignment create \
--role "User Access Administrator" \
--assignee <user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP
Responsabilidades del desarrollador
Como desarrollador, trabajará en un entorno de escritorio de AKS existente para implementar aplicaciones, administrar proyectos y supervisar las cargas de trabajo. El operador de clúster le concede los permisos necesarios para realizar estas tareas. Sus responsabilidades incluyen:
- Implementación de aplicaciones en proyectos.
- Visualización y administración de aplicaciones implementadas.
- Supervisión de métricas y registros de aplicaciones.
- Modificar el acceso al proyecto (si es necesario).
Roles de usuario necesarios para desarrolladores
Para trabajar con el escritorio de AKS como desarrollador, el operador de clúster debe asignarle tres roles esenciales:
Rol de usuario de clúster de Azure Kubernetes Service: permite descargar credenciales de clúster mediante el
az aks get-credentialscomando , que es un requisito para conectarse al clúster desde el equipo local o a través del escritorio de AKS.Usuario del espacio de nombres de Azure Kubernetes Service: otorga acceso a su espacio de nombres/proyecto administrado asignado.
Uno de los roles de RBAC de Kubernetes (Lector, Escritor o Administrador): controla las acciones que puede realizar en el espacio de nombres.
- Lector RBAC de Azure Kubernetes Service para acceso de solo lectura.
- RBAC Writer de Azure Kubernetes Service para implementar aplicaciones.
- Administrador de RBAC de Azure Kubernetes Service para el control administrativo total.
Cómo se asignan los permisos
Los permisos se asignan en función de cómo se crean los proyectos en el escritorio de AKS:
Creador del proyecto: recibe automáticamente el rol Propietario en el espacio de nombres administrado y todos los permisos necesarios para implementar aplicaciones.
Otros usuarios: el operador de clúster o el creador del proyecto deben conceder acceso. Reciben:
- Rol de usuario de clúster de Azure Kubernetes Service en el clúster.
- Rol de Usuario del Servicio de Azure Kubernetes en el espacio de nombres.
- Uno de los roles de RBAC de Kubernetes (Lector, Escritor o Administrador).
Para implementar aplicaciones, necesita el rol Escritor o Administrador . Para obtener más información, consulte Roles integrados de espacios de nombres administrados.
Visualización de las métricas de la aplicación
Nota:
Las métricas pueden tardar hasta 10 minutos en rellenarse una vez implementada una aplicación.
En la pantalla principal del proyecto, puede ver las métricas de la aplicación, como la CPU, la memoria y el uso de la red. Estas métricas se obtienen del punto de conexión de Prometheus administrado respaldado por un área de trabajo de Azure Monitor.
Para ver las métricas, necesita el rol Lector de datos de supervisión en el área de trabajo de Azure Monitor. Este rol concede acceso a todas las métricas del clúster, no solo a los proyectos específicos.
El operador de clúster puede asignar este permiso mediante los pasos siguientes:
Identifique el área de trabajo de Azure Monitor que usa el clúster mediante el
az alerts-management prometheus-rule-group listcomando .export WORKSPACE_ACC_FOR_PROM_RULES=$(az alerts-management prometheus-rule-group list \ --resource-group "$RESOURCE_GROUP" \ --query "[?clusterName=='$CLUSTER_NAME'] | [0].scopes[0]" \ --output tsv)Asigne el rol Lector de datos de supervisión mediante el
az role assignment createcomando . Asegúrese de reemplazar el marcador de posición por el identificador de usuario o principal de servicio adecuado.az role assignment create \ --role "Monitoring Data Reader" \ --assignee <user-id> \ --scope $WORKSPACE_ACC_FOR_PROM_RULES
Modificación de los permisos de acceso de Project
Actualmente, el escritorio de AKS no proporciona una opción de interfaz de usuario para modificar los permisos del proyecto después de la creación. Si necesita actualizar los permisos o conceder acceso a otros usuarios, trabaje con el operador de clúster para actualizar los permisos mediante Azure Portal o la CLI de Azure. En los pasos siguientes se describe cómo asignar los roles necesarios mediante la CLI de Azure:
Asignación de acceso al clúster
Asigne el rol de usuario de clúster de Azure Kubernetes Service para habilitar la descarga de kubeconfig mediante el az role assignment create comando . Asegúrese de reemplazar el marcador de posición por el identificador de usuario o principal de servicio adecuado.
az role assignment create \
--role "Azure Kubernetes Service Cluster User Role" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME
Asignación de acceso al espacio de nombres
Asigne el rol de Usuario del Espacio de Nombres de Azure Kubernetes Service para el proyecto o espacio de nombres específico con el comando az role assignment create. Asegúrese de reemplazar el marcador de posición por el identificador de usuario o principal de servicio adecuado.
export NAMESPACE_NAME=<namespace-or-project-name>
az role assignment create \
--role "Azure Kubernetes Service Namespace User" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME/namespaces/$NAMESPACE_NAME
Asignación del rol RBAC de Kubernetes
Asigne el rol RBAC de Kubernetes adecuado en función de lo que el desarrollador debe hacer:
- Lector RBAC de Azure Kubernetes Service para acceso de solo lectura.
- RBAC Writer de Azure Kubernetes Service para implementar aplicaciones.
- Administrador de RBAC de Azure Kubernetes Service para el control administrativo total.
Obtenga el identificador del clúster de AKS mediante el
az aks showcomando .AKS_ID=$(az aks show \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --query id \ --output tsv)Asigne el rol RBAC de Kubernetes adecuado mediante el
az role assignment createcomando . Asegúrese de reemplazar el marcador de posición por el identificador de usuario o principal de servicio adecuado. En el ejemplo siguiente se asigna el rol Escritor basado en RBAC de Azure Kubernetes Service:az role assignment create \ --role "Azure Kubernetes Service RBAC Writer" \ --assignee <developer-user-id> \ --scope $AKS_ID/namespaces/$NAMESPACE_NAME
Concesión de permisos para ver métricas (opcional)
Para conceder permisos para ver las métricas, siga los pasos descritos en la sección Ver métricas de la aplicación .