Assurez-vous que les charges de travail avec état sont prêtes en cas d'interruption


Les applications exécutées dans les clusters Google Kubernetes Engine (GKE) doivent être préparées aux interruptions, telles que les mises à niveau de nœuds et d'autres événements de maintenance. Les applications avec état, qui nécessitent souvent du temps pour arrêter correctement l'E/S et les désinstaller de l'espace de stockage, sont particulièrement vulnérables aux interruptions. Vous pouvez utiliser les fonctionnalités de Kubernetes, telles que les budgets d'interruption de pod et les vérifications d'aptitude, pour assurer la disponibilité des applications. lors des mises à niveau.

GKE surveille vos clusters et utilise le service de recommandation pour vous fournir des conseils sur la façon d'optimiser votre utilisation de la plate-forme. GKE détecte les opportunités de préparation de vos charges de travail pour les interruptions et fournit des conseils sur la mise à jour de vos PDB ou de vérifications d'aptitude pour maximiser la résilience de vos charges de travail aux interruptions. Par exemple, si un StatefulSet n'est pas protégé par une PDB, votre cluster peut supprimer tous les pods à la fois lors d'une mise à niveau de nœuds. Pour éviter cela, GKE fournit des conseils pour créer un budget d'interruption de pod afin que la plupart des pods puissent continuer à s'exécuter lors d'une mise à niveau.

Pour connaître les conditions spécifiques dans lesquelles GKE fournit des conseils liés aux interruptions, consultez la section Cas où GKE identifie les charges de travail vulnérables aux interruptions.

Pour en savoir plus sur la gestion des insights et des recommandations fournis par les outils de recommandation, consultez la section Optimiser l'utilisation de GKE avec des insights et des recommandations.

Identifier les charges de travail présentant des failles pouvant être interrompues

GKE génère des insights identifiant les charges de travail vulnérables aux interruptions de votre cluster. Pour obtenir ces insights, suivez les instructions pour afficher des insights et des recommandations à l'aide de la Google Cloud CLI ou de l'API Recommender. Utilisez les sous-types répertoriés dans la section suivante pour filtrer les insights spécifiques. Ces insights ne sont pas disponibles dans la console Google Cloud.

Cas où GKE identifie des charges de travail vulnérables aux interruptions

Consultez le tableau suivant pour connaître les scénarios dans lesquels GKE fournit un insight et une recommandation, ainsi que le sous-type approprié :

Sous-type d'insight Description Action
PDB_UNPROTECTED_STATEFULSET Alerte lorsqu'un objet StatefulSet existe alors qu'aucun libellé PDB existant ne correspond aux étiquettes du sélecteur de pod du StatefulSet. Cela signifie que tous les pods de l'objet StatefulSet peuvent être supprimés lors d'un événement tel qu'une mise à niveau de nœud. Ajoutez un PDB dont les étiquettes correspondent à ceux du champ de sélection de pod du StatefulSet. Spécifiez dans cette PDB la quantité d'interruptions pouvant être tolérées par l'objet StatefulSet. La recommandation associée à cet insight suggère les libellés qu'un PDB doit définir pour couvrir l'objet StatefulSet mentionné.
PDB_UNPERMISSIVE Alertes lorsqu'un PDB correspondant à un pod est impossible à suivre pour les activités de maintenance, telles qu'une mise à niveau de nœud. Un PDB doit autoriser l'interruption d'au moins un pod. Par conséquent, GKE ne respecte pas ce PDB pour une maintenance nécessaire après une heure. Ajustez le paramètre minAvailable du PDB pour qu'il soit inférieur au nombre total de pods, ou le paramètre maxUnavailable pour qu'il soit supérieur à zéro.
PDB_STATEFULSET_WITHOUT_PROBES Alertes lorsqu'un StatefulSet est configuré avec une PDB, mais sans vérification d'aptitude. Cette PDB n'est donc pas aussi efficace pour évaluer la préparation de l'application. Les PDB respectent les vérifications d'aptitude lorsqu'ils vérifient quels pods peuvent être considérés comme opérationnels. Par conséquent, si aucune vérification d'aptitude n'est configurée pour un pod couvert par un PDB, le PDB dispose d'une visibilité limitée pour déterminer si le pod est opérationnel ou s'il est simplement opérationnel. Ajoutez des vérifications de préparation aux pods des StatefulSets pour les PDB mentionnés dans l'insight. Nous vous recommandons également d'ajouter des vérifications d'activité.

Mettre en œuvre nos conseils pour mieux vous préparer à l'interruption

Si vous avez reçu des insights et des recommandations pour les charges de travail de votre cluster et que vous souhaitez améliorer leur préparation aux interruptions, mettez en œuvre les instructions décrites dans les recommandations et la marche à suivre pour ce sous-type d'insight, comme indiqué dans le section précédente.

Les recommandations étant évaluées une fois par jour, leur résolution peut prendre jusqu'à 24 heures. Si moins de 24 heures se sont écoulées depuis que vous avez mis en œuvre les conseils de la recommandation, vous pouvez la marquer comme résolue. Si vous ne souhaitez pas mettre en œuvre la recommandation, vous pouvez l'ignorer.

Étapes suivantes