Проект zeropod позволяет скалировать
Pod в 0. Zeropod — это Kubernetes runtime (точнее, containerd shim), который автоматически сохраняет контейнеры на диске после определенного времени последнего TCP-подключения. В таком состоянии (scales down to zero) он будет прослушивать тот же порт, который прослушивало приложение внутри контейнера, и восстановит этот контейнер при первом входящем подключении. В зависимости от размера программы с контрольной точкой это происходит за десятки или несколько сотен миллисекунд, практически незаметно для пользователя. Поскольку все содержимое памяти сохраняется на диске во время создания контрольной точки, восстанавливается все состояние приложения.Для работы понадобиться установить данный
runtime на Nodes, указать для соответствующих приложений runtimeClassName: zeropod, а затем уже проект CRIU (уже неоднократно о нем писали на канале 1,2,3,4,5), который находится под капотом сделает свое дело. На схеме можно увидеть процесс активации контейнера после того как он был checkpointed и к нему снова пошли сетевые обращения.
