Cette page explique comment configurer certains composants GKE On-Prem pour la haute disponibilité et comment effectuer une reprise après sinistre.
Fonctionnalité de base
GKE On-Prem est conçu pour garantir l'isolement des défaillances autant que possible dans un domaine fonctionnel et pour donner la priorité aux fonctionnalités essentielles à la continuité des opérations.
Les principales fonctionnalités de GKE On-Prem sont les suivantes :
Cycle de vie de l'application
Les charges de travail existantes peuvent s'exécuter en continu. Il s'agit de la fonctionnalité la plus importante pour assurer la continuité des opérations.
Vous pouvez créer, mettre à jour et supprimer des charges de travail. Il s'agit de la deuxième fonctionnalité la plus importante, car GKE On-Prem doit faire évoluer les charges de travail lorsque le trafic augmente.
Cycle de vie du cluster d'utilisateur
Vous pouvez ajouter, mettre à jour, mettre à niveau et supprimer des clusters d'utilisateurs. Cette fonctionnalité est moins importante, car l'impossibilité de modifier les clusters d'utilisateurs n'affecte pas les charges de travail des utilisateurs.
Cycle de vie du cluster d'administrateur
Vous pouvez mettre à jour et mettre à niveau le cluster d'administrateur. Cette fonctionnalité est la moins importante, car le cluster d'administrateur n'héberge aucune charge de travail d'utilisateur.
Modes de défaillance
Les types de défaillance suivants peuvent affecter les performances des clusters GKE On-Prem.
Défaillance de l'hôte ESXi
Un hôte ESXi qui exécute des instances de machine virtuelle (VM) hébergeant des nœuds Kubernetes peut cesser de fonctionner ou se transformer en réseau partitionné.
Charges de travail existantes | Créer, mettre à jour et supprimer des charges de travail | Cycle de vie du cluster d'utilisateur | Cycle de vie du cluster d'administrateur |
---|---|---|---|
Interruption possible + Récupération automatique |
Interruption possible + Récupération automatique |
Interruption + Récupération automatique |
Interruption + Récupération automatique |
Les pods s'exécutant sur des VM hébergées par l'hôte défaillant sont interrompus et automatiquement replanifiés sur d'autres VM opérationnelles. Si les applications utilisateur disposent d'une capacité de charge de travail supplémentaire et sont réparties sur plusieurs nœuds, les interruptions ne sont pas perceptibles par les clients qui mettent en œuvre de nouvelles tentatives. |
Si la défaillance de l'hôte affecte la VM de plan de contrôle dans un cluster d'utilisateur standard ou plusieurs VM de plan de contrôle dans un cluster d'utilisateur à haute disponibilité, cela entraîne une interruption. | Si la défaillance de l'hôte affecte la VM de plan de contrôle ou les VM de nœud de calcul du cluster d'administrateur, cela entraîne une interruption. | Si la défaillance de l'hôte affecte la VM de plan de contrôle dans le cluster d'administrateur, cela entraîne une interruption. |
vSphere HA redémarre automatiquement les VM sur des hôtes opérationnels. | vSphere HA redémarre automatiquement les VM sur des hôtes opérationnels. | vSphere HA redémarre automatiquement les VM sur des hôtes opérationnels. | vSphere HA redémarre automatiquement les VM sur des hôtes opérationnels. |
Déployez vos charges de travail sur un cluster à haute disponibilité de façon à réduire le risque d'interruption. | Utilisez des clusters d'utilisateurs à haute disponibilité pour minimiser les risques d'interruption. |
Défaillance de la VM
Une VM peut être supprimée de manière inattendue ou un disque de démarrage peut être endommagé. Une VM peut également être compromise en raison de problèmes liés au système d'exploitation.
Charges de travail existantes | Créer, mettre à jour et supprimer des charges de travail | Cycle de vie du cluster d'utilisateur | Cycle de vie du cluster d'administrateur |
---|---|---|---|
Interruption possible + Récupération automatique |
Interruption possible + Récupération automatique |
Interruption + Récupération automatique/manuelle |
Interruption + Récupération manuelle |
Les pods s'exécutant sur les VM de nœud de calcul défaillantes sont interrompus. Ils sont automatiquement replanifiés sur d'autres VM opérationnelles par Kubernetes. Si les applications utilisateur disposent d'une capacité de charge de travail supplémentaire et sont réparties sur plusieurs nœuds, les interruptions ne sont pas perceptibles par les clients qui mettent en œuvre de nouvelles tentatives. |
Si la VM avec plan de contrôle d'un cluster d'utilisateur standard ou plusieurs VM de plan de contrôle dans un cluster d'utilisateur haute disponibilité échouent, cela comporte une interruption. | En cas de défaillance de la VM du plan de contrôle ou des VM de nœud de calcul dans le cluster administrateur, il y a interruption. | Si la VM du plan de contrôle du cluster d'administrateur échoue, une interruption se produit. |
La VM défaillante est automatiquement récupérée si la réparation automatique des nœuds est activée dans le cluster d'utilisateur. | La VM défaillante est automatiquement récupérée si la réparation automatique de nœuds est activée dans le cluster d'administrateur. | La VM de nœud de calcul défaillante dans le cluster d'administrateur sera automatiquement récupérée si la réparation automatique des nœuds est activée dans le cluster d'administrateur. Vous devez récupérer manuellement la VM de plan de contrôle défaillante dans le cluster d'administrateur. Pour obtenir de l'aide, contactez l'assistance Google. |
Vous devez récupérer manuellement la VM de plan de contrôle défaillante dans le cluster administrateur. Pour obtenir de l'aide, contactez l'assistance Google. |
Déployez vos charges de travail sur un cluster à haute disponibilité de façon à réduire le risque d'interruption. | Utilisez des clusters d'utilisateurs à haute disponibilité pour minimiser les risques d'interruption. |
Défaillance de l'espace de stockage
Le contenu d'un fichier VMDK peut être altéré en raison d'une mise hors tension concertée d'une VM ou d'une défaillance du datastore ce qui peut provoquer la perte de données etcd et de volumes PersistentVolumes (PV).
défaillance etcd
Charges de travail existantes | Créer, mettre à jour et supprimer des charges de travail | Cycle de vie du cluster d'utilisateur | Cycle de vie du cluster d'administrateur |
---|---|---|---|
Aucune interruption | Interruption possible + Récupération manuelle |
Interruption + Récupération manuelle |
Interruption + Récupération manuelle |
En cas de défaillance du stockage etcd d'un cluster utilisateur standard ou de plusieurs instances dupliquées etcd dans un cluster utilisateur haute disponibilité, il y a une interruption. | En cas de défaillance du stockage etcd d'un cluster utilisateur standard ou de plusieurs instances dupliquées etcd dans un cluster utilisateur haute disponibilité, il y a une interruption. Si l'instance dupliquée etcd d'un cluster d'administrateur échoue, une interruption se produit. |
Si l'instance dupliquée etcd d'un cluster d'administrateur échoue, une interruption se produit. | |
GKE On-Prem fournit un processus manuel de récupération après défaillance. | GKE On-Prem fournit un processus manuel de récupération après défaillance. | GKE On-Prem fournit un processus manuel de récupération après défaillance. |
Défaillance du PV de l'application utilisateur
Charges de travail existantes | Créer, mettre à jour et supprimer des charges de travail | Cycle de vie du cluster d'utilisateur | Cycle de vie du cluster d'administrateur |
---|---|---|---|
Interruption possible | Aucune interruption | Aucune interruption | Aucune interruption |
Les charges de travail qui utilisent le PV défaillant sont concernées. Déployez vos charges de travail sur un cluster à haute disponibilité de façon à réduire le risque d'interruption. |
Défaillance de l'équilibreur de charge
Une défaillance de l'équilibreur de charge peut affecter les charges de travail des utilisateurs qui exposent des services de type LoadBalancer
.
Charges de travail existantes | Créer, mettre à jour et supprimer des charges de travail | Cycle de vie du cluster d'utilisateur | Cycle de vie du cluster d'administrateur |
---|---|---|---|
Interruption + Récupération manuelle |
|||
Quelques secondes d'interruption avant que l'équilibreur de charge de secours rétablisse la connexion d'adresse IP virtuelle du plan de contrôle administrateur. L'interruption de service peut prendre jusqu'à deux secondes en cas d'utilisation de Seesaw et jusqu'à 300 secondes avec F5. Seesaw HA détecte automatiquement l'échec et bascule vers l'utilisation de l'instance de sauvegarde. GKE On-Prem fournit un processus manuel pour la récupération après une défaillance de Seesaw. |
Activer la haute disponibilité
vSphere et GKE On-Prem présentent un certain nombre de fonctionnalités qui contribuent à la haute disponibilité.
vSphere HA et vMotion
Nous vous recommandons d'activer les deux fonctionnalités suivantes dans le cluster vCenter qui héberge vos clusters GKE On-Prem :
Ces fonctionnalités améliorent la disponibilité et la récupération en cas de défaillance d'un hôte ESXi.
vCenter HA utilise plusieurs hôtes ESXi configurés en tant que cluster pour assurer une récupération rapide des pannes et une haute disponibilité économique pour les applications exécutées sur des machines virtuelles. Nous vous recommandons de provisionner votre cluster vCenter avec des hôtes supplémentaires et d'activer la surveillance de l'hôte vSphere HA avec Host Failure Response
défini sur Restart VMs
. Vos VM peuvent alors redémarrer automatiquement sur d'autres hôtes disponibles en cas de défaillance de l'hôte ESXi.
vMotion permet d'effectuer une migration à chaud sans interruption d'un hôte ESXi vers un autre hôte. Pour la maintenance planifiée de l'hôte, vous pouvez utiliser la migration à chaud vMotion pour éviter tout temps d'arrêt d'application et garantir la continuité de l'entreprise.
Cluster d'administrateur
GKE On-Prem n'est pas compatible avec l'exécution de plusieurs plans de contrôle pour le cluster d'administrateur. Toutefois, l'indisponibilité du plan de contrôle d'administrateur n'affecte pas les fonctionnalités existantes du cluster d'utilisateur ni les charges de travail exécutées dans ces clusters.
Un cluster d'administrateur comporte deux nœuds complémentaires. Si l'un est indisponible, l'autre peut toujours traiter les opérations du cluster d'administrateur. Pour la redondance, GKE On-Prem propage les services complémentaires essentiels, tels que kube-dns
, sur les deux nœuds complémentaires.
Si vous définissez antiAffinityGroups.enabled
sur true
dans le fichier de configuration du cluster d'administrateur, GKE On-Prem crée automatiquement des règles d'anti-affinité vSphere DRS pour les nœuds complémentaires, ce qui entraîne leur répartition sur deux hôtes physiques afin d'assurer une haute disponibilité.
Cluster d'utilisateur
Vous pouvez activer la haute disponibilité pour un cluster d'utilisateur en définissant masterNode.replicas
sur 3
dans le fichier de configuration du cluster d'utilisateur. Cette action génère trois nœuds dans le cluster d'administrateur, chacun exécutant un plan de contrôle pour le cluster d'utilisateur. Chacun de ces nœuds exécute également une instance dupliquée etcd. Le cluster d'utilisateur continuera de fonctionner tant qu'un plan de contrôle est en cours d'exécution et qu'il y a un quorum etcd. Un quorum etcd nécessite que deux des trois instances dupliquées etcd soient en cours d'exécution.
Si vous définissez antiAffinityGroups.enabled
sur true
dans le fichier de configuration du cluster d'administrateur, GKE On-Prem crée automatiquement des règles d'anti-affinité vSphere DRS pour les trois nœuds exécutant le plan de contrôle du cluster d'utilisateur.
Cela a pour effet de répartir les VM sur trois hôtes physiques.
GKE On-Prem crée également des règles d'anti-affinité vSphere DRS pour les nœuds de calcul de votre cluster d'utilisateur, ce qui entraîne la répartition de ces nœuds sur au moins trois hôtes physiques. Plusieurs règles d'anti-affinité DRS sont utilisées par chaque pool de nœuds du cluster d'utilisateur en fonction du nombre de nœuds. Ainsi, les nœuds de calcul peuvent trouver des hôtes sur lesquels s'exécuter, même lorsque le nombre d'hôtes est inférieur au nombre de VM dans le pool de nœuds du cluster d'utilisateur. Nous vous recommandons d'inclure des hôtes physiques supplémentaires dans le cluster vCenter. Configurez également la fonctionnalité DRS de manière à ce qu'elle soit entièrement automatisée. Ainsi, lorsqu'un hôte n'est plus disponible, le service DRS peut redémarrer automatiquement les VM sur d'autres hôtes disponibles sans enfreindre les règles d'anti-affinité de VM.
GKE On-Prem conserve un libellé de nœud spécial, onprem.gke.io/failure-domain-name
, dont la valeur est définie sur le nom d'hôte ESXi sous-jacent. Les applications utilisateur qui souhaitent bénéficier de la haute disponibilité peuvent configurer des règles podAntiAffinity
avec ce libellé comme topologyKey
, pour garantir que leurs pods d'application sont propagés sur différentes VM et hôtes physiques.
Vous pouvez également configurer plusieurs pools de nœuds pour un cluster d'utilisateur avec différents datastores et des libellés de nœuds spéciaux. De même, vous pouvez configurer des règles podAntiAffinity
en utilisant ce libellé de nœud spécial en tant qu'élément topologyKey
afin d'améliorer la disponibilité en cas de défaillance du datastore.
Pour bénéficier de la haute disponibilité pour les charges de travail d'utilisateur, assurez-vous que le cluster d'utilisateur dispose d'un nombre suffisant d'instances dupliquées sous nodePools.replicas
pour garantir l'exécution du nombre souhaité de nœuds de calcul dans le cluster d'utilisateur.
Pour isoler les défaillances des clusters d'administrateur et des clusters d'utilisateur, vous pouvez utiliser des datastores distincts.
Équilibreur de charge
Vous pouvez utiliser deux types d'équilibreurs de charge pour la haute disponibilité.
Équilibreur de charge groupé Seesaw
Pour l'équilibreur de charge groupé Seesaw, vous pouvez activer la haute disponibilité en définissant loadBalancer.seesaw.enableHA
sur true
dans le fichier de configuration du cluster.
Vous devez également activer une combinaison d'apprentissage MAC, de transmissions falsifiées et de mode promiscuité sur le groupe de ports de l'équilibreur de charge.
Avec la haute disponibilité, deux équilibreurs de charge sont configurés en mode actif-passif. Si l'équilibreur de charge actif présente un problème, le trafic est acheminé vers l'équilibreur de charge passif.
La mise à niveau d'un équilibreur de charge comporte quelques temps d'arrêt. Si le mode haute disponibilité est activé pour l'équilibreur de charge, le temps d'arrêt maximal est de deux secondes.
Équilibreur de charge F5 BIG-IP intégré
La plate-forme F5 BIG-IP fournit divers services pour vous aider à améliorer la sécurité, la disponibilité et les performances de vos applications. Pour GKE On-Prem, BIG-IP fournit un accès externe et des services d'équilibrage de charge L3/4.
Pour plus d'informations, consultez la section Haute disponibilité BIG-IP.
Récupération d'un cluster défectueux
Les sections suivantes expliquent comment récupérer un cluster défectueux.
Récupération après défaillance de l'hôte ESXi
GKE On-Prem s'appuie sur vSphere HA pour assurer une récupération en cas de défaillance de l'hôte ESXi. vSphere HA peut surveiller en continu les hôtes ESXi et redémarrer automatiquement les VM sur d'autres hôtes si nécessaire. Cette opération est transparente pour les utilisateurs de GKE On-Prem.
Récupération après une défaillance de la VM
Les défaillances de VM peuvent inclure les éléments suivants :
Suppression inattendue d'une VM.
Corruption du disque de démarrage de VM. Par exemple, un disque de démarrage est devenu en lecture seule en raison des journaux de journal anti-spam.
Échec du démarrage de la VM en raison de problèmes de performances du disque ou de la configuration du réseau. Par exemple, une VM ne peut pas démarrer, car une adresse IP ne peut pas être attribuée pour une raison quelconque.
Corruption du système de fichiers de superposition Docker.
Perte de la VM de plan de contrôle administrateur en raison d'un échec de mise à niveau.
Problèmes liés au système d'exploitation.
Les défaillances de VM décrites dans cette section n'incluent pas les corruptions ou les pertes de données sur le PV ou les disques de données etcd associés à la VM. Pour en savoir plus à ce sujet, consultez la section Récupération après une défaillance de datastore.
GKE On-Prem fournit un mécanisme de récupération automatique pour les nœuds complémentaires d'administrateur, les plans de contrôle d'utilisateur et les nœuds utilisateur. Cette fonctionnalité de réparation automatique des nœuds peut être activée pour chaque cluster d'administrateur et chaque cluster d'utilisateur.
La VM de plan de contrôle administrateur est spéciale, car elle n'est pas gérée par un cluster Kubernetes et sa disponibilité n'affecte pas la continuité des opérations. Pour la récupération des défaillances de VM de plan de contrôle administrateur, contactez l'assistance Google.
Récupération après une défaillance de l'espace de stockage
Certaines défaillances de l'espace de stockage peuvent être atténuées par vSphere HA et par VSAN sans affecter GKE On-Prem. Cependant, certains échecs de stockage peuvent se produire à partir du niveau vSphere, provoquant une corruption ou une perte de données sur divers composants GKE On-Prem.
Les informations avec état d'un cluster et des charges de travail d'utilisateur sont stockées aux emplacements suivants :
etcd
Chaque cluster (cluster d'administrateur et cluster d'utilisateur) dispose d'une base de données etcd qui stocke l'état (objets Kubernetes) du cluster.
PersistentVolumes
Utilisés par les composants du système et les charges de travail de l'utilisateur.
Récupération après corruption ou perte de données d'etcd
etcd est la base de données utilisée par Kubernetes pour stocker tous les états de cluster, y compris les fichiers manifestes de l'application d'utilisateur. Les opérations du cycle de vie de l'application cesseront de fonctionner si la base de données etcd du cluster d'utilisateur est corrompue ou perdue. Les opérations du cycle de vie du cluster d'utilisateur cesseront de fonctionner si la base de données etcd du cluster d'administrateur est corrompue ou perdue.
etcd ne dispose pas d'un mécanisme intégré fiable pour détecter la corruption des données. Vous devez consulter les journaux des pods de l'etcd si vous pensez que les données de l'etcd sont corrompues ou perdues.
Un pod etcd en attente/d'erreur/crash-looping ne signifie pas nécessairement que les données etcd sont corrompues ou perdues. Cela peut être dû à des erreurs sur les VM hébergeant les pods de l'etcd. Pour l'interruption ou la perte de données, vous devez vous cantonner à effectuer la récupération etcd suivante :
Pour pouvoir récupérer (un état de cluster récent) à partir d'une corruption ou d'une perte de données etcd, les données etcd doivent être sauvegardées après toute opération de cycle de vie dans le cluster (par exemple, création, mise à jour ou mise à niveau). Pour sauvegarder les données etcd, consultez les pages Sauvegarder un cluster d'administrateur et Sauvegarder un cluster d'utilisateur.
La restauration des données etcd rétablit l'état précédent du cluster. En d'autres termes, si une sauvegarde est effectuée avant le déploiement d'une application, puis utilisée pour restaurer le cluster, l'application ne s'exécutera pas dans le cluster restauré. Par exemple, si vous utilisez l'instantané etcd d'un cluster d'administrateur instantané avant de créer un cluster d'utilisateur, le plan de contrôle du cluster d'utilisateur restauré sera supprimé du cluster d'administrateur restauré. Par conséquent, nous vous recommandons de sauvegarder le cluster après chaque opération critique du cluster.
La corruption ou la perte des données d'etcd peut entraîner une défaillance dans les scénarios suivants.
Un nœud unique d'un cluster etcd à trois nœuds (cluster d'utilisateur haute disponibilité) est définitivement défectueux en raison d'une corruption ou d'une perte de données. Dans ce cas, un seul nœud est défectueux, mais le quorum etcd existe toujours. Cela peut se produire dans un cluster à haute disponibilité, dans lequel les données de l'une des instances dupliquées etcd sont corrompues ou perdues. Le problème peut être résolu, sans perte de données, en remplaçant l'instance dupliquée d'etcd défaillante par une nouvelle instance dans un état propre.
Deux nœuds d'un cluster etcd à trois nœuds (cluster d'utilisateur haute disponibilité) sont définitivement défectueux en raison d'une corruption ou d'une perte de données. Le quorum est perdu. Il n'est donc pas utile de remplacer les instances dupliquées etcd défaillantes par de nouvelles. L'état du cluster doit être restauré à partir de données de sauvegarde. Pour en savoir plus, consultez la page Restaurer un cluster d'utilisateur à partir d'une sauvegarde (haute disponibilité).
Un cluster etcd à nœud unique (cluster d'administrateur ou cluster d'utilisateur standard) est définitivement défectueux en raison d'une corruption ou d'une perte de données. Le quorum est perdu. Vous devez donc créer un cluster à partir de la sauvegarde. Pour plus d'informations, consultez la section Restaurer un cluster d'utilisateur à partir d'une sauvegarde (standard).
Récupération après perte ou corruption PV de l'application utilisateur.
Les clients GKE On-Prem peuvent utiliser certaines solutions de stockage de partenaires pour sauvegarder et restaurer des volumes persistants d'applications utilisateur.
Pour accéder à la liste des partenaires de stockage certifiés pour GKE On-Prem, consultez la page Partenaires de stockage Anthos Ready.
Récupération après une défaillance de l'équilibreur de charge
Pour l'équilibrage de charge groupé (Seesaw), vous pouvez récupérer les données en cas de défaillance en recréant l'équilibreur de charge. Pour recréer l'équilibreur de charge, effectuez une mise à niveau de Seesaw vers la même version que celle indiquée dans la section Mettre à niveau l'équilibreur de charge de votre cluster d'administrateur.
En cas de défaillance de l'équilibreur de charge du cluster d'administrateur, le plan de contrôle peut être hors de portée. Par conséquent, vous devez exécuter la mise à niveau sur la VM de plan de contrôle administrateur permettant un accès au plan de contrôle.
Pour les équilibreurs de charge intégrés (F5), veuillez vous rapprocher de l'assistance F5.
Utiliser plusieurs clusters pour la reprise après sinistre
Le déploiement d'applications dans plusieurs clusters sur plusieurs plates-formes vCenter ou Anthos peut assurer une disponibilité globale plus élevée et limiter le rayon d'action des interruptions.
Cette configuration utilise le cluster Anthos existant du centre de données secondaire pour la reprise après sinistre au lieu de configurer un nouveau cluster. Voici un résumé détaillé de cette action :
Créez un autre cluster d'administrateur et un autre cluster d'utilisateur dans le centre de données secondaire. Dans cette architecture multicluster, les utilisateurs doivent disposer de deux clusters d'administrateur dans chaque centre de données, et chaque cluster d'administrateur exécute un cluster d'utilisateur.
Le cluster d'utilisateur secondaire dispose d'un nombre minimal de nœuds de calcul (trois) et d'une instance de secours automatique (toujours en cours).
Les déploiements d'applications peuvent être répliqués sur les deux vCenter à l'aide d'Anthos Config Management, ou l'approche recommandée consiste à utiliser une chaîne d'outils DevOps (CI/CD, Spinnaker) d'application existante.
En cas de sinistre, le cluster d'utilisateur peut être redimensionné en fonction du nombre de nœuds.
De plus, un basculement DNS sera nécessaire pour acheminer le trafic entre les clusters vers le centre de données secondaire.