基本上,我需要澄清这是否是正确的方法:我能够在k8s pod上的容器内运行sed命令。现在,我想循环10次的同一个sed,但是我不确定从kubernetes容器或日志中没有收到任何错误,但这是否有效。请确认我的循环是否良好。
'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'
pod已创建并运行正常,但不确定如何确认我的循环是否良好,并且正在执行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'
答案 0 :(得分:0)
“ Define a Command and Arguments for a Container”确实提到:
要查看在容器中运行的命令的输出,请从Pod中查看日志:
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0
因此,请确保您的命令(用于测试)确实回显了某些内容,并检查了pod日志。
kubectl logs command-demo
如:
sh -c 'for run in $(seq 1 10); do echo "$run"; done'
(如kubernetes issue 56631中所述,此处使用command: ["/bin/sh"]
args: ["-c", "for run in $(seq 1 10); do echo \"$run\"; done"]
对于任何复杂的命令序列,混合使用引号,最好将该序列包装在脚本 file 中,然后将该可执行文件称为10个图块。 日志将确认循环已执行10次。