Проверка работоспособности Google Compute Engine перестала работать

Моя среда разработки работала хорошо весь 2019 год, но при входе в 2020 одна из моих служб не работала, и если посмотреть на детали, причиной сбоя является то, что проверка работоспособности показывает, что виртуальная машина не работает.

Схема проста, моя служба WCF работает на IIS, и я использую балансировщик нагрузки TCP. Эта же схема реплицируется для доступа к двум разным IP-адресам, но только одна из проверок работоспособности не выполняется. Сервис доступен с localhost, он доступен с эфемерного IP-адреса экземпляра, но он не работает, если я получаю доступ со статического IP-адреса, который я назначил балансировщику нагрузки.

Поскольку это одно и то же приложение, работающее на двух виртуальных машинах, и вся конфигурация аналогична, я хочу проверить, что приводит к сбою проверки работоспособности, проверяя с помощью wirehark соединение с включенным портом, я обнаружил, что все подключения от балансировщика нагрузки говорят TCP Retransmission, но соединения с эфемерным IP-адресом проходят успешно и получают 200 OK.

Мои знания по этой теме минимальны, и я не могу выделить информацию, которая полезна для решения проблемы, учитывая, что в прошлом году все работало хорошо.

Я хочу посмотреть, какую информацию может предоставить stackdriver, но по какой-то причине я не могу найти балансировщики нагрузки TCP в списке.

Балансировщик нагрузки TCP

stackdriver

РЕДАКТИРОВАТЬ: По всей видимости, проблема была связана с тем, что служба «Google Compute Engine Agent» не работала, но я не видел никаких журналов, указывающих, что вызвало остановку службы. При повторном запуске сервиса все работало нормально.


person Ricardo Alfonso Ortega Jaimes    schedule 14.01.2020    source источник
comment
Какие ошибки / предупреждения появляются в Stackdriver? Stackdriver - отличный ресурс для отладки.   -  person John Hanley    schedule 14.01.2020
comment
В stackdriver я не вижу сбоев, ВМ появляется без проблем, но я не могу найти балансировщик нагрузки в списке, балансировщики нагрузки TCP не отображаются в stackdriver?   -  person Ricardo Alfonso Ortega Jaimes    schedule 15.01.2020
comment
Какой балансировщик нагрузки вы используете? У Google их много.   -  person John Hanley    schedule 15.01.2020
comment
Я включил изображения в сообщение   -  person Ricardo Alfonso Ortega Jaimes    schedule 15.01.2020


Ответы (1)


Обратите внимание, что Google Cloud Platform предоставляет механизмы проверки работоспособности, которые определяют, правильно ли экземпляры виртуальных машин реагируют на трафик. Проверки работоспособности и балансировщики нагрузки работают вместе. GCP использует общее состояние работоспособности каждой виртуальной машины, чтобы определить ее готовность к получению новых запросов от LB.

Как и другие балансировщики нагрузки, TCP LB требует проверка работоспособности для проверки работоспособности экземпляра. Чтобы разрешить трафик от балансировщика нагрузки и средства проверки работоспособности к экземплярам, ​​необходимо настроить правила брандмауэра для диапазонов исходных IP-адресов до 130.211.0.0/22 ​​и 35.191.0.0/16

Когда вы пытаетесь получить доступ к службе, работающей на ваших внутренних экземплярах, через внешний IP-адрес балансировщика нагрузки, не возвращая ответ 200 OK, и видите, что экземпляры неработоспособны, проблема может быть внутри гостя. Возможные причины следующие:

  1. Порт, настроенный на бэкэнде, не совпадает с портом, настроенным для проверок работоспособности.

  2. Служба не работает на настроенном в то время порту.

  3. Сервис привязан к любому конкретному IP-адресу, а не ко всем IP-адресам, то есть 0.0.0.0/0.

Обратите внимание, что ведение журнала Stackdriver недоступно для глобального LB прокси TCP. Для отладки, связанной с проблемой «неработоспособных» экземпляров, также может помочь просмотр журналов доступа или системных журналов.

person Md Zubayer    schedule 23.01.2020
comment
Привет !, Мое приложение работает на виртуальной машине Windows, и причина ошибки заключалась в том, что служба агента Google Compute Engine не работала, поэтому проверка работоспособности посчитала виртуальную машину неисправной. Все, что мне нужно было сделать, чтобы исправить это, - это запустить службу Google Compute Engine Agent в службах. Спасибо за ответ! - person Ricardo Alfonso Ortega Jaimes; 24.01.2020
comment
Привет, Рикардо, спасибо, что поделился основной причиной. Это поможет другим пользователям сообщества устранить аналогичную проблему. - person Md Zubayer; 25.01.2020