1.10. Cryostat 的调度选项
您可以通过在 Cryostat 实例的自定义资源(CR)中配置 Node Selector、Affinities 和 Tolerations 设置来定义用于调度 Cryostat 应用程序的策略及其生成的报告。您必须在 Cryostat 应用程序的 spec.SchedulingOptions 属性下配置这些设置,以及 report generator sidecar 的 spec.ReportOptions.SchedulingOptions 属性。通过指定 SchedulingOptions 属性,Cryostat 应用程序及其报告生成器 sidecar pod 将调度到满足调度标准的节点。
目标节点应用程序可以从 Cryostat 实例接收 sidecar 报告更新。
显示定义调度选项的 Cryostat CR 的 YAML 配置示例
kind: Cryostat
apiVersion: operator.cryostat.io/v1beta2
metadata:
name: cryostat
spec:
schedulingOptions:
nodeSelector:
node: good
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node
operator: In
values:
- good
- better
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
pod: good
topologyKey: topology.kubernetes.io/zone
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
pod: bad
topologyKey: topology.kubernetes.io/zone
tolerations:
- key: node
operator: Equal
value: ok
effect: NoExecute
reportOptions:
replicas: 1
schedulingOptions:
nodeSelector:
node: good
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node
operator: In
values:
- good
- better
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
pod: good
topologyKey: topology.kubernetes.io/zone
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
pod: bad
topologyKey: topology.kubernetes.io/zone
tolerations:
- key: node
operator: Equal
value: ok
effect: NoExecute
或者,您可以打开 Red Hat OpenShift web 控制台,创建一个 Cryostat 实例,然后在该 Cryostat 实例的 SchedulingOptions 和 reportOptions. SchedulingOptions 选项中定义 Affinities 和 Tolerations 定义。
图 1.13. OpenShift Web 控制台中的 Report Options 和 Scheduling Options 面板