1.7. Cryostat 的调度选项
在 OpenShift Web 控制台中,您可以使用 Cryostat Operator 定义调度 Cryostat 应用程序及其生成的报告到节点的策略。
您可以在 OpenShift 上 Cryostat 自定义资源(CR)的 YAML 配置文件中定义 Node Selector
、Affinities
和 Tolerations
定义。您必须在 Cryostat 应用程序的 spec.SchedulingOptions
属性和报告生成器 sidecar 的 spec.ReportOptions.SchedulingOptions
属性下定义这些定义。通过指定 SchedulingOptions
属性,Cryostat 应用程序及其报告会生成 sidecar pod。这些 pod 可以调度到匹配的节点上。
目标节点应用程序可以从 Cryostat 实例接收 sidecar 报告更新。
显示定义调度选项的 Cryostat CR 的 YAML 配置
kind: Cryostat apiVersion: operator.cryostat.io/v1beta1 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
或者,您可以打开 OpenShift Web 控制台,创建一个 Cryostat 实例,然后为该 Cryostat 实例定义 SchedulingOptions
和 reportOptions.SchedulingOptions
选项中的 Affinities
和 Tolerations
定义。
图 1.8. OpenShift Web 控制台中的 Report Options 和 Scheduling Options 面板