Выполнение команды в цикле для n раз внутри контейнера kubernetes pods - PullRequest
0 голосов
/ 23 декабря 2018

По сути, мне нужно уточнить, правильно ли это сделать: я могу запустить команду sed внутри контейнера на модуле k8s.Теперь, то же самое sed, которое я хочу зациклить 10 раз, но я не уверен, что это работает, хотя я не получаю ошибку от pubernetes pods или журналов.Пожалуйста, подтвердите, если мой цикл хорош.

'sed -i "s/\(training:\).*/\1 12/" ghav/default_sql.spec.txt &&
         lant estimate -e dlav/lat/experiment_specs/default_sql.spec.txt -r /out'

Я хочу выполнить эту рабочую команду 10 раз внутри одного контейнера.Правильно ли показано ниже?

'for run in $(seq 1 10); do sed -i "s/\(training:\).*/\1 12/" ghav/default_sql.spec.txt &&
         lant estimate -e dlav/lat/experiment_specs/default_sql.spec.txt -r /out; done' 

модуль создан и работает нормально, но я не уверен, как подтвердить, что мой цикл хорош, и я делаю это 10 раз ...

в описании модуляЯ вижу ниже

Args:
  sh
  -c
  'for run in $(seq 1 10); do sed -i "s/\(training:\).*/\1 12/" ghav/default_sql.spec.txt &&
         lant estimate -e dlav/lat/experiment_specs/default_sql.spec.txt -r /out; done'

1 Ответ

0 голосов
/ 25 декабря 2018

« Определение команды и аргументов для контейнера» »упоминает:

Чтобы просмотреть выходные данные команды, которая выполнялась в контейнере, просмотрите журналы изPod:

kubectl logs command-demo

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

sh -c 'for run in $(seq 1 10); do echo "$run"; done'

Как в:

command: ["/bin/sh"]
args: ["-c", "for run in $(seq 1 10); do echo \"$run\"; done"]

(здесь используется seq, как упомянуто в выпуск kubernetes 56631 )

Для любой сложной последовательности команд, смешивающих кавычки, лучше обернуть эту последовательность вскрипт file , и вызовите этот исполняемый файл 10 плиток.Журналы подтвердят, что цикл выполнен 10 раз.

...