Bonnes pratiques pour la continuité d’activité et la reprise d’activité dans AKS (Azure Kubernetes Services)Best practices for business continuity and disaster recovery in Azure Kubernetes Service (AKS)

Quand vous gérez des clusters dans AKS (Azure Kubernetes Service), le temps de fonctionnement des applications s’avère important.As you manage clusters in Azure Kubernetes Service (AKS), application uptime becomes important. Par défaut, AKS fournit une haute disponibilité en utilisant différents nœuds au sein d'un groupe de machines virtuelles identiques.By default, AKS provides high availability by using multiple nodes in a Virtual Machine Scale Set (VMSS). Mais ces nœuds multiples ne protègent pas votre système contre une défaillance régionale.But these multiple nodes don’t protect your system from a region failure. Pour optimiser votre temps de fonctionnement, soyez prévoyant pour assurer la continuité de l’activité et faire face à une situation de récupération d’urgence.To maximize your uptime, plan ahead to maintain business continuity and prepare for disaster recovery.

Cet article porte essentiellement sur la planification de la continuité d’activité et la récupération d’urgence dans AKS.This article focuses on how to plan for business continuity and disaster recovery in AKS. Vous allez apprendre à effectuer les actions suivantes :You learn how to:

  • Planifier des clusters AKS dans plusieurs régions.Plan for AKS clusters in multiple regions.
  • Router le trafic sur plusieurs clusters avec Azure Traffic Manager.Route traffic across multiple clusters by using Azure Traffic Manager.
  • Utiliser la géoréplication pour les registres d’images conteneur.Use geo-replication for your container image registries.
  • Planifier l’état de l’application sur plusieurs clusters.Plan for application state across multiple clusters.
  • Répliquer le stockage dans plusieurs régions.Replicate storage across multiple regions.

Planifier le déploiement multirégionPlan for multiregion deployment

Bonne pratique : quand vous déployez plusieurs clusters AKS, choisissez des régions où AKS est disponible et utilisez des régions appairées.Best practice: When you deploy multiple AKS clusters, choose regions where AKS is available, and use paired regions.

Un cluster AKS est déployé dans une seule région.An AKS cluster is deployed into a single region. Pour protéger votre système contre la défaillance d’une région, déployez votre application sur plusieurs clusters AKS dans différentes régions.To protect your system from region failure, deploy your application into multiple AKS clusters across different regions. Pour savoir à quel emplacement déployer votre cluster AKS, tenez compte des points suivants :When you plan where to deploy your AKS cluster, consider:

  • Disponibilité des régions AKS : Choisissez des régions proches de vos utilisateurs.AKS region availability: Choose regions close to your users. AKS s’étend en permanence à de nouvelles régions.AKS continually expands into new regions.
  • Régions associées Azure : Pour votre zone géographique, choisissez deux régions appairées l’une à l’autre.Azure paired regions: For your geographic area, choose two regions that are paired with each other. Les régions appairées coordonnent les mises à jour de la plateforme et hiérarchisent les efforts de récupération si nécessaire.Paired regions coordinate platform updates and prioritize recovery efforts where needed.
  • Disponibilité du service : Décidez si vos régions appairées doivent avoir un niveau de disponibilité chaud/chaud, chaud/tiède ou chaud/froid.Service availability: Decide whether your paired regions should be hot/hot, hot/warm, or hot/cold. Souhaitez-vous utiliser les deux régions en même temps, avec une région prête à commencer à traiter le trafic ?Do you want to run both regions at the same time, with one region ready to start serving traffic? Ou souhaitez-vous une région qui a besoin de temps pour se préparer à assurer cette tâche ?Or do you want one region to have time to get ready to serve traffic?

La disponibilité des régions AKS et les régions appairées sont des questions qui vont de pair.AKS region availability and paired regions are a joint consideration. Déployez vos clusters AKS sur des régions appairées qui sont conçues pour gérer ensemble la reprise d’activité.Deploy your AKS clusters into paired regions that are designed to manage region disaster recovery together. Par exemple, AKS est disponible dans les régions USA Est et USA Ouest.For example, AKS is available in East US and West US. Ces régions sont appairées.These regions are paired. Choisissez ces deux régions si vous créez une stratégie AKS de continuité d’activité/récupération d’urgence (BC/DR).Choose these two regions when you're creating an AKS BC/DR strategy.

Quand vous déployez votre application, ajoutez une autre étape à votre pipeline d’intégration continue/déploiement continu (CI/CD) pour effectuer le déploiement sur ces divers clusters AKS.When you deploy your application, add another step to your CI/CD pipeline to deploy to these multiple AKS clusters. Si vous ne mettez pas à jour vos pipelines de déploiement, les applications risquent d’être déployées dans une seule de vos régions et un seul de vos clusters AKS.If you don't update your deployment pipelines, applications might be deployed into only one of your regions and AKS clusters. Dans ce cas, le trafic client dirigé vers une région secondaire ne recevra pas les dernières mises à jour de code.Customer traffic that's directed to a secondary region won't receive the latest code updates.

