12.3. 유사성 전략 구성
Infinispan
CR에서 유사성 방지 전략을 구성하여 OpenShift에서 Data Grid 복제본 Pod를 예약하는 위치를 제어합니다.
다른 OpenShift 노드에 Pod 예약
다음은 Infinispan
CR에서 spec.affinity
필드를 구성하지 않는 경우 Data Grid Operator가 사용하는 유사성 방지 전략입니다.
spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 1 podAffinityTerm: labelSelector: matchLabels: app: infinispan-pod clusterName: <cluster_name> infinispan_cr: <cluster_name> topologyKey: "kubernetes.io/hostname" 2
다른 노드 필요
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution: 1
- labelSelector:
matchLabels:
app: infinispan-pod
clusterName: <cluster_name>
infinispan_cr: <cluster_name>
topologyKey: "topology.kubernetes.io/hostname"
- 1
- 사용 가능한 다른 노드가 없는 경우 OpenShift는 Data Grid Pod를 예약하지 않습니다.
참고
다른 OpenShift 노드에서 Data Grid 복제본 포드를 예약하려면 사용 가능한 OpenShift 노드 수가 spec.replicas
값보다 커야 합니다.
여러 OpenShift 영역에서 Pod 예약
다음 예제에서는 Pod를 예약할 때 여러 영역을 선호합니다.
spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 1 podAffinityTerm: labelSelector: matchLabels: app: infinispan-pod clusterName: <cluster_name> infinispan_cr: <cluster_name> topologyKey: "topology.kubernetes.io/zone" 2 - weight: 90 3 podAffinityTerm: labelSelector: matchLabels: app: infinispan-pod clusterName: <cluster_name> infinispan_cr: <cluster_name> topologyKey: "kubernetes.io/hostname" 4
여러 영역 필요
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution: 1
- labelSelector:
matchLabels:
app: infinispan-pod
clusterName: <cluster_name>
infinispan_cr: <cluster_name>
topologyKey: "topology.kubernetes.io/zone"
- 1
- Data Grid 복제본 Pod를 예약하는 경우에만 영역 전략을 사용합니다.