Compartir a través de


Uso de espacios de nombres administrados en Azure Kubernetes Service (AKS)

Se aplica a: ✔️ AKS automático ✔️ AKS estándar

Los espacios de nombres administrados en Azure Kubernetes Service (AKS) proporcionan una manera de aislar lógicamente las cargas de trabajo y los equipos dentro de un clúster. Esta característica permite a los administradores aplicar cuotas de recursos, aplicar directivas de red y administrar el control de acceso en el nivel de espacio de nombres. Para obtener información general detallada sobre los espacios de nombres administrados, consulte la introducción a los espacios de nombres administrados.

Antes de empezar

Prerrequisitos

Prerrequisito Notas
Azure CLI 2.80.0 o posterior instalado. Para buscar la versión de la CLI, ejecute az --version. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.
Versión de la API de AKS 2025-09-01 o una versión posterior.
Permisos necesarios Microsoft.ContainerService/managedClusters/managedNamespaces/* o Azure Kubernetes Service Namespace Contributor rol integrado. Microsoft.Resources/deployments/* en el grupo de recursos que contiene el clúster. Para obtener más información, consulte Roles integrados de espacios de nombres administrados.

Limitaciones

  • No se permite intentar usar espacios de nombres del sistema incorporados como kube-system, app-routing-system, istio-system, gatekeeper-systemetc. para administrar espacios de nombres.
  • Cuando un espacio de nombres es un espacio de nombres administrado, se bloquean los cambios realizados en el espacio de nombres a través de la API de Kubernetes.
  • Enumerar los espacios de nombres existentes que se van a convertir en el portal no funciona con clústeres privados. Puede agregar nuevos espacios de nombres.

Creación de un espacio de nombres administrado en un clúster y asignación de usuarios

Nota:

Al crear un espacio de nombres administrado, se instala un componente en el clúster para conciliar el espacio de nombres con el estado de Azure Resource Manager. Este componente bloquea los cambios en los campos y recursos administrados de la API de Kubernetes, lo que garantiza la coherencia con la configuración deseada.

En el ejemplo siguiente de Bicep se muestra cómo crear un espacio de nombres administrado como subrecurso de un clúster administrado. Asegúrese de seleccionar el valor adecuado para defaultNetworkPolicy, adoptionPolicy y deletePolicy. Para obtener más información sobre lo que significan esos parámetros, consulte la introducción a los espacios de nombres administrados.

resource existingCluster 'Microsoft.ContainerService/managedClusters@2024-03-01' existing = {
  name: 'contoso-cluster'
}

resource managedNamespace 'Microsoft.ContainerService/managedClusters/managedNamespaces@2025-09-01' = {
  parent: existingCluster
  name: 'retail-team'
  location: location
  properties: {
    defaultResourceQuota: {
      cpuRequest: '1000m'
      cpuLimit: '2000m'
      memoryRequest: '512Mi'
      memoryLimit: '1Gi'
    }
    defaultNetworkPolicy: {
      ingress: 'AllowSameNamespace'
      egress: 'AllowAll'
    }
    adoptionPolicy: 'IfIdentical'
    deletePolicy: 'Keep'
    labels: {
      environment: 'dev'
    }
    annotations: {
      owner: 'retail'
    }
  }
}

Guarde el archivo managedNamespace.bicep de Bicep en el equipo local.

Implemente el archivo de Bicep con la CLI de Azure.

az deployment group create --resource-group <resource-group> --template-file managedNamespace.bicep

Definición de variables

Defina las siguientes variables que se usarán en los pasos posteriores.

RG_NAME=cluster-rg
CLUSTER_NAME=contoso-cluster
NAMESPACE_NAME=retail-team
LABELS="environment=dev"
ANNOTATIONS="owner=retail"

Creación del espacio de nombres administrado

Para personalizar su configuración, los espacios de nombres administrados tienen varias opciones de parámetro entre las que elegir durante la creación. Asegúrese de seleccionar el valor adecuado para ingress-network-policy, egress-network-policy, adoption-policy y delete-policy. Para obtener más información sobre lo que significan esos parámetros, consulte la introducción a los espacios de nombres administrados.

az aks namespace add \
    --name ${NAMESPACE_NAME} \
    --cluster-name ${CLUSTER_NAME} \
    --resource-group ${RG_NAME} \
    --cpu-request 1000m \
    --cpu-limit 2000m \
    --memory-request 512Mi \
    --memory-limit 1Gi \
    --ingress-policy [AllowSameNamespace|AllowAll|DenyAll] \
    --egress-policy [AllowSameNamespace|AllowAll|DenyAll] \
    --adoption-policy [Never|IfIdentical|Always] \
    --delete-policy [Keep|Delete] \
    --labels ${LABELS} \
    --annotations ${ANNOTATIONS}

Asignación de un rol

Una vez creado el espacio de nombres, puede asignar uno de los roles integrados para el plano de control y el plano de datos.

ASSIGNEE="user@contoso.com"
NAMESPACE_ID=$(az aks namespace show --name ${NAMESPACE_NAME} --cluster-name ${CLUSTER_NAME} --resource-group ${RG_NAME} --query id -o tsv)

Asigne un rol de plano de control para poder ver el espacio de nombres administrado en el portal, la salida de la CLI de Azure y Azure Resource Manager. Este rol también permite al usuario recuperar las credenciales para conectarse a este espacio de nombres.

az role assignment create \
  --assignee ${ASSIGNEE} \
  --role "Azure Kubernetes Service Namespace User" \
  --scope ${NAMESPACE_ID}

Asigne el rol de plano de datos para poder obtener acceso para crear recursos en el espacio de nombres mediante la API de Kubernetes.

az role assignment create \
  --assignee ${ASSIGNEE} \
  --role "Azure Kubernetes Service RBAC Writer" \
  --scope ${NAMESPACE_ID}
  1. Inicie sesión en Azure Portal.
  2. En la página principal de Azure Portal, seleccione Crear un recurso.
  3. En la sección Categorías, seleccione Espacios de nombres de Kubernetes administrados.
  4. En la pestaña Aspectos básicos, en Detalles del proyecto, configure las siguientes opciones:
    1. Seleccione el clúster de destino en el que se va a crear el espacio de nombres.
    2. Si va a crear un nuevo espacio de nombres, deje la nueva creación predeterminada; de lo contrario, elija cambiar existente a administrado para convertir un espacio de nombres existente.
  5. Configure la directiva de red que se aplicará en el espacio de nombres.
  6. Configure las solicitudes y límites de recursos para el espacio de nombres.
  7. Seleccione los miembros (usuarios o grupos) y su rol.
    1. Asigne el rol Usuario de espacio de nombres de Azure Kubernetes Service para concederles acceso y permitir que visualicen el espacio de nombres administrado en el portal, en la salida de la CLI de Azure y en Azure Resource Manager. Este rol también permite al usuario recuperar las credenciales para conectarse a este espacio de nombres.
    2. Asigne el rol escritor de RBAC de Azure Kubernetes Service para concederles acceso para crear recursos en el espacio de nombres mediante la API de Kubernetes.
  8. Seleccione Revisar y crear para ejecutar la validación en la configuración. Una vez completada la validación, seleccione Crear.

Enumerar espacios de nombres administrados

Puede enumerar espacios de nombres administrados en distintos ámbitos mediante la CLI de Azure.

Nivel de suscripción

Ejecute el siguiente comando para enumerar todos los espacios de nombres administrados de una suscripción.

az aks namespace list --subscription <subscription-id>

Nivel de grupo de recursos

Ejecute el siguiente comando para enumerar todos los espacios de nombres administrados de un grupo de recursos específico.

az aks namespace list --resource-group <rg-name>

Nivel de clúster

Ejecute el siguiente comando para enumerar todos los espacios de nombres administrados de un clúster específico.

az aks namespace list --resource-group <rg-name> --cluster-name <cluster-name>

Enumerar espacios de nombres administrados

Puede enumerar espacios de nombres administrados en distintos ámbitos mediante la CLI de Azure.

Nivel de suscripción

Ejecute el siguiente comando para enumerar todos los espacios de nombres administrados de una suscripción.

az aks namespace list --subscription <subscription-id>

Nivel de grupo de recursos

Ejecute el siguiente comando para enumerar todos los espacios de nombres administrados de un grupo de recursos específico.

az aks namespace list --resource-group <rg-name>

Nivel de clúster

Ejecute el siguiente comando para enumerar todos los espacios de nombres administrados de un clúster específico.

az aks namespace list --resource-group <rg-name> --cluster-name <cluster-name>

Conectarse al clúster

Puede recuperar las credenciales para conectarse a un espacio de nombres mediante el siguiente comando.

az aks namespace get-credentials --name <namespace-name> --resource-group <rg-name> --cluster-name <cluster-name>

Conectarse al clúster

Puede recuperar las credenciales para conectarse a un espacio de nombres mediante el siguiente comando.

az aks namespace get-credentials --name <namespace-name> --resource-group <rg-name> --cluster-name <cluster-name>

Pasos siguientes

Este artículo se centra en el uso de la característica de espacios de nombres administrados para aislar lógicamente los equipos y las aplicaciones. Puede explorar aún más otros límites de protección y procedimientos recomendados para aplicarlos a través de protecciones de implementación.