Utiliser Azure Traffic Manager pour router le traficUse Azure Traffic Manager to route traffic

Bonne pratique : Azure Traffic Manager peut diriger les clients vers leur cluster AKS et leur instance d’application les plus proches.Best practice: Azure Traffic Manager can direct customers to their closest AKS cluster and application instance. Pour optimiser les performances et la redondance, faites transiter l’ensemble du trafic d’application par Traffic Manager avant qu’il parvienne à votre cluster AKS.For the best performance and redundancy, direct all application traffic through Traffic Manager before it goes to your AKS cluster.

Si vous possédez plusieurs clusters AKS dans différentes régions, utilisez Traffic Manager pour contrôler la façon dont le trafic afflue vers les applications qui s’exécutent dans chaque cluster.If you have multiple AKS clusters in different regions, use Traffic Manager to control how traffic flows to the applications that run in each cluster. Azure Traffic Manager est un équilibreur de charge de trafic DNS qui peut répartir le trafic réseau entre les régions.Azure Traffic Manager is a DNS-based traffic load balancer that can distribute network traffic across regions. Utilisez Traffic Manager pour router les utilisateurs selon le temps de réponse des clusters ou en fonction de critères géographiques.Use Traffic Manager to route users based on cluster response time or based on geography.

AKS avec Traffic Manager

Les clients qui possèdent un seul cluster AKS se connectent généralement à l’adresse IP du service ou au nom DNS d’une application donnée.Customers who have a single AKS cluster typically connect to the service IP or DNS name of a given application. Dans un déploiement impliquant plusieurs clusters, les clients doivent se connecter à un nom DNS Traffic Manager qui pointe vers les services de chaque cluster AKS.In a multicluster deployment, customers should connect to a Traffic Manager DNS name that points to the services on each AKS cluster. Définissez ces services en utilisant des points de terminaison Traffic Manager.Define these services by using Traffic Manager endpoints. Chaque point de terminaison est l’adresse IP d’équilibreur de charge de service.Each endpoint is the service load balancer IP. Cette configuration vous permet de diriger le trafic réseau du point de terminaison Traffic Manager d’une région vers le point de terminaison d’une autre région.Use this configuration to direct network traffic from the Traffic Manager endpoint in one region to the endpoint in a different region.

Routage géographique via Traffic Manager

Traffic Manager effectue des recherches DNS et retourne le point de terminaison le plus approprié pour un utilisateur.Traffic Manager performs DNS lookups and returns a user's most appropriate endpoint. Les profils imbriqués peuvent donner la priorité à un emplacement principal.Nested profiles can prioritize a primary location. Par exemple, un utilisateur doit généralement se connecter à sa région géographique la plus proche.For example, users should generally connect to their closest geographic region. Si cette région rencontre un problème, Traffic Manager dirige l’utilisateur vers une région secondaire.If that region has a problem, Traffic Manager instead directs the users to a secondary region. Cette approche garantit aux clients qu’ils peuvent se connecter à une instance d’application, même si leur région géographique la plus proche n’est pas disponible.This approach ensures that customers can connect to an application instance even if their closest geographic region is unavailable.

Pour savoir comment configurer des points de terminaison et le routage, consultez Configurer la méthode de routage du trafic géographique à l’aide de Traffic Manager.For information on how to set up endpoints and routing, see Configure the geographic traffic routing method by using Traffic Manager.

Routage d’applications avec Azure Front Door ServiceApplication routing with Azure Front Door Service

Grâce au protocole anycast basé sur Split TCP, Azure Front Door Service garantit la connexion rapide des utilisateurs finaux au point de présence (POP) Front Door le plus proche.Using split TCP-based anycast protocol, Azure Front Door Service ensures that your end users promptly connect to the nearest Front Door POP (Point of Presence). Les fonctionnalités supplémentaires d'Azure Front Door Service incluent l'arrêt TLS, le domaine personnalisé, le pare-feu d'applications web, la réécriture d'URL et l'affinité de session.Additional features of Azure Front Door Service include TLS termination, custom domain, web application firewall, URL Rewrite, and session affinity. Passez en revue les besoins de trafic de votre application pour comprendre la solution qui est la plus adaptée.Review the needs of your application traffic to understand which solution is the most suitable.

Interconnecter des régions avec l’appairage de réseau virtuel globalInterconnect regions with global virtual network peering

