繁体   English   中英

通过 ansible 部署 Openshift 计划

[英]Openshift schedule deployment via ansible

我有多个 openshift 应用程序部署配置为由 ansible(由 Jenkins 触发)部署。 一些应用程序需要按比例缩小以降低成本。

是否可以根据计划调整部署掌舵图以缩小和扩大规模? 可以为此使用 openshift 调度程序吗?

扩大和缩小是否等同于完全删除部署和关联的 PV 和图表?

现在,计划删除 Jenkins 作业,然后重新创建部署。 但它使每个应用程序都有相同的停机时间,这不是预期的结果。 我不想为每个应用程序编写一个 Jenkins 管道。

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: test
  namespace: vini-test
spec:
  schedule: "*/2 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
            - name: partner-db
              image: some-image
              command:
              - /bin/sh
              - -c
              - date; echo $date > /tmp/cronjob.log
              - mkdir -p /tmp/openshift && cd /tmp/openshift && curl -L https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz -o openshiftstuff.tar.gz && tar -xf openshiftstuff.tar.gz && mv openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/oc /usr/bin -f && mv openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/kubectl /usr/bin -f
              - oc get pods -n vini-test
              - oc scale deployment partner-db --replicas=0
          restartPolicy: OnFailure

是否可以根据计划调整部署掌舵图以缩小和扩大规模? 可以为此使用 openshift 调度程序吗?

Helm 用于部署应用程序,因此我认为您不能在运行时使用它来扩展应用程序,但我可能错了。

您始终可以做的是部署一个额外的CronJob ,它将使用oc scale或类似的命令定期进行缩放。 这也可以在单个 Jenkins 管道中完成,该管道将动态循环必要的项目并缩小它们(也许只对具有特定 label 的项目执行此操作?)。

扩大和缩小是否等同于完全删除部署和关联的 PV 和图表?

使用oc scale / kubectl scale通过将Deployment spec中的replicas设置为另一个值来进行扩展,从而添加或删除 Pod,而不是通过删除 Deployment 或类似的方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM