首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pods空间不足的NodAffinity解决方案

pods空间不足的NodAffinity解决方案
EN

Stack Overflow用户
提问于 2021-06-08 16:05:03
回答 1查看 52关注 0票数 0

我已经写了一个配置文件来运行几个cronJobs。每个cronjob在单独的pod中运行,所有pod在同一节点中运行。

这会导致我的一个节点空间不足的问题,作为解决方案,我读到了NodeAffinity。

我想将nodeAffinity添加到我的cronjob中,但我正在努力理解语法和labelSelector下应该包含的内容。

下面是我写的内容:

代码语言:javascript
复制
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-"
EN

回答 1

Stack Overflow用户

发布于 2021-06-08 19:00:10

对于您的情况,您可以改用nodeSelector

将标签附加到节点

kubectl label nodes <node-name> <label-key>=<label-value>

例如kubectl label nodes my-node app=web-store

将nodeSelector字段添加到pod配置

代码语言:javascript
复制
apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure
          nodeSelector:
            app: web-store

即使nodeSelector会简单地做同样的事情,如果你仍然想使用nodeAffinity,你应该像nodeSelector例子一样为它创建和使用标签。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67883738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档