在 OpenShift 3.3 下,我尝试使用以下命令创建作业oc
命令行工具(显然缺乏对作业创建的基于参数的支持),但我无法理解如何使用现有应用程序的图像流。例如,当我的应用程序进行 S2I 构建时,它会推送到app:latest
图像流。我希望我尝试创建的作业使用我的应用程序的图像流在新的特定于作业的 pod 的上下文中运行。我已经使用此 YAML 准备了一个测试作业:
---
apiVersion: batch/v1
kind: Job
metadata:
name: myapp-test-job
spec:
template:
spec:
restartPolicy: Never
activeDeadlineSeconds: 30
containers:
- name: myapp
image: myapp:latest
command: ["echo", "hello world"]
当我使用创建上述作业时oc create -f job.yaml
,OpenShift拉取失败myapp:latest
。如果我改变image: myapp:latest
to image: 172.30.194.141:5000/myapp/myapp:latest
(并且在这样做时,指定我的 OpenShift 实例的内部 Docker 注册表的主机和端口),这可以工作,但我不想指定它,因为它似乎引入了对 OpenShift 实现细节的依赖。有没有办法让 OpenShift Jobs 使用现有应用程序中的图像而不依赖于此类详细信息?
The 文档 https://docs.openshift.com/container-platform/3.3/dev_guide/jobs.html#creating-a-job shows image: perl
,但不清楚如何使用 Docker 镜像在 OpenShift 中构建和存储.
我了解到,除非您指定内部 OpenShift Docker 注册表的完整地址,否则您根本无法将 ImageStream 与作业一起使用。相关 GitHub 问题:
- https://github.com/openshift/origin/issues/13042 https://github.com/openshift/origin/issues/13042
- https://github.com/openshift/origin/issues/13161 https://github.com/openshift/origin/issues/13161
- https://github.com/openshift/origin/issues/12672 https://github.com/openshift/origin/issues/12672
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)