Partager via


Utiliser des espaces de noms managés dans Azure Kubernetes Service (AKS)

S’applique à : ✔️ AKS Automatic ✔️ AKS Standard

Les espaces de noms managés dans Azure Kubernetes Service (AKS) permettent d’isoler logiquement les charges de travail et les équipes au sein d’un cluster. Cette fonctionnalité permet aux administrateurs d’appliquer des quotas de ressources, d’appliquer des stratégies réseau et de gérer le contrôle d’accès au niveau de l’espace de noms. Pour obtenir une vue d’ensemble détaillée des espaces de noms managés, consultez la vue d’ensemble des espaces de noms managés.

Avant de commencer

Conditions préalables

Prérequis Remarques
Azure CLI 2.80.0 ou version ultérieure installée. Pour rechercher la version de l’interface CLI, exécutez az --version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
Version de l’API AKS 2025-09-01 ou une version ultérieure.
Autorisations requises Microsoft.ContainerService/managedClusters/managedNamespaces/* ou Azure Kubernetes Service Namespace Contributor rôle intégré. Microsoft.Resources/deployments/* sur le groupe de ressources contenant le cluster. Pour plus d'informations, consultez les rôles intégrés des espaces de noms gérés.

Limites

  • L’intégration d’espaces de noms système tels que kube-system, app-routing-system, istio-system, gatekeeper-system, etc. dans les espaces de noms gérés n’est pas autorisée.
  • Lorsqu’un espace de noms est un espace de noms managé, les modifications apportées à l’espace de noms via l’API Kubernetes sont bloquées.
  • La liste des espaces de noms existants à convertir dans le portail ne fonctionne pas avec des clusters privés. Vous pouvez ajouter de nouveaux espaces de noms.

Créer un espace de noms managé sur un cluster et affecter des utilisateurs

Remarque

Lorsque vous créez un espace de noms managé, un composant est installé sur le cluster pour rapprocher l’espace de noms avec l’état dans Azure Resource Manager. Ce composant bloque les modifications apportées aux champs et ressources managés de l’API Kubernetes, ce qui garantit la cohérence avec la configuration souhaitée.

L’exemple Bicep suivant montre comment créer un espace de noms managé en tant que sous-ressource d’un cluster managé. Veillez à sélectionner la valeur appropriée pour defaultNetworkPolicy, adoptionPolicyet deletePolicy. Pour plus d’informations sur ce que ces paramètres signifient, consultez la vue d’ensemble des espaces de noms managés.

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'
    }
  }
}

Enregistrez le fichier Bicep managedNamespace.bicep sur votre ordinateur local.

Déployez le fichier Bicep en utilisant l’interface Azure CLI.

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

Définir des variables

Définissez les variables suivantes à utiliser dans les étapes suivantes.

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

Créer l’espace de noms managé

Pour personnaliser sa configuration, les espaces de noms managés ont différentes options de paramètres à choisir lors de la création. Veillez à sélectionner la valeur appropriée pour ingress-network-policy, egress-network-policy, adoption-policyet delete-policy. Pour plus d’informations sur ce que ces paramètres signifient, consultez la vue d’ensemble des espaces de noms managés.

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}

Attribuer le rôle

Une fois l’espace de noms créé, vous pouvez attribuer l’un des rôles intégrés pour le plan de contrôle et le plan de données.

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)

Attribuez un rôle de plan de contrôle pour pouvoir afficher l’espace de noms managé dans le portail, la sortie Azure CLI et Azure Resource Manager. Ce rôle permet également à l’utilisateur de récupérer les informations d’identification pour se connecter à cet espace de noms.

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

Attribuez un rôle de plan de données pour permettre la création de ressources au sein de l’espace de noms à l’aide de l’API Kubernetes.

az role assignment create \
  --assignee ${ASSIGNEE} \
  --role "Azure Kubernetes Service RBAC Writer" \
  --scope ${NAMESPACE_ID}
  1. Connectez-vous au portail Azure.
  2. Sur la page d’accueil du portail Azure, sélectionnez Créer une ressource.
  3. Dans la section Catégories , sélectionnez Espaces de noms Kubernetes managés.
  4. Sous l’onglet Informations de base , sous Détails du projet , configurez les paramètres suivants :
    1. Sélectionnez le cluster cible sur lequel vous souhaitez créer l’espace de noms.
    2. Si vous créez un nouvel espace de noms, conservez la création par défaut, sinon choisissez changer l'existant en géré pour convertir un espace de noms existant.
  5. Configurez la stratégie de mise en réseau à appliquer sur l’espace de noms.
  6. Configurez les demandes de ressources et les limites de l’espace de noms.
  7. Sélectionnez les membres (utilisateurs ou groupes) et leur rôle.
    1. Attribuez le rôle d'Utilisateur de l'espace de noms Azure Kubernetes Service pour lui donner un accès permettant d'afficher l'espace de noms géré dans le portail, la sortie Azure CLI et Azure Resource Manager. Ce rôle permet également à l’utilisateur de récupérer les informations d’identification pour se connecter à cet espace de noms.
    2. Attribuez le rôle Auteur RBAC Azure Kubernetes Service pour leur donner accès à la création de ressources dans le namespace à l’aide de l’API Kubernetes.
  8. Sélectionnez Vérifier + créer pour exécuter la validation sur la configuration. Une fois la validation terminée, sélectionnez Créer.

Répertorier les espaces de noms managés

Vous pouvez répertorier les espaces de noms managés dans différentes étendues à l’aide d’Azure CLI.

Niveau de l’abonnement

Exécutez la commande suivante pour répertorier tous les espaces de noms managés dans un abonnement.

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

Niveau du groupe de ressources

Exécutez la commande suivante pour répertorier tous les espaces de noms managés dans un groupe de ressources spécifique.

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

Au niveau du cluster

Exécutez la commande suivante pour répertorier tous les espaces de noms managés dans un cluster spécifique.

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

Répertorier les espaces de noms managés

Vous pouvez répertorier les espaces de noms managés dans différentes étendues à l’aide d’Azure CLI.

Niveau de l’abonnement

Exécutez la commande suivante pour répertorier tous les espaces de noms managés dans un abonnement.

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

Niveau du groupe de ressources

Exécutez la commande suivante pour répertorier tous les espaces de noms managés dans un groupe de ressources spécifique.

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

Au niveau du cluster

Exécutez la commande suivante pour répertorier tous les espaces de noms managés dans un cluster spécifique.

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

Se connecter au cluster

Vous pouvez récupérer les informations d’identification pour vous connecter à un espace de noms via la commande suivante.

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

Se connecter au cluster

Vous pouvez récupérer les informations d’identification pour vous connecter à un espace de noms via la commande suivante.

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

Étapes suivantes

Cet article s’est concentré sur l’utilisation de la fonctionnalité espaces de noms managés pour isoler logiquement les équipes et les applications. Vous pouvez explorer d’autres garde-fous et meilleures pratiques à appliquer via des protections de déploiement.