如何解决使用输入参数从Kubernetes运行python脚本
我正在尝试从kubernetes上运行带有输入args的python脚本(在python上使用import argsparse),该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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。