На выходных GCP LB пометил один из наших экземпляров как нездоровый. Ничего не изменилось, никаких передислокаций, а другие экземпляры в порядке.
Я использую проверку работоспособности TCP, следующее становится равным 0, как и ожидалось.
nc localhost 80 -z; echo $?
Как устранить причину, по которой GCP считает узел неработоспособным?
ОБНОВЛЯТЬ:
Я изменил healthcheck на SSL, а затем обратно на TCP80, и теперь Google считает узел здоровым. Это немного беспокоит.
решение1
Наиболее распространенной причиной сбоя проверки работоспособности является привязка службы только к внешнему IP-адресу экземпляра, а не к адресу балансировщика нагрузки.
Вам нужно заставить ваш серверный процесс прослушивать все настроенные адреса на хосте. Таким образом, проверка работоспособности будет работать для внешнего адреса балансировщика нагрузки.
Вы найдете подробную информацию о том, как отлаживать проверки работоспособности при балансировке нагрузки на облачной платформе Google.здесь.
решение2
В моем случае это было из-за правил брандмауэра. Экземпляр находится в пользовательской подсети в общем VPC и требовалось вручную добавить IP-адреса балансировщика нагрузки и проверки работоспособности в качестве разрешенных (как описано в документации).