Hitachi

Hitachi Microservices Platform - Paxos Commit Transaction Orchestrator ユーザーズガイド


3.4.2 MediatorのConsensusLogの永続ボリュームおよびストレージクラスのKubernetesマニフェストの作成

5.4.5 Mediatorの要件」に記載されているMediatorのConsensusLogの永続ボリュームの要件を満たすように、MediatorのConsensusLogの永続ボリュームおよびストレージクラスのKubernetesマニフェストを作成してください。

Mediatorで使用する永続ボリュームの種類を「ローカル永続ボリューム(local)」とし、KubernetesのnodeAffinityで永続ボリュームの割り当てノードを固定することで、その永続ボリュームを使用するMediatorのPodはKubernetesスケジューラによって必ず永続ボリュームと同一ノードに割り当てられるようになります。これによって、MediatorのPodが必ずノードにアタッチされたローカルストレージデバイスを使用できるようにします。

また、Mediator専用のストレージクラスを作成することで、MediatorのConsensusLogの永続ボリュームとMediatorのConsensusLogの永続ボリュームクレームのバインドを必ず一対一になるようにします。

MediatorのConsensusLogの永続ボリュームおよびストレージクラスのKubernetesマニフェストの作成要領を次に示します。

<ストレージクラスの作成要領>

<永続ボリュームの作成要領>

MediatorのConsensusLogの永続ボリュームおよびストレージクラスのKubernetesマニフェストの記述例を次に示します。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: mediator-consensus-log
provisioner: kubernetes.io/no-provisioner
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mediator-consensus-log-0
spec:
  capacity:
    storage: 2Mi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: mediator-consensus-log
  local:
    path: /mediator-consensus-log-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-0
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mediator-consensus-log-1
spec:
  capacity:
    storage: 2Mi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: mediator-consensus-log
  local:
    path: /mediator-consensus-log-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-1
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mediator-consensus-log-2
spec:
  capacity:
    storage: 2Mi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: mediator-consensus-log
  local:
    path: /mediator-consensus-log-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-2
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mediator-consensus-log-3
spec:
  capacity:
    storage: 2Mi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: mediator-consensus-log
  local:
    path: /mediator-consensus-log-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-3
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mediator-consensus-log-4
spec:
  capacity:
    storage: 2Mi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: mediator-consensus-log
  local:
    path: /mediator-consensus-log-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-4

この例では、Kubernetesクラスタに起動するMediatorの数が「5」で、ワーカーノードが5台ある場合の例としています。