Les sondes de santé et les proxys du load balancer Google ne viennent pas du VPC : ils arrivent
depuis les plages 35.191.0.0/16 et 130.211.0.0/22. La règle allow-lb-health, recréée à la main,
a reçu la plage interne 10.20.0.0/16 : les sondes sont rejetées en silence par le pare-feu implicite,
les deux VM passent UNHEALTHY et le load balancer, sans backend sain, répond 502
failed_to_pick_backend.
Le certificat est ACTIVE (le 502 est d'ailleurs une réponse HTTP, donc TLS a réussi), le health check
vise bien 8080 et /healthz, et l'application répond en local en écoutant sur 0.0.0.0:8080 : ce n'est
ni TLS, ni l'application, ni la configuration de la sonde.
Incident résolu
Analyse et correction
Correction :
gcloud compute firewall-rules update allow-lb-health --source-ranges=35.191.0.0/16,130.211.0.0/22
(cible web-boutique, tcp:8080), puis vérifier avec
gcloud compute backend-services get-health bs-boutique --global : les instances passent HEALTHY
en une dizaine de secondes et la boutique répond 200.
Pour que cela ne recommence pas :
- décrire les règles de pare-feu en Terraform, relues en revue, plutôt que de les recréer à la main ;
- activer la journalisation des règles de pare-feu pour voir immédiatement les sondes refusées ;
- avant une bascule, contrôler
get-healthet tester un chemin complet (Connectivity Tests) ; - ne jamais ouvrir 8080 à 0.0.0.0/0 « pour voir » : seules les plages Google doivent joindre les backends.