您好,我是 OpenShift 的新手,从我所看到的情况来看,如果我转到 Pipeline 并选择启动两次,两个 PipelineRun 将立即并行运行。这将导致错误,因为两个运行的 pod 将尝试访问相同的 pvc,然后 pod 将陷入错误状态。 Pod 将具有事件消息“Pod 已使用卷”。
如何强制一次只能运行一个管道? OpenShift 中是否可以让这些管道运行排队等待现有管道完成?有 OpenShift 解决方案吗?如果 OpenShift 中没有现成的解决方案,是否存在标准解决方法或插件?
解决方案是在
volumeClaimTemplate
中使用 pipeline-run
。通过这种方式,每次运行都会获得自己的持久卷。
将类似的内容放入管道运行中,或者如果从控制台运行,则选择卷模板:
workspaces:
- name: workspace
volumeClaimTemplate:
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
volumeMode: Filesystem
虽然它并不禁止管道并行运行,但它会给它们单独的卷 - 所以不会发生冲突。