Hitachi

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


3.6.3 Elasticsearchデータディレクトリの永続ボリュームおよびストレージクラスのKubernetesマニフェストの作成

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

また、Elasticsearchデータディレクトリ専用のストレージクラスを作成することで、Elasticsearchの永続ボリュームとElasticsearchデータディレクトリの永続ボリュームクレームのバインドを必ず一対一になるようにします。クラスタ構成で構築する場合、マスターノード用、データノード用の2つのストレージクラスを作成してください。

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

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

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

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

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

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