跳至内容

将 AWX Pod 分配到特定节点

您可以将 operator 创建的 AWX Pod 限制在特定节点子集上运行。node_selectorpostgres_selector 将 AWX Pod 限制为仅在与所有指定键/值对匹配的节点上运行。tolerationspostgres_tolerations 允许 AWX Pod 调度到具有匹配污点的节点上。还可以通过 topology_spread_constraints 指定拓扑传播约束的功能。如果您想对 AWX Pod 使用亲和性规则,可以使用 affinity 选项。

如果您想分别约束 Web 和 Task Pod,可以在指定特定设置之前指定部署类型。例如,指定 task_tolerations 将允许 AWX Task Pod 调度到具有匹配污点的节点上。

名称 描述 默认值
postgres_image 要拉取镜像的路径 quay.io/sclorg/postgresql-15-c9s
postgres_image_version 要拉取的镜像版本 latest
node_selector AWX Pod 的 nodeSelector ''
web_node_selector AWX Web Pod 的 nodeSelector ''
task_node_selector AWX Task Pod 的 nodeSelector ''
topology_spread_constraints AWX Pod 的 topologySpreadConstraints ''
web_topology_spread_constraints AWX Web Pod 的 topologySpreadConstraints ''
task_topology_spread_constraints AWX Task Pod 的 topologySpreadConstraints ''
affinity AWX Pod 的亲和性规则 ''
web_affinity AWX Web Pod 的亲和性规则 ''
task_affinity AWX Task Pod 的亲和性规则 ''
tolerations AWX Pod 的容忍度 ''
web_tolerations AWX Web Pod 的容忍度 ''
task_tolerations AWX Task Pod 的容忍度 ''
annotations AWX Pod 的注释 ''
postgres_selector Postgres Pod 的 nodeSelector ''
postgres_tolerations Postgres Pod 的容忍度 ''

自定义的示例可能为

---
spec:
  ...
  node_selector: |
    disktype: ssd
    kubernetes.io/arch: amd64
    kubernetes.io/os: linux
  topology_spread_constraints: |
    - maxSkew: 100
      topologyKey: "topology.kubernetes.io/zone"
      whenUnsatisfiable: "ScheduleAnyway"
      labelSelector:
        matchLabels:
          app.kubernetes.io/name: "<resourcename>"
  tolerations: |
    - key: "dedicated"
      operator: "Equal"
      value: "AWX"
      effect: "NoSchedule"
  task_tolerations: |
    - key: "dedicated"
      operator: "Equal"
      value: "AWX_task"
      effect: "NoSchedule"
  postgres_selector: |
    disktype: ssd
    kubernetes.io/arch: amd64
    kubernetes.io/os: linux
  postgres_tolerations: |
    - key: "dedicated"
      operator: "Equal"
      value: "AWX"
      effect: "NoSchedule"
  affinity:
    nodeAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 1
        preference:
          matchExpressions:
          - key: another-node-label-key
            operator: In
            values:
            - another-node-label-value
            - another-node-label-value
    podAntiAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 100
        podAffinityTerm:
          labelSelector:
            matchExpressions:
            - key: security
              operator: In
              values:
              - S2
          topologyKey: topology.kubernetes.io/zone

关于 DB-Migration 作业调度的特别说明

对于在集群启动时应用数据库迁移的db-migration 作业,您可以使用 task_* 配置(如 task_node_selectortask_tolerations 等)指定调度设置。
如果没有定义这些特定于任务的设置,该作业将自动使用全局 AWX 配置,如 node_selectortolerations