Интересно, как реализовать единый дополнительный контейнер в Pod в развертывании, который не предоставляет службу, а скорее рабочую нагрузку на работу/пакет?Предоставляет ли Kubernetes размещенную ячейку Job?
Справочная информация по моим вопросам заключается в том, что я хочу развернуть масштабируемую службу, в которой каждый экземпляр нуждается в конфигурации после ее запуска. Эта конфигурация выполняется через HTTP POST в свой локальный экземпляр службы. Для этого я использовал дополнительный контейнер, чтобы воспользоваться функцией colocation. Поэтому вспомогательный контейнер всегда знает, какой экземпляр необходимо настроить.
Проблема в том, что restartPolicy
необходимо определить на уровне Pod. Я ищу что-то вроде политики перезапуска always
для службы и другой политики перезапуска onFailure
для задания конфигурации.
Я знаю, что k8s предоставляет ресурс Job
для таких нагрузок. Но есть ли возможность помещать эти задания в Pods?
Кроме того, я наткнулся на так называемые контейнеры init, которые могут быть определены с помощью аннотаций. Но они страдают от недостатка, что k8s гарантирует, что фактический Pod будет запущен только после запуска контейнера init. Поэтому по моему сценарию это кажется неприемлемым.
Добро пожаловать. –
Как новый пользователь на сайте, вы можете найти http://meta.stackexchange.com/questions/686/accepting-answer-without-upvoting полезным - не требование или что-то еще. –
Спасибо, что нашли время ответить на мой вопрос. Мое обходное решение до сих пор аналогично вашему предложению. Однократная работа выполняется через cron и маркируется локально, если она уже выполнялась. Таким образом, его больше руд менее решено. Проблема, с которой я сталкиваюсь с таким решением, заключается в том, что с точки зрения пользователя семантика изменилась. Контейнер с одним выстрелом, который может быть или не был успешно завершен, теперь является службой, которая всегда работает. Таким образом, пользователь должен знать больше о деталях реализации, чтобы оценить состояние, а не просто проверять 'kubectl get/describe pod ...' –