1.10. Cryostat のスケジューリングオプション
Cryostat インスタンスのカスタムリソース (CR) で Node Selector、Affinities、および Tolerations 設定を行うことで、Cryostat アプリケーションと生成されたレポートをノードにスケジュールするためのポリシーを定義できます。これらの設定は、Cryostat アプリケーションの spec.SchedulingOptions プロパティーとレポートジェネレーターサイドカーの spec.ReportOptions.SchedulingOptions プロパティーで設定する必要があります。SchedulingOptions プロパティーを指定すると、Cryostat アプリケーションとそのレポートジェネレーターサイドカー Pod が、スケジュール基準を満たすノード上でスケジュールされます。
ターゲットノードアプリケーションは、Cryostat インスタンスからサイドカーレポートの更新を受け取ることができます。
スケジュールオプションを定義する 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 パネル