Развертывание стручков kubernetes после того, как задание завершено - helm - PullRequest
0 голосов
/ 18 февраля 2020

Цель - начать развертывание модуля, когда определенные задания завершены с использованием helm.

В настоящее время я использую helm для развертывания configmap / pods / jobs. Когда я делаю «установку Хелма», все развертывается одновременно. Могу ли я добавить задержку / триггер, говорящий, когда определенное задание завершено, тогда развернуть только другие модули.

Я пытался использовать «контейнер инициализации», но трудно получить статус задания в «контейнере инициализации»

Ответы [ 2 ]

1 голос
/ 18 февраля 2020

Крюк диаграммы руля может сделать это. Есть ряд моментов, в которых Helm может развертывать набор ресурсов по одному и ждать, пока они будут готовы или завершены.

Для того, что вы описываете, достаточно использовать аннотацию, чтобы отметить задание в качестве предустановочной ловушки:

apiVersion: batch/v1
kind: Job
metadata:
  annotations:
    "helm.sh/hook": pre-install

Ни один из других ресурсов в диаграмме не будет развернут до успешного выполнения ловушки. Если задание не выполнено, оно заблокирует развертывание любых других ресурсов. Эта pre-install ловушка запускается только при первой установке, но если вы хотите, чтобы ловушка запускалась при обновлении или откате, существуют соответствующие ловушки, чтобы сделать это.

Есть еще некоторые рабочие процессы, которые трудно express таким образом. Например, если ваша служба включает в себя базу данных и вы хотите, чтобы задание выполняло миграцию или начальные данные, вы не можете действительно развернуть базу данных StatefulSet, затем заблокировать на ловушке Job, а затем развернуть все остальное; Ваше приложение по-прежнему должно терпеть вещи, возможно, не находящиеся в ожидаемом состоянии.

0 голосов
/ 18 февраля 2020

Это немного из рулевой рубки Хелма. Вы можете использовать крючки, чтобы получить некоторые относительно простые c формы этого, но многие люди находят их разочаровывающими по мере роста сложности. Более полная форма этого шаблона требует написания оператора.

...