Si les clusters doivent communiquer entre eux, il est possible de connecter les deux réseaux virtuels entre eux via l’appairage de réseau virtuel.If the clusters need to talk to each other, connecting both virtual networks to each other can be achieved through virtual network peering. Cette technologie interconnecte les réseaux virtuels entre eux pour fournir une bande passante élevée à travers le réseau principal de Microsoft, même entre différentes régions géographiques.This technology interconnects virtual networks to each other providing high bandwidth across Microsoft's backbone network, even across different geographic regions.

Un prérequis pour appairer les réseaux virtuels où des clusters AKS sont en cours d’exécution est d’utiliser le service Load Balancer standard dans votre cluster AKS, de sorte que les services Kubernetes soient accessibles via l’appairage de réseaux virtuels.A prerequisite to peer the virtual networks where AKS clusters are running is to use the standard Load Balancer in your AKS cluster, so that Kubernetes services are reachable across the virtual network peering.

Activer la géoréplication pour les images conteneurEnable geo-replication for container images

Bonne pratique : Stockez vos images conteneur dans Azure Container Registry et géorépliquez le registre dans chaque région AKS.Best practice: Store your container images in Azure Container Registry and geo-replicate the registry to each AKS region.

Pour déployer et exécuter vos applications dans AKS, vous avez besoin d’un moyen de stocker et d’extraire les images conteneur.To deploy and run your applications in AKS, you need a way to store and pull the container images. Container Registry s’intègre avec AKS, ce qui lui permet de stocker de manière sécurisée vos images conteneur ou graphiques Helm.Container Registry integrates with AKS, so it can securely store your container images or Helm charts. Container Registry prend en charge la géoréplication multimaître pour répliquer automatiquement vos images dans les régions Azure à l’échelon mondial.Container Registry supports multimaster geo-replication to automatically replicate your images to Azure regions around the world.

Pour améliorer les performances et la disponibilité, utilisez la géoréplication Container Registry pour créer un registre dans chaque région où vous possédez un cluster AKS.To improve performance and availability, use Container Registry geo-replication to create a registry in each region where you have an AKS cluster. Chaque cluster AKS extrait ensuite les images conteneur du registre de conteneurs local dans la même région :Each AKS cluster then pulls container images from the local container registry in the same region:

Géoréplication Container Registry pour les images conteneur

Quand vous utilisez la géoréplication Container Registry pour extraire les images d’une même région, les résultats sont :When you use Container Registry geo-replication to pull images from the same region, the results are:

  • Plus rapides : Vous extrayez les images à partir de connexions réseau haut débit et à faible latence dans la même région Azure.Faster: You pull images from high-speed, low-latency network connections within the same Azure region.
  • Plus fiables : Si une région n’est pas disponible, votre cluster AKS extrait les image auprès d’un registre de conteneurs disponible.More reliable: If a region is unavailable, your AKS cluster pulls the images from an available container registry.
  • Plus économiques : Il n’existe aucun frais de sortie de réseau entre les centres de données.Cheaper: There's no network egress charge between datacenters.

La géoréplication est une fonctionnalité des registres de conteneurs de la référence (SKU) Premium.Geo-replication is a feature of Premium SKU container registries. Pour savoir comment configurer la géoréplication, consultez Géoréplication dans Container Registry.For information on how to configure geo-replication, see Container Registry geo-replication.

Supprimer l’état du service des conteneursRemove service state from inside containers

Bonne pratique : Dans la mesure du possible, ne stockez pas l’état du service dans le conteneur.Best practice: Where possible, don't store service state inside the container. Au lieu de cela, utilisez une plateforme Azure en tant que service (PaaS) qui prend en charge la réplication multirégion.Instead, use an Azure platform as a service (PaaS) that supports multiregion replication.

L’état du service correspond aux données en mémoire ou sur disque nécessaires au bon fonctionnement du service.Service state refers to the in-memory or on-disk data that a service requires to function. L’état comprend des variables membres et des structures de données que le service lit et écrit.State includes the data structures and member variables that the service reads and writes. Selon l’architecture du service, l’état peut aussi inclure des fichiers ou d’autres ressources stockés sur le disque,Depending on how the service is architected, the state might also include files or other resources that are stored on the disk. par exemple, les fichiers qu’utilise une base de données pour stocker les journaux de données et de transactions.For example, the state might include the files a database uses to store data and transaction logs.

L’état peut être externalisé ou colocalisé avec le code qui le manipule.State can be either externalized or colocated with the code that manipulates the state. En règle générale, l’état est externalisé au moyen d’une base de données ou d’un autre magasin de données qui s’exécute sur différentes machines du réseau ou en dehors du processus sur la même machine.Typically, you externalize state by using a database or other data store that runs on different machines over the network or that runs out of process on the same machine.

