将 AWX Pod 分配到特定节点¶
您可以将 operator 创建的 AWX Pod 限制在特定节点子集上运行。node_selector
和 postgres_selector
将 AWX Pod 限制为仅在与所有指定键/值对匹配的节点上运行。tolerations
和 postgres_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_selector
、task_tolerations
等)指定调度设置。
如果没有定义这些特定于任务的设置,该作业将自动使用全局 AWX 配置,如 node_selector
和 tolerations
。