Bonnes pratiques relatives à l’isolation de clusters dans Azure Kubernetes Service (AKS)Best practices for cluster isolation in Azure Kubernetes Service (AKS)

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.As you manage clusters in Azure Kubernetes Service (AKS), you often need to isolate teams and workloads. AKS vous offre une certaine flexibilité dans la manière d’exécuter les clusters multilocataires et d’isoler les ressources.AKS provides flexibility in how you can run multi-tenant clusters and isolate resources. Pour maximiser votre investissement dans Kubernetes, il est important de comprendre et d’implémenter ces fonctionnalités de multilocation et d’isolation.To maximize your investment in Kubernetes, these multi-tenancy and isolation features should be understood and implemented.

Cet article traite des bonnes pratiques d’isolation pour les opérateurs de clusters.This best practices article focuses on isolation for cluster operators. Dans cet article, vous apprendrez comment :In this article, you learn how to:

  • Préparer des clusters multilocataires et la séparation des ressourcesPlan for multi-tenant clusters and separation of resources
  • Utiliser l’isolement logique ou physique dans vos clusters AKSUse logical or physical isolation in your AKS clusters

Concevoir des clusters pour la multilocationDesign clusters for multi-tenancy

Kubernetes fournit des fonctionnalités qui vous permettent d’isoler logiquement les équipes et les charges de travail dans le même cluster.Kubernetes provides features that let you logically isolate teams and workloads in the same cluster. L’objectif est de fournir le moins de privilèges et de les limiter aux ressources dont chaque équipe a besoin.The goal should be to provide the least number of privileges, scoped to the resources each team needs. Un espace de noms dans Kubernetes crée une limite d’isolation logique.A Namespace in Kubernetes creates a logical isolation boundary. Voici d’autres fonctionnalités et considérations liées à l’isolation et à la multilocation dans Kubernetes :Additional Kubernetes features and considerations for isolation and multi-tenancy include the following areas:

  • Planification : inclut l’utilisation de fonctionnalités de base telles que les quotas de ressources et les budgets de perturbation de pod.Scheduling includes the use of basic features such as resource quotas and pod disruption budgets. Pour plus d’informations sur ces fonctionnalités, consultez Bonnes pratiques relatives aux fonctionnalités de base du planificateur dans AKS.For more information about these features, see Best practices for basic scheduler features in AKS.
  • Réseau : inclut l’utilisation de stratégies réseau pour contrôler le flux du trafic à destination et en provenance des pods.Networking includes the use of network policies to control the flow of traffic in and out of pods.
  • Authentification et autorisation : incluent l’utilisation du contrôle d’accès en fonction du rôle (RBAC) et de l’intégration Azure Active Directory (AD), les identités de pod et les secrets dans Azure Key Vault.Authentication and authorization include the user of role-based access control (RBAC) and Azure Active Directory (AD) integration, pod identities, and secrets in Azure Key Vault. Pour plus d’informations sur ces fonctionnalités, consultez Bonnes pratiques relatives à l’authentification et à l’autorisation dans AKS.For more information about these features, see Best practices for authentication and authorization in AKS.
  • Conteneurs comprend le module complémentaire Azure Policy pour AKS afin d’appliquer la sécurité de pod, l’utilisation de contextes de sécurité de pod et l’analyse des deux images et du runtime pour les vulnérabilités.Containers includes the Azure Policy Add-on for AKS to enforce pod security, the use of pod security contexts, and scanning both images and the runtime for vulnerabilities. Implique également l’utilisation d’App Armor ou de Seccomp (Secure Computing) pour restreindre l’accès du conteneur au nœud sous-jacent.Also involves using App Armor or Seccomp (Secure Computing) to restrict container access to the underlying node.

Isoler logiquement des clustersLogically isolate clusters

Guide de bonne pratique : utilisez une isolation logique pour séparer les équipes et les projets.Best practice guidance - Use logical isolation to separate teams and projects. Essayez de réduire le nombre de clusters AKS physiques que vous déployez pour isoler les équipes ou les applications.Try to minimize the number of physical AKS clusters you deploy to isolate teams or applications.

Grâce à l’isolation logique, un même cluster AKS peut être utilisé pour plusieurs charges de travail, équipes ou environnements.With logical isolation, a single AKS cluster can be used for multiple workloads, teams, or environments. Les espaces de noms Kubernetes forment la limite d’isolation logique pour les charges de travail et les ressources.Kubernetes Namespaces form the logical isolation boundary for workloads and resources.

Isolation logique d’un cluster Kubernetes dans AKS

