As always locally it works on the machine but once deployed you get the terrible HTTP/502 the new Blue Screen of Death.
Why ?
Then you troubleshoot ?
You got 502 after a 30s timeout ?
You log to the logs /index.html and get HTTP/404 !
What's wrong ? You look to ingress configuration Nginx container, ... then you realize each products have their specificites some have no /index.html, just a response to /, other need a longer timeout to upload or process stuff and so on.
Cloud brings another layer of complexity, for this reason sometimes you need to tweak backend-services and health-checks.
By default backend-services (loadbalancer) have a 30s timeout default.
You can list them and find you backend-services rules
gcloud compute backend-services listSometimes it's easier from the console to get the loadbalancer then the backend service you need.
Then you can check with describe
gcloud compute backend-services describe k8s-be-30080--9747qarggg396bf0 --globalThen you can update your timeout or any other settings
gcloud compute backend-services update k8s-be-30080--9747qarggg396bf0 --global --timeout=600Take a coffee to give time to apply and Bingo your HTTP/502 disappear.
Well this one.
You can also tweak healthcheck
From the console find the healthcheck you need.
You can also list them
gcloud compute health-checks list --globalThen describe to control
gcloud compute health-checks describe k8s-be-30569--9747df6bftswwq5c396bf0Update the healthcheck to your needs
gcloud compute health-checks update http k8s-be-30569--9747df6bftswwq5c396bf0 --request-path=/Now you managed a second HTTP/502 error.
Congratulations
What's next ?
Aucun commentaire:
Enregistrer un commentaire