Мы используем GCE и получаем очень странную ошибку:
«Ошибка загрузки статуса работоспособности»
Мы видим эту ошибку на всех наших балансировщиках нагрузки HTTP. Похоже, что сбой проверки работоспособности никак не влияет на саму службу. Другими словами, сам сервер работает нормально, но проверка работоспособности «красная».
Мы используем DM для настройки нашей среды, поэтому то, что у нас работает сейчас, точно такое же, как и всегда. До сегодняшнего дня мы использовали бета-API для всего. Наша теория заключалась в том, что если бы мы все перевели на использование «v1», мы бы решили эту проблему. Мы узнали, что даже со всеми битами «v1» мы все равно видим ту же ошибку.
tcpdump -vvvs 1500 -l -A порт 80
20:01:21.249194 IP (tos 0x80, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 146)
130.211.1.239.42560 > master-game-100-tbmatch-us-central1-a-xxxx.c.radiant-cloud.internal.http: Flags [P.], cksum 0xe9bd (correct), seq 1:95, ack 1, win 222, options [nop,nop,TS val 92585061 ecr 407465], length 94
E.....@.@.......
....@.P.Giw...............
...e..7.GET /healthz HTTP/1.1
Host: 10.240.0.30
User-Agent: GoogleHC/1.0
Connection: Keep-alive
Мы видим, как поступает запрос проверки работоспособности ...
20:01:21.250109 IP (tos 0x0, ttl 63, id 15146, offset 0, flags [DF], proto TCP (6), length 155)
master-game-100-tbmatch-us-central1-a-0buf.c.radiant-cloud.internal.http > 130.211.1.239.42560: Flags [P.], cksum 0x905d (incorrect -> 0xb6e0), seq 1:104, ack 95, win 220, options [nop,nop,TS val 407465 ecr 92585061], length 103
E...;*@.?.pc
........P.@.....Gi......].....
..7....eHTTP/1.1 200 OK
Content-Length: 2
Content-Type: text/plain
Date: Mon, 11 Jan 2016 20:01:21 GMT
ok
И мы видим, что наш сервис реагирует должным образом, как всегда было в прошлом. Кто-нибудь еще видит эту проблему?
Вам необходимо проверить несколько вещей:
Проверьте iptables на своем экземпляре, чтобы убедиться, что они блокируют трафик с IP-адреса 169.254.169.254 (этот IP-адрес принадлежит серверу метаданных, и проверки работоспособности отправляются экземпляру с этого IP-адреса).
Запустите tcpdump из любого экземпляра за балансировщиком нагрузки, выполнив команду: tcpdump -A -n host 169.254.169.254
и проверьте флаги
Убедитесь, что на вашем экземпляре запущен googleaddressmanager, используя команду ps aux | grep googleaddress*
. Googleaddressmanager - это сценарий запуска, отвечающий за управление всеми адресами от метаданных проекта до экземпляров.
Проверьте, прослушивает ли проверка работоспособности тот же порт, что и служба, запущенная на экземпляре.
Я бы порекомендовал установить для параметра «Порог нездоровья» значение 5 вместо значения по умолчанию 2, если ваша настройка имеет значение по умолчанию.
Более подробную информацию можно найти Вот