Les conteneurs et microservices sont plus résilients quand les processus qui s’y exécutent ne conservent pas l’état.Containers and microservices are most resilient when the processes that run inside them don't retain state. Sachant que les applications contiennent presque toujours un état, utilisez une solution PaaS comme Azure Cosmos DB, Azure Database pour PostgreSQL, Azure Database pour MySQL ou Azure SQL Database.Because applications almost always contain some state, use a PaaS solution such as Azure Cosmos DB, Azure Database for PostgreSQL, Azure Database for MySQL or Azure SQL Database.

Pour créer des applications portables, suivez les recommandations suivantes :To build portable applications, see the following guidelines:

Créer un plan de migration de stockageCreate a storage migration plan

Bonne pratique : Si vous utilisez Stockage Azure, préparez et testez la migration de votre stockage de la région principale vers la région de sauvegarde.Best practice: If you use Azure Storage, prepare and test how to migrate your storage from the primary region to the backup region.

Vos applications peuvent utiliser Stockage Azure pour leurs données.Your applications might use Azure Storage for their data. Parce que vos applications sont réparties sur plusieurs clusters AKS de différentes régions, le stockage doit rester synchronisé.Because your applications are spread across multiple AKS clusters in different regions, you need to keep the storage synchronized. Voici deux méthodes courantes pour répliquer le stockage :Here are two common ways to replicate storage:

  • Réplication asynchrone basée sur l’infrastructureInfrastructure-based asynchronous replication
  • Réplication asynchrone basée sur l’applicationApplication-based asynchronous replication

Réplication asynchrone basée sur l’infrastructureInfrastructure-based asynchronous replication

Vos applications peuvent nécessiter un stockage persistant même après la suppression d’un pod.Your applications might require persistent storage even after a pod is deleted. Dans Kubernetes, vous pouvez utiliser des volumes persistants pour conserver le stockage de données.In Kubernetes, you can use persistent volumes to persist data storage. Ces volumes persistants sont montés sur une machine virtuelle de nœud, puis exposés aux pods.Persistent volumes are mounted to a node VM and then exposed to the pods. Les volumes persistants suivent les pods même si ceux-ci sont déplacés vers un autre nœud au sein du même cluster.Persistent volumes follow pods even if the pods are moved to a different node inside the same cluster.

La stratégie de réplication que vous utilisez dépend de votre solution de stockage.The replication strategy you use depends on your storage solution. Les solutions de stockage courantes comme Gluster, Ceph, Rook et Portworx fournissent toutes leurs propres recommandations concernant la récupération d’urgence et la réplication.Common storage solutions such as Gluster, Ceph, Rook, and Portworx provide their own guidance about disaster recovery and replication.

La stratégie classique consiste à fournir un point de stockage commun où les applications peuvent écrire leurs données.The typical strategy is to provide a common storage point where applications can write their data. Ces données sont ensuite répliquées entre les régions, puis rendues accessibles localement.This data is then replicated across regions and then accessed locally.

Réplication asynchrone basée sur l’infrastructure

Si vous utilisez Disques managés Azure, il existe quelques options que vous pouvez utiliser pour gérer la réplication et la récupération d’urgence.If you use Azure Managed Disks, there are a few options you can use to handle replication and disaster recovery. Velero sur Azure et Kasten sont des solutions de sauvegarde natives de Kubernetes, mais qui ne sont pas prises en charge.Velero on Azure and Kasten are back up solutions native to Kubernetes but are not supported.

Réplication asynchrone basée sur l’applicationApplication-based asynchronous replication

Kubernetes ne propose actuellement aucune implémentation native pour la réplication asynchrone basée sur l’application.Kubernetes currently provides no native implementation for application-based asynchronous replication. Les conteneurs et Kubernetes étant faiblement couplés, toute approche traditionnelle basée sur l’application ou le langage doit fonctionner.Because containers and Kubernetes are loosely coupled, any traditional application or language approach should work. En règle générale, les applications elles-mêmes répliquent les demandes de stockage, qui sont ensuite écrites dans le stockage de données sous-jacent de chaque cluster.Typically, the applications themselves replicate the storage requests, which are then written to each cluster's underlying data storage.

Réplication asynchrone basée sur l’application

Étapes suivantesNext steps

Cet article porte essentiellement sur les considérations relatives à la continuité d’activité et à la récupération d’urgence pour les clusters AKS.This article focuses on business continuity and disaster recovery considerations for AKS clusters. Pour plus d’informations sur les opérations liées aux clusters dans AKS, consultez ces articles relatifs aux bonnes pratiques :For more information about cluster operations in AKS, see these articles about best practices: