App Engine Flexible заканчивается место на диске

Остановка и удаление старых версий и экземпляров в моем проекте, похоже, не освобождает место на диске. После остановки и удаления рабочего экземпляра, а затем запуска нового экземпляра я получаю сообщения об ошибках, связанных с дисковым пространством (health_check возвращает неработоспособный, я получаю журналы vm_check_disk_space.sh). Я знаю, что это связано с дисковым пространством, так как я могу решить проблему, подняв resources: disk_size_gb в своем app.yaml и повторно развернув его.

Мой проект весит 15 ГБ, поэтому важно, чтобы удаленные версии и экземпляры не раздували мой проект. Как я могу освободить неиспользуемое пространство?

Для справки, это мой app.yaml (а при размере проекта в 15 ГБ этого должно быть более чем достаточно?)

runtime: custom
env: flex

manual_scaling:
  instances: 1

resources:
 cpu: 1
 memory_gb: 1.5
 disk_size_gb: 40

person user2093409    schedule 30.01.2018    source источник


Ответы (1)


Образ Docker, используемый для конкретной версии, создается во время развертывания и обычно не включает другие версии вашего приложения (если они также не присутствуют в вашем каталоге развертывания). Таким образом, остановка экземпляров или удаление других версий в консоли разработчика не влияет на уже созданный образ докера.

Увеличьте детализацию развертывания (см. --verbosity в gcloud), чтобы увидеть, что именно включено в создаваемый образ затем повторно развертывается при поиске нежелательных файлов/каталогов. Затем используйте параметр конфигурации skip_files в app.yaml (см. Общие настройки), чтобы пропустить их, если они есть. Типичным таким примером может быть, например, каталог приложения .git. Повторяйте, пока не будете довольны тем, что включено в образ докера.

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

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

person Dan Cornilescu    schedule 30.01.2018