3.6.4 Elasticsearchリポジトリディレクトリの永続ボリュームおよびストレージクラスのKubernetesマニフェストの作成
「6.4.14 Elasticsearchの要件」に記載されているElasticsearchリポジトリディレクトリの永続ボリュームの要件を満たすように、Elasticsearchリポジトリディレクトリの永続ボリュームおよびストレージクラスのKubernetesマニフェストを作成してください。
また、Elasticsearchリポジトリディレクトリ専用のストレージクラスを作成することで、Elasticsearchの永続ボリュームとElasticsearchリポジトリディレクトリの永続ボリュームクレームのバインドを必ず一対一になるようにします。
Elasticsearchリポジトリディレクトリの永続ボリュームおよびストレージクラスのKubernetesマニフェストの作成要領を次に示します。
<ストレージクラスの作成要領>
-
ストレージクラスの名称(metadata.nameフィールド)に、ユーザ任意の名称を指定してください。ここで指定した名称は、後述の永続ボリュームのstorageClassNameフィールド、およびElasticsearchのHelmチャートのrepo.storage-class-nameパラメタの値に指定します。
<永続ボリュームの作成要領>
-
Kubernetesクラスタに起動するElasticsearchのノード数と同じ数だけ、永続ボリュームのKubernetesマニフェストを作成してください。クラスタ構成の場合はマスターノードとデータノードの数の合計の数だけ作成してください。
-
永続ボリュームの名称(metadata.nameフィールド)に、ユーザ任意の名称を指定してください。
-
永続ボリュームの.spec.capacity.storageフィールドにElasticsearchリポジトリディレクトリとして割り当てる永続ボリュームのサイズを指定します。データディレクトリの永続ボリュームで指定した値を目安とし、実測してください。
-
永続ボリュームのaccessModesフィールドに、「ReadWriteMany」を指定してください。
-
永続ボリュームのpersistentVolumeReclaimPolicyフィールドに、「Retain」を指定してください。
-
永続ボリュームのnfsフィールドに、Kubernetes各ワーカーノードに「3.5.3 Elasticsearchリポジトリディレクトリの永続ボリュームマウント用ディレクトリの作成」で作成するNFSのサーバアドレスとディレクトリを指定してください。
次に示す記述例では、ディレクトリ名を「/elasticsearch-repo-volume」としています。
Elasticsearchリポジトリディレクトリの永続ボリュームのKubernetesマニフェストの記述例を次に示します。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: elasticsearch-repo
provisioner: kubernetes.io/no-provisioner
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: elasticsearch-repo-master-0
spec:
capacity:
storage: 3Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: elasticsearch-repo
nfs:
server: nfs-server.example.com
path: /elasticsearch-repo-volume
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: elasticsearch-repo-master-1
spec:
capacity:
storage: 3Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: elasticsearch-repo
nfs:
server: nfs-server.example.com
path: /elasticsearch-repo-volume
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: elasticsearch-repo-master-2
spec:
capacity:
storage: 3Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: elasticsearch-repo
nfs:
server: nfs-server.example.com
path: /elasticsearch-repo-volume
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: elasticsearch-repo-data-0
spec:
capacity:
storage: 3Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: elasticsearch-repo
nfs:
server: nfs-server.example.com
path: /elasticsearch-repo-volume
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: elasticsearch-repo-data-1
spec:
capacity:
storage: 3Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: elasticsearch-repo
nfs:
server: nfs-server.example.com
path: /elasticsearch-repo-volume
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: elasticsearch-repo-data-2
spec:
capacity:
storage: 3Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: elasticsearch-repo
nfs:
server: nfs-server.example.com
path: /elasticsearch-repo-volume