Conception et opérations de cluster

Cet article traite de la configuration de cluster et de la conception de réseau. Découvrez comment garantir une scalabilité future en automatisant le provisionnement de l’infrastructure. Le provisionnement est le processus de configuration de l’infrastructure informatique de votre choix. Le provisionnement d’infrastructure automatisé prend en charge une installation à distance et configure des environnements virtuels. Il vous aide aussi à maintenir une haute disponibilité en planifiant la continuité d’activité et la reprise d’activité.

Planifier, former et vérifier

Pour bien démarrer, la check-list et les ressources Kubernetes ci-dessous vont vous aider à planifier la conception du cluster. À la fin de cette section, vous serez en mesure de répondre à ces questions :

  • Avez-vous identifié les exigences en matière de conception réseau pour votre cluster ?
  • Avez-vous des services avec des exigences variant dans le temps ? Combien de pools de nœuds allez-vous utiliser ?

Liste de contrôle :

  • Identifiez les considérations relatives à la conception réseau. Familiarisez-vous avec les considérations relatives à la conception du réseau de clusters, comparez les modèles de réseau et choisissez le plug-in de mise en réseau Kubernetes adapté à vos besoins. Pour la mise en réseau Azure Container Networking Interface (CNI), utilisez le nombre d’adresses IP requises comme multiple du nombre maximal de pods par nœud (30 par défaut) et le nombre de nœuds. Ajoutez un nœud nécessaire lors de la mise à niveau. Lorsque vous choisissez des services d'équilibrage de charge, pensez à utiliser un contrôleur d'entrée lorsqu'il y a trop de services pour réduire le nombre de points terminaux exposés. Pour Azure CNI, le CIDR du service doit être unique sur le réseau virtuel et tous les réseaux virtuels connectés pour garantir un routage approprié.

    Pour plus d'informations, consultez les rubriques suivantes :

  • Créez plusieurs pools de nœuds. Pour prendre en charge les applications qui ont des exigences de calcul ou de stockage différentes, vous pouvez éventuellement configurer votre cluster avec plusieurs pools de nœuds. Par exemple, utilisez des pools de nœuds supplémentaires afin de fournir des GPU pour des applications nécessitant beaucoup de ressources de calcul ou l’accès à un stockage SSD hautes performances. Pour plus d’informations, consultez Créer et gérer plusieurs pools de nœuds pour un cluster dans Azure Kubernetes Service.

  • Déterminez les exigences en matière de disponibilité. Un minimum de deux pods derrière Azure Kubernetes Service garantit une haute disponibilité de votre application en cas de panne ou de redémarrage des pods. Utilisez trois pods ou plus pour gérer la charge en cas de panne et de redémarrage des pods. Pour la configuration du cluster, un minimum de deux nœuds dans un groupe à haute disponibilité ou un groupe de machines virtuelles identiques est nécessaire pour respecter le contrat de niveau de service de 99,95 %. Utilisez au moins trois pods pour garantir la planification des pods en cas de panne et de redémarrage.

    Pour offrir un niveau de disponibilité plus élevé à vos applications, vous pouvez répartir des clusters sur plusieurs zones de disponibilité. Ces zones représentent des centres de données physiquement séparés au sein d’une région donnée. Quand les composants du cluster sont répartis dans plusieurs zones, votre cluster est capable de tolérer une défaillance dans l’une d’elles. Vos applications et vos opérations de gestion restent disponibles même si un centre de données complet tombe en panne. Pour plus d’informations, consultez Créer un cluster Azure Kubernetes Service (AKS) qui utilise des zones de disponibilité.

Passer en production et appliquer les bonnes pratiques relatives à l’infrastructure

Lors de la préparation de l’application pour la production, implémentez un ensemble minimal de bonnes pratiques. Utilisez cette check-list pour cette phase. À la fin de cette section, vous serez en mesure de répondre à ces questions :

  • Êtes-vous en mesure de redéployer en toute confiance l’infrastructure de cluster ?
  • Avez-vous appliqué des quotas de ressources ?

Liste de contrôle :

  • Automatisez le provisionnement des clusters. Avec l’infrastructure en tant que code, vous pouvez automatiser le provisionnement de l’infrastructure afin d’offrir une plus grande résilience pendant les sinistres et gagner en agilité pour redéployer rapidement l’infrastructure en fonction des besoins. Pour plus d’informations, consultez Créer un cluster Kubernetes avec Azure Kubernetes Service et Terraform.

  • Planifiez la disponibilité à l’aide de budgets de perturbation de pod. Pour maintenir la disponibilité des applications, définissez des budgets de perturbation de pod afin de vous assurer qu’un nombre minimal de pods est disponible dans le cluster lors de défaillances matérielles ou de mises à niveau de cluster. Pour plus d’informations, consultez Planifier la disponibilité en utilisant des budgets d’interruption des pods.

  • Appliquez des quotas de ressources sur les espaces de noms. Planifiez et appliquez des quotas de ressources au niveau de l’espace de noms. Vous pouvez définir des quotas sur les ressources de calcul, les ressources de stockage et le nombre d’objets. Pour plus d’informations, consultez Appliquer des quotas de ressources.

Optimiser et mettre à l’échelle

Une fois l’application en production, comment faire pour optimiser votre workflow et préparer votre application et votre équipe à une mise à l’échelle ? Utilisez la liste de contrôle d’optimisation et de mise à l’échelle pour vous préparer. À la fin de cette section, vous serez en mesure de répondre à ces questions :

  • Avez-vous un plan relatif à la continuité d’activité et à la reprise d’activité ?
  • Votre cluster peut-il être mis à l’échelle pour répondre aux demandes applicatives ?
  • Pouvez-vous superviser l’intégrité de votre cluster et de votre application, et recevoir des alertes ?

Liste de contrôle :