我正在尝试使用输入args(使用python上的import argsparse)从kubernetes运行python脚本,python脚本在kubernetes上没有任何输入args的情况下运行良好,而且以下命令python python_script.py -e $(date -d '2020/08/23') -d 7 -m
在docker镜像上运行也没有问题。
我正在尝试构建我的values.yaml文件,以便kubernetes也可以运行它,直到现在都没有成功。
我的values.yaml文件(仅与脚本相关的部分):
- name: python-script
command: ["python"]
args:
- "python_script.py"
- "-e $(date -d '2020/08/23')"
- "-d 7"
- "-m"
resources:
limits:
cpu: 50m
memory: 512Mi
requests:
cpu: 50m
memory: 512Mi
failedJobsHistoryLimit: 1
successfulJobsHistoryLimit: 3
concurrencyPolicy: Forbid
restartPolicy: Never
在kubernetes上运行时输出:python_script.py: error argument -e/--end_date: Not a valid date: ' $(date -d "2020/08/23")'.
就像kubernetes出于某种原因甚至没有将bash命令$(date -d "2020/08/23")
解析为有效日期,而docker镜像没有任何问题。我试图在python文件后添加另一个
["bash"]
命令,并在其中添加args,但仍然出现错误。有任何想法吗?任何帮助将不胜感激!
谢谢。
最佳答案
使用python
命令运行时,不会调用shell
。
因此,请尝试:
- name: python-script
command: ["/bin/sh"]
args:
- -c
- >-
python python_script.py
-e $(date -d '2020/08/23')
-d 7
-m
resources:
limits:
cpu: 50m
memory: 512Mi
requests:
cpu: 50m
memory: 512Mi
failedJobsHistoryLimit: 1
successfulJobsHistoryLimit: 3
concurrencyPolicy: Forbid
restartPolicy: Never
关于bash - 使用输入参数从kubernetes运行python脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63545570/