Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : ✔️ AKS Automatic ✔️ AKS Standard
Quand vous gérez des clusters dans Azure Kubernetes Service (AKS), il est souvent nécessaire d’isoler les équipes et les charges de travail. Grâce à l’isolation logique, vous pouvez utiliser un même cluster AKS pour plusieurs charges de travail, équipes ou environnements. Les espaces de noms Kubernetes forment la limite d’isolation logique pour les charges de travail et les ressources. L’isolation logique implique l’implémentation de scripts et de processus pour créer des espaces de noms, définir des limites de ressources, appliquer des stratégies réseau et accorder l’accès à l’équipe via le contrôle d’accès en fonction du rôle. Découvrez comment utiliser des espaces de noms managés dans Azure Kubernetes Service (AKS) pour simplifier la gestion des espaces de noms, l’architecture mutualisée de cluster et l’isolation des ressources.
La séparation logique des clusters fournit généralement une densité de pod supérieure à celle des clusters physiquement isolés, avec une capacité de calcul en attente moins importante dans le cluster. Lorsqu'ils sont combinés avec l'autoscaler de cluster ou le provisionnement automatique de nœuds, vous pouvez augmenter ou réduire le nombre de nœuds pour répondre aux demandes. Cette meilleure pratique vous permet de minimiser les coûts en exécutant uniquement le nombre de nœuds nécessaires.
Stratégies réseau
Les stratégies réseau sont des ressources Kubernetes que vous pouvez utiliser pour contrôler le flux de trafic entre les pods, les espaces de noms et les points de terminaison externes. Les stratégies réseau vous permettent de définir des règles pour le trafic entrant (entrant) et sortant, ce qui garantit que seules les communications autorisées sont autorisées. En appliquant des stratégies réseau, vous pouvez améliorer la sécurité et l’isolation des charges de travail au sein de votre cluster.
Remarque
La règle de stratégie réseau d’entrée par défaut d’Allow same namespace opte pour une position sécurisée par défaut. Si vous avez besoin de vos services Kubernetes, ingresses ou passerelles pour être accessibles à partir de l’extérieur de l’espace de noms où elles sont déployées, par exemple à partir d’un contrôleur d’entrée déployé dans un espace de noms distinct, vous devez sélectionner Autoriser tout. Vous pouvez alors appliquer votre propre stratégie réseau pour limiter le trafic entrant à cet espace de noms uniquement.
Les espaces de noms managés sont fournis avec un ensemble de stratégies intégrées.
- Autoriser tout : autorise tout le trafic réseau.
- Autoriser le même espace de noms : autorise tout le trafic réseau dans le même espace de noms.
- Refuser tout : refuse tout le trafic réseau.
Vous pouvez appliquer l’une des stratégies intégrées sur les règles d’entrée et de sortie , et elles ont les valeurs par défaut suivantes.
| Stratégie | Valeur par défaut |
|---|---|
| Entrée | Autoriser le même espace de noms |
| Sortie | Autoriser tout |
Remarque
Les utilisateurs disposant d'une action Microsoft.ContainerService/managedClusters/networking.k8s.io/networkpolicies/write, telle que Azure Kubernetes Service RBAC Writer, sur le rôle Microsoft Entra ID qui leur est attribué peuvent ajouter davantage de stratégies réseau via l'API Kubernetes.
Par exemple, si un administrateur applique une Deny All stratégie pour l’entrée/sortie, et qu’un utilisateur applique une Allow stratégie pour un espace de noms via l’API Kubernetes, la stratégie prend la priorité sur la Allow stratégie et le Deny All trafic est autorisé à circuler pour l’espace de noms.
Quotas de ressources
Les quotas de ressources sont des ressources Kubernetes utilisées pour gérer et limiter la consommation des ressources d’espaces de noms au sein d’un cluster. Ils permettent aux administrateurs de définir des contraintes sur la quantité d’UC, de mémoire, de stockage ou d’autres ressources utilisées par des charges de travail dans un espace de noms. En appliquant des quotas de ressources, vous pouvez garantir une distribution équitable des ressources, empêcher la surutilisation des ressources et maintenir la stabilité du cluster.
Les espaces de noms managés peuvent être créés avec les quotas de ressources suivants :
- Demandes et limites du processeur : définissez la quantité minimale et maximale de ressources processeur que les charges de travail de l’espace de noms peuvent demander ou consommer. Le quota garantit que les charges de travail disposent de ressources processeur suffisantes pour fonctionner tout en empêchant l’utilisation excessive d’autres espaces de noms. Le quota est défini dans le formulaire milliCPU.
-
Demandes et limites de mémoire : spécifiez la quantité minimale et maximale de ressources mémoire que les charges de travail de l’espace de noms peuvent demander ou consommer. Le quota permet de maintenir la stabilité en évitant le surcommitment de la mémoire et en garantissant une allocation équitable des ressources entre les espaces de noms. Le quota est défini sous forme d'équivalents de puissances de deux tels que
Ei,Pi,Ti,Gi,Mi,Ki.
Étiquettes et annotations
Les étiquettes et annotations Kubernetes sont des métadonnées attachées à des objets Kubernetes, tels que des espaces de noms, pour fournir des informations supplémentaires. Les étiquettes sont des paires clé-valeur utilisées pour organiser et sélectionner des ressources, ce qui permet de regrouper et d’interroger efficacement. Les annotations stockent des métadonnées non identifiables, telles que les détails de configuration ou les instructions opérationnelles, qui sont consommées par des outils ou des systèmes.
Vous pouvez éventuellement définir des étiquettes et des annotations Kubernetes à appliquer sur l’espace de noms.
Stratégie d’adoption
La stratégie d’adoption détermine comment un espace de noms existant dans Kubernetes est géré lors de la création d’un espace de noms managé.
Avertissement
L’intégration d’un espace de noms existant à gérer peut entraîner une interruption. Si le quota de ressources appliqué est inférieur à ce qui est déjà demandé par les pods, de nouveaux déploiements et pods qui dépassent le quota sont refusés. Les déploiements existants ne sont pas affectés, mais la mise à l’échelle est refusée. L’application de stratégies réseau à un espace de noms existant peut affecter le trafic existant. Vérifiez que les stratégies sont testées et validées pour éviter les interruptions involontaires de communication entre les pods ou les points de terminaison externes.
Les options suivantes sont disponibles :
- Jamais : si l’espace de noms existe déjà dans le cluster, tente de créer cet espace de noms en tant qu’espace de noms managé échoue.
- IfIdentical : prenez en charge l’espace de noms existant à gérer, à condition qu’il n’existe aucune différence entre l’espace de noms existant et la configuration souhaitée.
- Toujours : prenez toujours en charge l’espace de noms existant à gérer, même si certains champs de l’espace de noms peuvent être remplacés.
Supprimer la stratégie
La stratégie de suppression spécifie la façon dont l’espace de noms Kubernetes est géré lorsque la ressource d’espace de noms managée est supprimée.
Avertissement
La suppression d’un espace de noms managé avec la stratégie Delete entraîne la suppression de toutes les ressources de cet espace de noms, telles que Déploiements, Services, Ingresses et autres objets Kubernetes. Vérifiez que vous sauvegardez ou migrez toutes les ressources critiques avant de continuer.
Les options suivantes sont disponibles :
-
Conserver : supprimez uniquement la ressource d’espace de noms managée tout en conservant l’espace de noms Kubernetes intact. En outre, l’étiquette
ManagedByARMest supprimée de l’espace de noms. - Supprimer : supprimez la ressource d’espace de noms managée et l’espace de noms Kubernetes ensemble.
Espaces de noms managés prédéfinis
Les espaces de noms managés utilisent les rôles intégrés suivants pour le plan de contrôle.
| Rôle | Descriptif |
|---|---|
| Contributeur du Namespace Azure Kubernetes Service | Autorise l’accès à créer, mettre à jour et supprimer des espaces de noms managés sur un cluster. |
| Utilisateur de l’espace de noms Azure Kubernetes Service | Autorise l’accès en lecture seule à un espace de noms managé sur un cluster. Autorise l’accès aux informations d’identification de liste sur l’espace de noms. |
Les espaces de noms managés utilisent les rôles intégrés suivants pour le plan de données.
| Rôle | Descriptif |
|---|---|
| Lecteur RBAC d'Azure Kubernetes Service | Autorise l’accès en lecture seule pour voir la plupart des objets dans un espace de noms. Ce rôle n’autorise pas l’affichage des rôles et des liaisons de rôles. Ce rôle n’autorise pas l’affichage des secrets, car la lecture du contenu des secrets permet d’accéder aux informations d’identification ServiceAccount dans l’espace de noms, ce qui autoriserait l’accès à l’API en tant que ServiceAccount dans l’espace de noms (forme d’escalade de privilèges). |
| Azure Kubernetes Service RBAC Writer | Autorise l’accès en lecture/écriture pour la plupart des objets dans un espace de noms. Ce rôle n’autorise pas l’affichage ni la modification des rôles et des liaisons de rôles. Toutefois, ce rôle permet d’accéder aux secrets et aux pods en cours d’exécution comme n’importe quel ServiceAccount de l’espace de noms. Il peut donc être utilisé pour obtenir les niveaux d’accès API de n’importe quel ServiceAccount dans l’espace de noms. |
| Administrateur RBAC du service Azure Kubernetes | Autorise l’accès en lecture/écriture à la plupart des ressources d’un espace de noms, notamment la possibilité de créer des rôles et des liaisons de rôles dans l’espace de noms. Ce rôle n’autorise pas l’accès en écriture au quota de ressources ou à l’espace de noms lui-même. |
Cas d’usage des espaces de noms managés
La configuration correcte des espaces de noms avec des quotas ou des stratégies réseau associées peut être complexe et fastidieuse. Les espaces de noms managés vous permettent de configurer des espaces de noms préconfigurés dans vos clusters AKS avec lesquels vous pouvez interagir à l’aide d’Azure CLI.
Les sections suivantes décrivent certains cas d’usage courants pour les espaces de noms managés.
Gérer les équipes et les ressources sur AKS
Supposons que vous êtes administrateur dans une petite startup. Vous disposez d’un cluster AKS approvisionné et souhaitez configurer des espaces de noms pour les développeurs de vos équipes financières, juridiques et de conception . Lorsque vous configurez l’environnement de votre entreprise, vous souhaitez vous assurer que l’accès est étroitement contrôlé, que les ressources sont correctement délimitées et que les environnements sont correctement organisés.
L’équipe financière reçoit des formulaires et des fichiers des équipes de l’ensemble de l’entreprise, mais ils contiennent des informations sensibles qui ne doivent idéalement pas quitter leur environnement. Leurs applications et flux de travail sont plus légers côté informatique, mais consomment beaucoup de mémoire. Par conséquent, vous décidez de configurer un espace de noms qui autorise toutes les entrées réseau, la sortie réseau uniquement dans leur espace de noms et l’étendue de leurs ressources en conséquence. Une étiquette de l’espace de noms permet d’identifier facilement l’équipe qui l’utilise.
az aks namespace add \ --name $FINANCE_NAMESPACE \ --cluster-name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --cpu-request 250m \ --cpu-limit 500m \ --memory-request 512Mi \ --memory-limit 2Gi \ --ingress-policy AllowAll \ --egress-policy AllowSameNamespace \ --labels team=financeL’équipe juridique traite principalement des données sensibles. Leurs applications utilisent une quantité équitable de mémoire, mais nécessitent peu de ressources de calcul. Vous décidez de configurer un espace de noms extrêmement restrictif pour les politiques d'entrée/sortie et d'ajuster leurs quotas de ressources en conséquence.
az aks namespace add \ --name $LEGAL_NAMESPACE \ --cluster-name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --cpu-request 250m \ --cpu-limit 500m \ --memory-request 2Gi \ --memory-limit 5Gi \ --ingress-policy DenyAll \ --egress-policy DenyAll \ --labels team=legalL’équipe de conception a besoin de la possibilité de transmettre librement des données pour présenter leur travail au sein de l’entreprise. Ils encouragent également les équipes à leur envoyer du contenu pour référence. Leurs applications sont intensives et nécessitent une grande partie de la mémoire et du processeur. Vous décidez de les configurer avec un espace de noms minimalment restrictif et d’allouer une quantité importante de ressources pour eux.
az aks namespace add \ --name $DESIGN_NAMESPACE \ --cluster-name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --cpu-request 2000m \ --cpu-limit 2500m \ --memory-request 5Gi \ --memory-limit 8Gi \ --ingress-policy AllowAll \ --egress-policy AllowAll \ --labels team=design
Avec ces espaces de noms configurés, vous disposez maintenant d’environnements pour les trois équipes de votre organisation qui doivent permettre à chaque équipe de se mettre en place et de s’exécuter dans un environnement qui répond le mieux à leurs besoins. Les administrateurs peuvent utiliser des appels Azure CLI pour mettre à jour les espaces de noms en fonction des besoins.
Afficher les espaces de noms managés
À mesure que le nombre d’équipes que vous gérez s’étend ou que votre organisation augmente, vous devrez peut-être passer en revue les espaces de noms que vous avez configurés.
Supposons que vous souhaitiez passer en revue les espaces de noms dans votre cluster à partir de la section précédente pour vous assurer qu’il existe trois espaces de noms.
Utilisez la az aks namespace list commande pour passer en revue vos espaces de noms.
az aks namespace list \
--cluster-name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP \
--output table
Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :
Name ResourceGroup Location
------------------ --------------- ----------
$CLUSTER_NAME/$DESIGN_NAMESPACE $RESOURCE_GROUP <LOCATION>
$CLUSTER_NAME/$LEGAL_NAMESPACE $RESOURCE_GROUP <LOCATION>
$CLUSTER_NAME/$FINANCE_NAMESPACE $RESOURCE_GROUP <LOCATION>
Contrôler l’accès aux espaces de noms managés
Vous pouvez utiliser des rôles RBAC Azure, limités à chaque espace de noms, pour déterminer quels utilisateurs ont accès à certaines actions dans l’espace de noms. Avec la configuration appropriée, vous pouvez vous assurer que les utilisateurs ont tous les accès dont ils ont besoin dans l’espace de noms, tout en limitant leur accès à d’autres espaces de noms ou ressources à l’échelle du cluster.
Étapes suivantes
- Découvrez comment créer et utiliser des espaces de noms managés sur Azure Kubernetes Service (AKS).
- Découvrez les espaces de noms managés à plusieurs clusters avec Azure Kubernetes Fleet Manager.