Как запланировать запуск докера в облаке Google
В моем проекте 3 партии. Я поместил все 3 пакета в один образ докера. Теперь для запуска любого конкретного пакета я вызываю команду docker run с аргументом командной строки, которая учитывается сценарием оболочки и запускает соответствующий пакет внутри образа.
Теперь, чтобы запланировать эти 3 пакета на другой период времени, я могу использовать 3 команды для одинаковых образов докера с соответствующими аргументами. Но как развернуть (app engine или gke) и откуда запустить команду? В облачном планировщике доступны только параметры запуска Pub Sub / HTTP Url. Так что не в состоянии найти выход.
Можете ли вы предложить?
Заранее спасибо.
С Уважением,
Arindam
2 ответа
Ваш вопрос вызывает вопросы, но, во-первых, почему вы хотите использовать App Engine или GKE?
IIUC вы, вероятно, могли бы решить вашу проблему с помощью Kubernetes CronJobs: https://cloud.google.com/kubernetes-engine/docs/how-to/cronjobs
Cloud Scheduler использует HTTP и Pub/Sub, потому что это предоставляет сервису универсальный способ инициировать свои события. Если вы хотите использовать Cloud Scheduler, вы можете создать сопутствующее (также называемое "sidecar") изображение, которое предоставляет, например, интерфейс HTTP, и при вызове запускает правильную команду для вашего контейнера. Затем вы программируете Cloud Scheduler для вызова колясок в вашем расписании, а они, в свою очередь, вызывают ваш контейнерный образ. Нечто похожее на этот подход используется в примере Cloud Scheduler здесь: https://cloud.google.com/scheduler/docs/start-and-stop-compute-engine-instances-on-a-schedule
Если вы не хотите использовать Kubernetes, я думаю, что самым простым решением было бы создание экземпляра Compute Engine, который запускает ваше расписание cron и просто вызывает соответствующий docker run
Команды на вашем изображении по мере необходимости.
Вы можете добавить в свой образ оболочку http-сервера и развернуть ее как службу Cloud Run и использовать Cloud Scheduler для ее вызова через cron.