Назад | Перейти на главную страницу

Экземпляры GCP f1-micro служат всего несколько часов перед заменой

У меня есть кластер GKE (k8) из 3-6 экземпляров f1-micro, который страдает от постоянно воссоздаемых экземпляров f1-micro.

Теперь, глядя на кластер, он в настоящее время масштабирован до 3 экземпляров со следующими значениями времени безотказной работы: 10 часов, 3 часа, 1 час.

Почему мои экземпляры постоянно перемешиваются? Как я могу отладить «почему» экземпляров, которые постоянно добавляются и удаляются из группы экземпляров?

Экземпляры НЕ являются вытесняемыми. Я заметил, что в GCP есть автоматический перезапуск, установленный в разделе «Доступность».

Любая помощь очень ценится.

Дополнительная информация:

Мое подозрение - это причина, по которой я вижу, что это пытается запустить GKE на экземплярах f1-micro. Вместо этого я переключился на экземпляр g-small, и он уже кажется более стабильным.

Я заметил, что в обзоре мониторинга stackdriver (http://app.google.stackdriver.com/) У меня много сообщений «gke-my-instance-xzy в кластере X не готов» в поле «События». Это первое место в логах, где мне удалось найти такое сообщение. Итак, я пришел к выводу, что экземпляры сообщают о нездоровой работе на каком-то уровне и в конечном итоге погибают. Я часто вижу в журналах RecreateInstance (или что-то подобное).

В каких журналах искать нужную проверку работоспособности я не мог определить. Я заметил это в одном наборе журналов --eviction-hard=memory.available<100Mi если это означает принудительное завершение работы экземпляров, когда у них меньше 100 МБ памяти, тогда я думаю, что это произошло. Я по-прежнему не вижу сообщений типа "ошибка проверки работоспособности" ни в одном журнале.

Дополнительная информация:

Я подтвердил, что с переходом к одному экземпляру небольшого размера вся нестабильность исчезнет. Казалось бы, запускать GKE на экземплярах f1-micro сейчас не очень хорошая идея.

Я оставляю вопрос открытым, потому что он о том, как я могу отладить, почему мои экземпляры f1-micro воссоздаются так часто, и ответ Санни не привел меня к сообщению «почему» где-либо в журналах.

Решение

В практическом смысле переход к большему размеру узла решил проблему, как отмечалось выше. В комментариях к OP @Daniel предоставил ссылку на страницу, которая предоставляет команду, необходимую для просмотра журналов.

gcloud container operations list

Я вижу в выводе этой команды все события автоматического восстановления, которые убивали мои узлы.

Automatic restart всегда является дополнительной политикой доступности, которую можно настроить на шаблон экземпляра используется в группе экземпляров. Если установлено, это позволит вычислительному механизму автоматически перезапускать экземпляры виртуальных машин, если они прекращены по причинам, не инициированным пользователем, таким как (событие обслуживания, сбой оборудования, сбой программного обеспечения и т. политика, согласно которой экземпляры добавляются и удаляются из вашей группы экземпляров.

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

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

В заключение;

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

Вы также можете просмотреть журналы автомасштабирования, как описано в этом общедоступном документация чтобы подтвердить, стоит ли за этим поведением автомасштабирование.

ИЛИ

Преобразуйте поле «Фильтр по метке» в Stackdriver в расширенный фильтр и определите следующие фильтры.

resource.type="gce_autoscaler"
protoPayload.methodName="v1.compute.autoscalers.insert"

Для списка всех экземпляров, созданных автомасштабированием

И

resource.type="gce_autoscaler"
protoPayload.methodName="v1.compute.autoscalers.delete"

Для удаленных экземпляров.