Как я могу создать новый модуль Kubernetes из другого существующего модуля? - PullRequest
1 голос
/ 26 мая 2020

У меня есть модуль Kubernetes, который загружает несколько типов файлов (скажем, X, Y и Z), и у меня есть несколько скриптов обработки (каждый из них находится в изображении docker), которые интересуют в одном или нескольких файлах (скажем, processor_X_and_Y, processor_X_and_Z и processor_Z).

Первый модуль всегда работает, и мне нужно создать модуль процессора после загрузки файла в соответствии с типом файла, например, если загрузчик загружает файл типа Z, мне нужно создать новый экземпляр processor_X_and_Z и новый экземпляр processor_Z.

Моя текущая идея состоит в том, чтобы использовать Ar go рабочий процесс , создав простой рабочий процесс из одного шага для каждого процессора, а затем запускать подходящие рабочие процессы, вызывая Ar go REST API из модуля загрузки. Таким образом, я достиг своей цели и автоматического масштабирования моей системы.

Мой вопрос: есть ли в Kubernetes другой более простой движок или сервис, который я могу использовать для создания нового продукта из другого модуля без использования этого движка рабочего процесса?

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

Как упоминалось в другом ответе, вы можете предоставить своему модулю доступ к Kubernetes API, а затем применить ресурс модуля через kubectl.

Если вы хотите запустить рабочий процесс Ar go, вы можете использовать kubectl чтобы применить ресурс рабочего процесса, или вы можете использовать Ar go CLI .

Но если вы все равно используете Ar go, вам может быть проще использовать Ar go События от до запускают рабочий процесс . Вам нужно будет выбрать источник событий в зависимости от того, как / откуда вы загружаете исходные файлы. Если, например, файлы находятся на S3, вы можете использовать источник событий SNS.

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

0 голосов
/ 26 мая 2020

Вам просто нужно предоставить своему модулю доступ к api-серверу, работающему на плоскости управления. Это позволит ему создавать / редактировать / удалять модули с помощью kubectl или любой другой библиотеки k8s. Вы можете использовать RBA C, чтобы ограничить его разрешения до минимума, необходимого для данной задачи.

...