我写了一个配置文件来运行几个 cronJobs。每个 cronjob 在一个单独的 pod 中运行,并且所有 pod 都在同一个节点中。
这会导致我的节点空间不足问题,作为解决方案,我阅读了有关 NodeAffinity 的信息。
我想将 nodeAffinity 添加到我的 cronjob 中,但我很难理解语法以及 labelSelector 下应该包含的内容。
这是我写的:
apiVersion: argoproj.io/v1alpha1
kind: CronWorkflow
serviceAccount: argo-events-sa
metadata:
name: nightly-cron
namespace: argo-events
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- web-store
topologyKey: "kubernetes.io/hostname"
schedule: "0 1 * * *"
concurrencyPolicy: "Replace"
startingDeadlineSeconds: 0
workflowSpec:
ttlStrategy:
secondsAfterCompletion: 10800 # 3 hours
workflowTemplateRef:
name: wf-e2e-test
arguments:
parameters:
- name: test_repos
value: |
[
{ "repo": "svc1" },
{ "repo": "svc2" },
{ "repo": "svc3" },
{ "repo": "svc4" },
{ "repo": "svc5" },
{ "repo": "svc6" },
{ "repo": "svc7" }
]
- name: report_name_prefix
value: "nightly-"