通过 ansible 进行 Openshift 计划部署



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

是否可以调整部署掌舵图以根据计划进行缩减和纵向扩展?开班调度程序可以用于此吗?

纵向扩展和缩减是否等同于完全删除部署以及关联的 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

是否可以调整部署掌舵图以根据计划进行缩减和纵向扩展?开班调度程序可以用于此吗?

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

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

纵向扩展和缩减是否等同于完全删除部署以及关联的 PV 和图表?

使用oc scale/kubectl scale进行扩展的工作原理是将Deploymentspec中的replicas设置为另一个值,从而添加或删除 Pod,而不是通过删除部署或类似的东西。

最新更新