Configurez les vérifications d'état d'un service pour surveiller l'état des nœuds backend. La passerelle retire automatiquement les nœuds défectueux ou les isole afin de garantir la disponibilité des API. Un seuil de panique permet de maintenir les fonctionnalités essentielles du service dans des situations extrêmes.
Cas d'utilisation
Vérification d'état active : la passerelle sonde les nœuds de service en envoyant des requêtes TCP ou HTTP. Elle retire automatiquement les nœuds défectueux et les rétablit après leur récupération. Cette méthode améliore la disponibilité des API pour les services disposant de plusieurs réplicas.
Vérification d'état passive : la passerelle surveille le trafic en direct pour détecter les nœuds défectueux. Elle isole temporairement les nœuds présentant des taux d'échec élevés et les rétablit automatiquement après leur récupération.
Seuil de panique : empêche la propagation des pannes localisées à l'ensemble du cluster en acheminant le trafic vers tous les nœuds lorsque trop peu de nœuds sains restent disponibles.
Procédure
Les vérifications d'état TCP sont activées par défaut lors de la création d'un service.
Connectez-vous à la console API Gateway.
Dans le volet de navigation de gauche, cliquez sur . Dans la barre de navigation supérieure, sélectionnez une région.
Sur la page Instance, cliquez sur l'ID de l'instance cible.
Dans le volet de navigation de gauche, cliquez sur Service. Cliquez ensuite sur l'onglet Services.
-
Cliquez sur Health Check Configuration dans la colonne Actions pour le service cible. Selon le type de vérification d'état, sélectionnez Enable et terminez la configuration.
Vérification d'état active
Dans le panneau Configure Health Check, activez Active Health Check, configurez les paramètres, puis cliquez sur OK.
Parameter
Example
Description
Health check protocol
HTTP
-
TCP : envoie des paquets SYN pour tester la réponse d'un port serveur.
-
HTTP : envoie une requête HTTP simulant un navigateur pour vérifier l'état de l'application serveur.
Health check path
/
Chemin URI de la requête de vérification d'état. Utilisez une page statique pour obtenir les meilleurs résultats.
Normal status codes
http_2xx
Codes d'état HTTP indiquant une vérification d'état réussie.
Response timeout
2
Délai d'attente maximal pour une réponse de vérification d'état. En l'absence de réponse, la sonde échoue. Unité : secondes.
Health check interval
2
Intervalle entre les sondes de vérification d'état consécutives. Unité : secondes.
Healthy threshold
2
Nombre de vérifications réussies consécutives nécessaires pour marquer un nœud défectueux comme sain.
Unhealthy threshold
2
Nombre de vérifications échouées consécutives nécessaires pour marquer un nœud sain comme défectueux.
Vérification d'état passive
Dans le panneau Configure Health Check, activez Passive Health Check, configurez les paramètres, puis cliquez sur OK.
Parameter
Example
Description
Failure rate threshold
80
Si le taux d'échec des requêtes d'un nœud atteint ce seuil, le système l'exclut du pool de services. Unité : %.
Detection interval
30
Intervalle sur lequel le système calcule le taux d'échec de chaque nœud. Unité : secondes.
Initial isolation duration
30
Durée d'isolation de base après exclusion. La durée réelle =
k * base_ejection_time, oùkcommence à 1, s'incrémente à chaque exclusion et se décrémente après des vérifications réussies consécutives. Unité : secondes.RemarqueLa vérification d'état passive nécessite une version du moteur de passerelle 2.1.9 ou ultérieure.
La mise à jour de la configuration de vérification d'état passive réinitialise l'état de vérification et réintègre tous les nœuds isolés au service.
-
Seuil de panique
Le seuil de panique équilibre la disponibilité et l'exactitude afin de maintenir les fonctionnalités essentielles du service lorsque la charge système est élevée ou que certains nœuds tombent en panne.
Fonctionnement :
Si le pourcentage de nœuds sains est supérieur au seuil de panique, les vérifications d'état fonctionnent normalement. Seuls les nœuds sains reçoivent du trafic.
Si le pourcentage de nœuds sains est inférieur ou égal au seuil de panique, le système passe en mode panique. Les vérifications d'état sont contournées et les requêtes sont distribuées uniformément à tous les nœuds, y compris ceux qui sont défectueux ou exclus.
L'acheminement du trafic vers des nœuds défectueux améliore la tolérance aux pannes et la disponibilité globales.
Le seuil de panique est défini par défaut à 1 %. Lorsque le pourcentage de nœuds sains tombe à ce niveau ou en dessous, le système passe en mode panique et achemine les requêtes vers tous les nœuds.
Ajustez ce seuil en fonction de vos exigences métier et de vos capacités de reprise après sinistre.
Dépannage des échecs de vérification d'état
Échecs généraux de vérification d'état
Suivez les étapes ci-dessous :
-
Un échec de vérification d'état TCP signifie qu'il est impossible d'établir une connexion au nœud. Vérifiez les points suivants :
Le nœud existe.
Les connexions simultanées ne dépassent pas la capacité du nœud.
Si une vérification d'état HTTP échoue, basculez vers TCP pour vérifier la connectivité. Si TCP réussit, vérifiez le chemin de vérification d'état. Utilisez curl ou Postman pour tester l'endpoint.
Échecs de vérification d'état pour les nouveaux services
Suivez les étapes ci-dessous :
-
Assurez-vous que la passerelle et l'instance de service se trouvent dans le même VPC. Si elles se trouvent dans des VPC différents, connectez-les via Cloud Enterprise Network (CEN) ou une connexion dédiée.
RemarqueLa passerelle ne prend pas en charge les services on-premises enregistrés via Nacos ou ZooKeeper.
Vérifiez que les VPC de la passerelle et de l'instance de service sont identiques ou connectés.
Vérifiez que l'autorisation du groupe de sécurité est configurée. Pour les services ACK, autorisez le groupe de sécurité du cluster de conteneurs comme décrit dans Configurer les règles de groupe de sécurité.
Si l'instance défectueuse utilise une adresse IP publique, vérifiez qu'une passerelle NAT publique est activée pour le VPC de la passerelle.