Hitachi

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


5.4.13 Elasticsearchの要件

このKubernetesアプリケーションは、HMP-PCTOとして提供します。次の表に示す要件を満たすように作成します。

表5‒51 Elasticsearchの要件

項目

要件

ワークロードリソース

StatefulSetリソースとしてください。

ネームスペース

任意の名称を指定できます。ただし、「5.4.8 Filebeatの要件」〜「5.4.14 Logstashの要件」では同一のネームスペースを指定してください。

ラベル

metadata.labelには次に示すキーを設定します。
  • キー名:app.kubernetes.io/instance

    値:<リリース名>

  • キー名:app.kubernetes.io/managed-by

    値:Helm

  • キー名:app.kubernetes.io/name

    値:次のどちらかの値を設定します。

    ・elasticsearch-master(シングル構成、クラスタ構成のマスターノードの場合)

    ・elasticsearch-data (クラスタ構成のデータノードの場合)

  • キー名:app.kubernetes.io/version

    値:V.R.S※1

    備考:バージョン

  • キー名:helm.sh/chart

    値:elasticsearch-V.R.S※2

    備考:<チャート名>-<バージョン>

.spec.selector.matchLabels、および.spec.template.metadata.labelsには次に示すキーを設定します。
  • キー名:app.kubernetes.io/instance

    値:<リリース名>

    備考:

  • キー名:app.kubernetes.io/name

    値:elasticsearch

    備考:チャート名

アノテーション

規定しません。

初期化コンテナ構成

sysctlコマンド実行用コンテナ

コンテナ構成

Elasticsearchコンテナ

レプリカ数

1以上。

クラスタ構成の場合、masterノードのレプリカ数は3以上。

サービス名

(StatefulSetリソース特有)

「elasticsearch-master-headless」

Podの管理ポリシー

(StatefulSetリソース特有)

規定しません。

再起動ポリシー

コンテナ障害時は必ず再起動(オートヒーリング)してください(Kubernetesのデフォルト設定)。

アップデートストラテジー

ローリングアップデートとしてください(Kubernetesのデフォルト設定)。

Podセキュリティコンテキスト

規定しません。

アクセス制御

規定しません。

Podの割り当てノードの制御

  • 1つのノードに割り当てられるPod数は1つまでです(例として、ワーカーノード数「5」に対してレプリカ数「5」のとき、各ノードにPodが1つ起動します)。

  • 停止したPodを次に起動する際は前回起動したノードと必ず同一のノードに割り当ててください。該当するノードが障害から復旧していない場合に割り当て不可のときは、ほかの空いているノードが存在していたとしてもPodを割り当てないでください(フェイルオーバーしないでください)。

永続化ボリューム

  • データディレクトリに割り当てる永続化ボリュームは1つのPodにつき1つとしてください(共有しないでください)。

  • リポジトリディレクトリに割り当てる永続化ボリュームは、全Podからアクセス可能としてください(共有してください)。

  • データディレクトリに割り当てる永続ボリュームの種類を「ローカル永続ボリューム(local)」(ノードにアタッチされたローカルストレージデバイス)としてください。

  • リポジトリディレクトリに割り当てる永続化ボリュームは、共有できるNFS上に作成してください。

Podライフサイクル設定

terminationGracePeriodSecondsを次のとおり設定してください。

  • 安全な停止待機秒数(terminationGracePeriodSeconds)

    推奨値「120」

注※1

V.R.Sは使用するElasticsearchのバージョンに合わせて読み替えてください。

注※2

V.R.Sは使用するHMP-PCTOのバージョンに合わせて読み替えてください。

コンテナごとの要件を次に示します。

表5‒52 Elasticsearchのsysctlコマンド実行用コンテナの要件

項目

要件

コマンド

カーネルパラメタ「vm.max_map_count」を変更するため、次のとおりsysctlコマンドを実行します。

sysctl -w vm.max_map_count=262144(値はパラメタで設定します)

ネットワーク設定

設定しません(デフォルト)。

コンフィグ設定

次のHMP-PCTOのパラメタを、Elasticsearchのhelmチャートが参照するvalues.yamlに設定してください。

コンテナセキュリティコンテキスト

次のとおり設定します。

  • 実行ユーザ:root

  • 特権コンテナの許可

コンテナライフサイクル設定

設定しません(デフォルト)。

CPU/メモリリソース制限

設定しません(デフォルト)。

表5‒53 Elasticsearchコンテナの要件

項目

要件

コマンド

設定します(デフォルト)。

ネットワーク設定

デプロイしたノードのIPで、次のポートを公開してください(Serviceリソース)。

Elasticsearch REST API用ポート番号
  • プロトコル

    TCP

  • 公開ポート

    デプロイしたノード上のほかと被らないポート番号

  • コンテナポート

    9200

コンフィグ設定

規定しません。

コンテナセキュリティコンテキスト

次のとおり設定します。

  • 実行ユーザ:1000(Elasticsearch実行ユーザ)

コンテナライフサイクル設定

Liveness Probeを次のとおり設定してください。
  • 初回Probe実行待機秒数(initialDelaySeconds)

    推奨値「300」

  • Probe実行間隔秒数(periodSeconds)

    推奨値「10」

  • Probe最大失敗回数(failureThreshold)

    推奨値「3」

  • Probeタイムアウト秒数(timeoutSeconds)

    推奨値「5」

  • Probe失敗後の成功判定最小回数(successThreshold)

    推奨値「1」

Readiness Probeを次のとおり設定すること。
  • 初回Probe実行待機秒数(initialDelaySeconds)

    推奨値「60」

  • Probe実行間隔秒数(periodSeconds)

    推奨値「10」

  • Probe最大失敗回数(failureThreshold)

    推奨値「3」

  • Probeタイムアウト秒数(timeoutSeconds)

    推奨値「5」

  • Probe失敗後の成功判定最小回数(successThreshold)

    推奨値「3」

CPU/メモリリソース制限

実稼働を通して、環境に合わせた設定を実施してください。

Helmチャートのディレクトリ/ファイル構成を次の表に示します。

表5‒54 ElasticsearchのHelmチャートのディレクトリ/ファイル構成

ディレクトリ/ファイル

説明

templates/

Helmチャートのtemplate配置用ディレクトリ

_helpers.tpl

Helmチャート内で使用する変数を定義したファイル

service-endpoint.yaml

API通信を行うためのServiceオブジェクトのマニフェスト

service-headless.yaml

クラスタ構成時、Elasticsearch Pod間通信を行うためのServiceオブジェクトのマニフェスト

statefulset.yaml

Statefulsetオブジェクトのマニフェスト

Chart.yaml

Chart.yaml

values.yaml

values.yaml

values.schema.json

values.yamlの設定値のバリデーション用ファイル