在 Red Hat OpenShift Web 控制台中,您可以使用 Red Hat build of Cryostat Operator 定义用于调度 Cryostat 应用程序及其生成的报告到节点的策略。
您可以在 Red Hat OpenShift 的 YAML 配置文件中定义 Node Selector、Affinities、Affinities 和 Tolerations 定义。您必须在 Cryostat 应用的 spec.SchedulingOptions 属性和报告生成器 sidecar 的 spec.ReportOptions.SchedulingOptions 属性下定义这些定义。通过指定 SchedulingOptions 属性,Cryostat 应用程序及其报告生成器 sidecar 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
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:1schedulingOptions: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
Copy to ClipboardCopied!Toggle word wrapToggle overflow
另外,您可以打开 Red Hat OpenShift Web 控制台,创建一个 Cryostat 实例,然后在该 Cryostat 实例的 SchedulingOptions 和 reportOptions.SchedulingOptions 选项中定义 Affinities 和 Tolerations 定义。