Как запланировать запуск докера в облаке Google - PullRequest
1 голос
/ 17 марта 2019

В моем проекте 3 партии. Я поместил все 3 пакета в один образ докера. Теперь для запуска любого конкретного пакета я вызываю команду docker run с аргументом командной строки, который учитывается сценарием оболочки и запускает соответствующий пакет внутри образа.

Теперь, чтобы запланировать эти 3 пакета на другой период времени, я могу использовать 3 команды для одинаковых образов докера с соответствующими аргументами. Но как развернуть (app engine или gke) и откуда запустить команду? В облачном планировщике доступны только параметры запуска Pub Sub / HTTP Url. Так что не могу найти выхода.

Можете ли вы предложить?

Заранее спасибо.

С уважением,

Arindam

1 Ответ

1 голос
/ 17 марта 2019

Ваш вопрос вызывает вопросы, но, во-первых, почему вы хотите использовать App Engine или GKE?

IIUC вы, вероятно, могли бы решить вашу проблему, используя Kubernetes CronJobs: https://cloud.google.com/kubernetes-engine/docs/how-to/cronjobs

Облачный планировщик использует HTTP и Pub / Sub, потому что это предоставляет сервису универсальный способ инициировать свои события. Если вы хотите использовать Cloud Scheduler, вы можете разработать сопутствующее (также называемое «коляской») изображение, которое демонстрирует, например, Интерфейс HTTP и при вызове запускает правильную команду для вашего контейнера. Затем вы программируете Cloud Scheduler для вызова колясок в вашем расписании, а они, в свою очередь, вызывают ваш контейнерный образ. Нечто подобное этому подходу используется в примере Cloud Scheduler: https://cloud.google.com/scheduler/docs/start-and-stop-compute-engine-instances-on-a-schedule#set_up_the_functions_with

Если вы не хотите использовать Kubernetes, я думаю, что самым простым решением было бы создание экземпляра Compute Engine, который запускает ваше расписание cron и при необходимости просто вызывает соответствующие команды docker run для вашего образа.

...