首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >除了OCP CronJob,还需要哪些APIs?

除了OCP CronJob,还需要哪些APIs?
EN

Stack Overflow用户
提问于 2020-07-17 22:08:22
回答 2查看 145关注 0票数 1

我有ConfigMap、ImageStream、BuildConfig、DeploymentConfig app,它们成功地部署了我的应用程序,并按要求启动了豆荚的数量。但我现在想使用CronJob。

我是否完全替换了DeploymentConfig?因为这个想法是根据传递给CronJob API的玉米表达式来启动一个新的吊舱。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-18 04:34:29

是的,为什么不呢,您可以重用DeploymentConfig的模板部分。例如:

代码语言:javascript
运行
复制
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

就会变成这样:

代码语言:javascript
运行
复制
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

✌️

票数 1
EN

Stack Overflow用户

发布于 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.>

代码语言:javascript
运行
复制
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”之间的容器部署同样的模板。希望能帮到你。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62962384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档