Мы запускаем кластер Google Kubernetes Engine, где все узлы отмечены как «вытесняемые». Из Документация Google:
Вытесняемые виртуальные машины - это экземпляры виртуальных машин Compute Engine, которые работают не более 24 часов и не предоставляют никаких гарантий доступности.
Однако, когда я смотрю на свои поды, работающие на одном из этих узлов, я вижу следующее:
NAME READY STATUS RESTARTS AGE
mypod-dev-0 3/3 Running 0 20h
mypod-dev-1 3/3 Running 0 26h
Обратите внимание, что возраст mypod-dev-1 превышает 24 часа. С помощью pod describe
на mypod-dev-1 я вижу, что все контейнеры были запущены в 07:08 сегодня утром (около 3 часов назад).
Обращаясь к узлу, на котором работает mypod-dev-1, когда я смотрю на детали узла, я вижу некоторые вещи, которые очень сбивают с толку. Прежде всего, время создания более 24 часов назад (текущее время 10:00 20 декабря 2019 г.):
CreationTimestamp: Thu, 19 Dec 2019 06:55:26 -0800
Затем есть несколько сообщений «Условия», которые предполагают, что узел был воссоздан совсем недавно:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
NetworkUnavailable False Thu, 19 Dec 2019 06:55:26 -0800 Thu, 19 Dec 2019 06:55:26 -0800 RouteCreated NodeController create implicit route
KernelDeadlock False Fri, 20 Dec 2019 10:03:00 -0800 Fri, 20 Dec 2019 07:07:21 -0800 KernelHasNoDeadlock kernel has no deadlock
ReadonlyFilesystem False Fri, 20 Dec 2019 10:03:00 -0800 Fri, 20 Dec 2019 07:07:21 -0800 FilesystemIsNotReadOnly Filesystem is not read-only
...
Похоже, что все контейнеры mypod-dev-1 были перезапущены одновременно (07:08), что-то случилось с узлом.
Как определить, когда был создан узел?
Почему время стручка показывает возраст, превышающий допустимый из-за вытесняемой природы узлов?
Есть ли какой-нибудь журнал, который показывает, когда модуль был перенесен с одного узла на другой?
Вы правы, мне удалось воспроизвести эту ошибку. Также я обнаружил открытую проблему @ Issue Tracker (https://issuetracker.google.com/146928126) об этом. Похоже, что это то, что нужно решить Google.