Hitachi

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


3.6.5 EADSの永続ボリュームのKubernetesマニフェストの作成(通常版限定)

6.4.7 EADSの要件(通常版限定)」に記載されているEADSの永続ボリュームの要件を満たすように、EADSの永続ボリュームのKubernetesマニフェストを作成してください。

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

また、永続ボリュームにどの永続ボリュームクレームにバインドさせるかを指定することで、EADSの永続ボリュームとEADSの永続ボリュームクレームのバインドを必ず一対一になるようにします。

EADSの永続ボリュームのKubernetesマニフェストの作成要領を次に示します。

<見積もり要領>

デプロイするEADSの構成(EADSサーバ台数、多重度、キャッシュなど)を決め、マニュアル「Elastic Application Data Store ユーザーズガイド」を参考にしてEADSサーバの各種見積もり量(使用メモリ量・ログファイル用ディスク容量・キャッシュデータファイル、およびキャッシュインデックスファイル用ディスク容量・ストアデータファイル用ディスク容量)を見積もってください。

<PVCの種類と個数について>

EADSサーバが定義するPVC(永続ボリュームクレーム)を満たすボリュームを決めて、対応するリソースのマニフェストファイルを作成してデプロイします。

表3‒12 EADSサーバで定義しているPVCの種類と個数

ボリューム種類

PVC命名規則

個数

ログファイル

logs-pvc-<Serverリリース名>-eads-server-<複製インデックス>

EADSサーバ台数

ストアデータファイル

store-pvc-<Serverリリース名>-eads-server-<複製インデックス>

EADSサーバ台数

キャッシュデータファイルおよびキャッシュインデックスファイル

cache-pvc-<キャッシュ定義インデックス※1>-<Serverリリース名>-eads-server-<複製インデックス>

キャッシュ数

×EADSサーバ台数

追加ボリューム

vol-pvc-<追加ボリューム定義インデックス※2>-<Serverリリース名>-eads-server-<複製インデックス>

追加ボリューム数※3×EADSサーバ台数

注※1

3.7.5 EADSのHelmチャートのカスタマイズ(通常版限定)」で説明するEADSサーバチャート用values.yamlのcachesフィールド下に登録したキャッシュ定義配列のインデックス(0から始まる)です。キャッシュ定義数分のPVCが追加されます。ただし、nameが重複した要素はインデックスから除外されます。

注※2

3.7.5 EADSのHelmチャートのカスタマイズ(通常版限定)」で説明するEADSサーバチャート用values.yamlのvolumesフィールド下に登録した追加ボリューム定義配列のインデックス(0から始まる)です。ただし、nameが重複した要素はインデックスから除外されます。

注※3

3.7.5 EADSのHelmチャートのカスタマイズ(通常版限定)」で説明するEADSサーバチャート用values.yamlのvolumesフィールド下に登録した追加ボリューム定義配列の総数です。ただし、nameが重複した要素は総数から除外されます。

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

EADSの永続ボリュームのKubernetesマニフェストの記述例を次に示します。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: eads-cache-0
spec:
  storageClassName: ""
  capacity:
    storage: "514Mi"
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  local:
    path: /eads-cache-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-1
  claimRef:
    name: cache-pvc-0-eads-server-eads-server-0
    namespace: my-namespace
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: eads-logs-0
spec:
  storageClassName: ""
  capacity:
    storage: "1Gi"
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  local:
    path: /eads-logs-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-1
  claimRef:
    name: logs-pvc-eads-server-eads-server-0
    namespace: my-namespace
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: eads-store-0
spec:
  storageClassName: ""
  capacity:
    storage: "1Gi"
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  local:
    path: /eads-store-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-1
  claimRef:
    name: store-pvc-eads-server-eads-server-0
    namespace: my-namespace
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: eads-cache-1
spec:
  storageClassName: ""
  capacity:
    storage: "514Mi"
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  local:
    path: /eads-cache-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-2
  claimRef:
    name: cache-pvc-0-eads-server-eads-server-1
    namespace: my-namespace
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: eads-logs-1
spec:
  storageClassName: ""
  capacity:
    storage: "1Gi"
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  local:
    path: /eads-logs-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-2
  claimRef:
    name: logs-pvc-eads-server-eads-server-1
    namespace: my-namespace
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: eads-store-1
spec:
  storageClassName: ""
  capacity:
    storage: "1Gi"
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  local:
    path: /eads-store-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-2
  claimRef:
    name: store-pvc-eads-server-eads-server-1
    namespace: my-namespace
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: eads-cache-2
spec:
  storageClassName: ""
  capacity:
    storage: "514Mi"
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  local:
    path: /eads-cache-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-3
  claimRef:
    name: cache-pvc-0-eads-server-eads-server-2
    namespace: my-namespace
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: eads-logs-2
spec:
  storageClassName: ""
  capacity:
    storage: "1Gi"
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  local:
    path: /eads-logs-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-3
  claimRef:
    name: logs-pvc-eads-server-eads-server-2
    namespace: my-namespace
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: eads-store-2
spec:
  storageClassName: ""
  capacity:
    storage: "1Gi"
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  local:
    path: /eads-store-volume
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - worker-3
  claimRef:
    name: store-pvc-eads-server-eads-server-2
    namespace: my-namespace