Как запустить cron внутри контейнера / контейнера kubernetes, в котором запущено приложение весенней загрузки? - PullRequest
0 голосов
/ 26 февраля 2019

У меня запущено приложение весенней загрузки на контейнере.Один из API - это API загрузки файлов, и каждый раз, когда файл загружается, его нужно проверять на наличие вирусов.У нас есть uvscan для сканирования загруженного файла.Я смотрю на добавление uvscan к базовому образу, но определения вирусов необходимо обновлять ежедневно.Я создал скрипт для обновления определений вирусов.Самый простой способ в настоящее время - запустить cron внутри контейнера, который вызывает скрипт.Есть ли другая альтернатива, чтобы сделать это?Может ли утилита uvscan быть изолирована от модуля приложения и вызываться из приложения?

Ответы [ 3 ]

0 голосов
/ 06 марта 2019

Есть много способов решить проблему.Надеюсь, я смогу помочь вам найти то, что подходит вам больше всего.

С моей точки зрения, было бы очень удобно иметь CronJob , который создает и передает новый образ докера с помощью uvscan иобновленная база данных определений вирусов ежедневно.

В своей последовательности обработки файлов вы можете создать сканирование Задание с помощью API Kubernetes и предоставить ему доступ к общему тому с файлом, который необходимо сканировать.

Задание сканирования будет использовать :latest image , и если в реестре появятся новые изображения, оно загрузит новое изображение и создаст из него модуль.

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

В качестве альтернативыВы можете поместить базу данных AV на общий том или с помощью Mount Propagation и обновлять ее независимо от модулей.Если uvscan открывает базу данных AV в режиме только для чтения , это должно быть возможно.

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

0 голосов
/ 29 марта 2019

Поэтому я просто добавил cron в приложение, работающее внутри контейнера, чтобы обновить определения вирусов.

0 голосов
/ 26 февраля 2019

На моем рабочем месте мы также запускаем наши докеризированные сервисы в инстансах EC2.Если вам нужно обновлять определения раз в день, я бы порекомендовал использовать функцию AWS Lamda.Это относительно доступно, и вам не нужно беспокоиться о накладных расходах планировщика и т. Д. Если вам нужна помощь в настройке Lambda, я всегда могу предоставить больше контекста.Тем не менее, я предлагаю вам только другое решение в сфере AWS.

...