通过 ansible 进行 Openshift 计划部署

Openshift schedule deployment via ansible

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

是否可以根据计划调整部署控制图以缩小和扩大规模? openshift scheduler 可以用于此吗?

向上和向下扩展是否等同于完全删除部署和关联的 PV 和图表?

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

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

Is it possible to adapt the deployment helm chart to scale down and scale up according to a schedule? Can openshift scheduler be used for this?

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

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

Would scaling up and down be equivalent to completely deleting the deployment and associated PV and charts?

使用 oc scale / kubectl scale 缩放通过将 Deployment spec 中的 replicas 设置为另一个值,从而添加或删除 Pods,而不是通过删除部署或类似的东西。