La séparation logique de clusters fournit généralement une densité de pods supérieure à celle résultant de l’isolation physique.Logical separation of clusters usually provides a higher pod density than physically isolated clusters. L’excédent de capacité de calcul en état d’inactivité dans le cluster est moins important.There's less excess compute capacity that sits idle in the cluster. En combinant cette approche à l’outil Kubernetes de mise à l’échelle automatique de cluster (« autoscaler »), vous pouvez effectuer un scale-up ou un scale-down des nœuds pour répondre aux demandes.When combined with the Kubernetes cluster autoscaler, you can scale the number of nodes up or down to meet demands. Cette bonne pratique concernant la mise à l’échelle automatique vous permet d’exécuter uniquement le nombre de nœuds nécessaires et de réduire les coûts.This best practice approach to autoscaling lets you run only the number of nodes required and minimizes costs.

Les environnements Kubernetes, dans AKS ou ailleurs, ne sont pas totalement sûrs pour une utilisation multi-locataire hostile.Kubernetes environments, in AKS or elsewhere, aren't completely safe for hostile multi-tenant usage. Dans un environnement multilocataire, plusieurs locataires travaillent sur une infrastructure partagée commune.In a multi-tenant environment multiple tenants are working on a common, shared infrastructure. Par conséquent, si aucun locataire ne peut être approuvé, vous devez effectuer une planification supplémentaire pour éviter qu’un locataire n’affecte la sécurité et le service d’un autre.As a result if all tenants cannot be trusted, you need to do additional planning to avoid one tenant impacting the security and service of another. Des fonctionnalités de sécurité supplémentaires, telles que la stratégie de sécurité des pods, et un contrôle d’accès en fonction du rôle (RBAC) plus détaillé pour les nœuds rendent les attaques plus difficiles.Additional security features such as Pod Security Policy and more fine-grained role-based access control (RBAC) for nodes make exploits more difficult. Mais lors de l’exécution de charges de travail multi-locataires hostiles, seul un hyperviseur garantira véritablement la sécurité.However, for true security when running hostile multi-tenant workloads, a hypervisor is the only level of security that you should trust. Le domaine de sécurité de Kubernetes devient le cluster, et non un nœud individuel.The security domain for Kubernetes becomes the entire cluster, not an individual node. Pour ces types de charges de travail multi-locataires hostiles, vous devez utiliser des clusters physiquement isolés.For these types of hostile multi-tenant workloads, you should use physically isolated clusters.

Isoler physiquement des clustersPhysically isolate clusters

Guide de bonne pratique : réduisez l’utilisation de l’isolation physique pour chaque équipe ou déploiement d’application.Best practice guidance - Minimize the use of physical isolation for each separate team or application deployment. Utilisez plutôt l’isolation logique, comme indiqué dans la section précédente.Instead, use logical isolation, as discussed in the previous section.

Une approche courante en matière d’isolation de cluster consiste à utiliser des clusters AKS séparés physiquement.A common approach to cluster isolation is to use physically separate AKS clusters. Dans ce modèle d’isolation, les équipes ou charges de travail se voient affecter leur propre cluster AKS.In this isolation model, teams or workloads are assigned their own AKS cluster. Cette approche apparaît souvent comme la plus simple pour isoler des charges de travail ou des équipes, mais elle ajoute des efforts de gestion et des frais supplémentaires.This approach often looks like the easiest way to isolate workloads or teams, but adds additional management and financial overhead. Vous devez en effet gérer ces clusters, en particulier fournir un accès et affecter des autorisations à chacun d’eux.You now have to maintain these multiple clusters, and have to individually provide access and assign permissions. Tous les nœuds individuels vous sont également facturés.You're also billed for all the individual nodes.

Isolation physique de clusters Kubernetes individuels dans AKS

Les clusters séparés physiquement offrent généralement une faible densité de pods.Physically separate clusters usually have a low pod density. Du fait que chaque équipe ou charge de travail a son propre cluster AKS, le cluster est fréquemment surprovisionné avec des ressources de calcul.As each team or workload has their own AKS cluster, the cluster is often over-provisioned with compute resources. Souvent, un petit nombre de pods sont planifiés sur ces nœuds.Often, a small number of pods are scheduled on those nodes. Toute capacité inutilisée sur les nœuds ne peut pas être exploitée par d’autres équipes pour des applications ou des services en cours de développement.Unused capacity on the nodes can't be used for applications or services in development by other teams. Cet excédent de ressources engendre des frais supplémentaires pour les clusters séparés physiquement.These excess resources contribute to the additional costs in physically separate clusters.

Étapes suivantesNext steps

Dans cet article, nous avons traité de l’isolation des clusters.This article focused on cluster isolation. Pour plus d’informations sur les opérations liées aux clusters dans AKS, consultez les bonnes pratiques suivantes :For more information about cluster operations in AKS, see the following best practices: