我有ConfigMap、ImageStream、BuildConfig、DeploymentConfig app,它们成功地部署了我的应用程序,并按要求启动了豆荚的数量。但我现在想使用CronJob。
我是否完全替换了DeploymentConfig?因为这个想法是根据传递给CronJob API的玉米表达式来启动一个新的吊舱。
发布于 2020-07-18 04:34:29
是的,为什么不呢,您可以重用DeploymentConfig
的模板部分。例如:
kind: "DeploymentConfig"
apiVersion: "v1"
metadata:
name: "frontend"
spec:
template:
metadata:
labels:
name: "frontend"
spec:
containers:
- name: "helloworld"
image: "openshift/origin-ruby-sample"
ports:
- containerPort: 8080
protocol: "TCP"
replicas: 5
triggers:
- type: "ConfigChange"
- type: "ImageChange"
imageChangeParams:
automatic: true
containerNames:
- "helloworld"
from:
kind: "ImageStreamTag"
name: "origin-ruby-sample:latest"
strategy:
type: "Rolling"
paused: false
revisionHistoryLimit: 2
minReadySeconds: 0
就会变成这样:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: frontend
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
metadata:
labels:
name: "frontend"
spec:
containers:
- name: "helloworld"
image: "openshift/origin-ruby-sample"
ports:
- containerPort: 8080
protocol: "TCP"
restartPolicy: OnFailure
✌️
发布于 2020-07-18 04:41:42
我是否完全替换了DeploymentConfig?因为这个想法是根据传递给CronJob API的玉米表达式来启动一个新的吊舱。
我不这样认为。基本上,"DeploymentConfig“用于运行"Pod","CronJob”用于运行基于“作业”的一次性"Pod“。因此,它们的用例是不同的。
例如,"DeploymentConfig“具有通过"ImageStream”触发基于图像更改的功能,这是目标吊舱应该运行的条件,而不是一次性运行。它不适用于"CronJob“。
但是,如果您只想使用"CronJob“来进行pod部署,而不是使用没有图像触发功能的"DeploymentConfig”,那么您也应该考虑如何在"CronJob“中引用"ImageStream”。因为"CronJob“是本地Kubernetes资源,所以"CronJob”不能直接使用"ImageStream“。将"alpha.image.policy.openshift.io/resolve-names:'*'“注释添加到"CronJob”中,如下所示。有关更多细节,请参阅利用Kubernetes资源使用图像流。
e.g.>
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: pi
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
metadata:
annotations:
alpha.image.policy.openshift.io/resolve-names: '*' <-- You need this for using ImageStream
labels:
parent: "cronjobpi"
spec:
containers:
- name: pi
image: "<ImageStream name>"
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: OnFailure
但是,如果您不介意使用ImageStream,您可以为"DeploymentConfig“和"CronJob”之间的容器部署同样的模板。希望能帮到你。:)
https://stackoverflow.com/questions/62962384
复制相似问题