OpenSearchのカスタマイズ

OpenSearchクラスタ構成のカスタマイズ方法

Verrazzanoは、OpenSearchクラスタの2つのクラスタ・トポロジをサポートしています:

  • 単一ノード・クラスタ(単一ノードによってマスター・ロール、取込みロールおよびデータ・ロールが実行されます)。
  • 個別のマスター・ノード、データ・ノードおよび取込みノードを含むマルチノード・クラスタ構成。

「インストール・プロファイル」では、Verrazzanoによって提供されるデフォルトのOpenSearchクラスタ構成について説明します。

Verrazzanoカスタム・リソースのspec.components.elasticsearch.installArgsフィールドを使用して、OpenSearchクラスタのノード特性をカスタマイズできます。Verrazzanoをインストールする場合、このフィールドを使用してOpenSearch構成のHelm値のオーバーライドのリストを指定できます。

これらのHelmオーバーライドでは、次のノードの特性をカスタマイズできます:

  • ノード・レプリカの数。
  • 1ノード当たりのメモリー・リクエスト・サイズ。
  • ストレージ・リクエスト・サイズ(データ・ノードのみ)。

次の表に、OpenSearchノードに関連するVerrazzanoシステム・チャート内のHelm値を示します。

名前 説明
nodes.master.replicas マスター・ノードのレプリカの数。
nodes.master.requests.memory Quantityで表されるメモリー・リクエスト量。
nodes.ingest.replicas 取込みノードのレプリカの数。
nodes.ingest.requests.memory Quantityで表されるメモリー・リクエスト量。
nodes.data.replicas データ・ノードのレプリカの数。
nodes.data.requests.memory Quantityで表されるメモリー・リクエスト量。
nodes.data.requests.storage Quantityで表されるストレージ・リクエスト量。

次の例では、devインストール・プロファイル、OpenSearch構成(1Giのメモリーおよびエフェメラル・ストレージを持つ単一ノード・クラスタ)をオーバーライドし、永続ストレージを持つマルチノード・クラスタを使用します。パブリックAPIはElasticsearchを参照しますが、次期リリースではAPIはOpenSearchに変更されます。

apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
  name: custom-es-example
spec:
  profile: dev
  components:
    elasticsearch:
      installArgs:
      - name: nodes.master.replicas
        value: "1"
      - name: nodes.master.requests.memory
        value: "1G"
      - name: nodes.ingest.replicas
        value: "1"
      - name: nodes.ingest.requests.memory
        value: "1G"
      - name: nodes.data.replicas
        value: "3"
      - name: nodes.data.requests.memory
        value: "1.5G"
      - name: nodes.data.requests.storage
        value: "10Gi"

前述の構成のverrazzano-systemネームスペース内のポッドおよび永続ボリュームをリストすると、予期されるノードが適切なデータ・ボリュームで実行されていることが示されます:

$ kubectl  get pvc,pod -n verrazzano-system

# Sample output
NAME                                                                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
persistentvolumeclaim/elasticsearch-master-vmi-system-es-master-0   Bound    pvc-8ffff457-4d72-4a72-89ba-2cdcb8eade38   10Gi       RWO            standard       6m51s
persistentvolumeclaim/vmi-system-es-data                            Bound    pvc-e32c2182-46ba-4789-b577-195874b3dd69   10Gi       RWO            standard       6m53s
persistentvolumeclaim/vmi-system-es-data-1                          Bound    pvc-67789196-d688-4d06-b074-77655a913552   10Gi       RWO            standard       6m53s
persistentvolumeclaim/vmi-system-es-data-2                          Bound    pvc-43e07e3e-0713-4ab1-ac3f-812069c35cbb   10Gi       RWO            standard       6m53s

NAME                                                   READY   STATUS    RESTARTS   AGE
pod/coherence-operator-6986d6cf95-6b58p                1/1     Running   2          7m3s
pod/fluentd-fn28c                                      2/2     Running   2          7m12s
pod/oam-kubernetes-runtime-679c6f6775-79tvm            1/1     Running   0          5m11s
pod/verrazzano-api-58c5f65c8-6zbpc                     2/2     Running   0          7m12s
pod/verrazzano-application-operator-5766b899fd-9fjhb   1/1     Running   0          4m55s
pod/verrazzano-console-6599854544-pw56c                2/2     Running   0          7m12s
pod/verrazzano-monitoring-operator-55877766d4-9ktvh    1/1     Running   0          7m12s
pod/verrazzano-operator-75b5cd49fc-68cm4               1/1     Running   0          7m12s
pod/vmi-system-es-data-0-5884cfb84d-hn8xg              2/2     Running   0          6m52s
pod/vmi-system-es-data-1-679775494f-pdwzf              2/2     Running   0          6m52s
pod/vmi-system-es-data-2-5886d745c5-6pscm              2/2     Running   0          6m52s
pod/vmi-system-es-ingest-795749ddd8-cs4pc              3/3     Running   0          6m52s
pod/vmi-system-es-master-0                             2/2     Running   0          6m51s
pod/vmi-system-grafana-b94fcbb67-ktwf8                 3/3     Running   0          6m52s
pod/vmi-system-kibana-6594cfccc-j8gp5                  3/3     Running   0          6m51s
pod/vmi-system-prometheus-0-75864fc668-s5xv8           4/4     Running   0          44s
pod/weblogic-operator-5bd7bb6fb5-wz5cr                 2/2     Running   0          6m30s

masterノードは、データ・ノード用に構成されているのと同じ量の永続ストレージを使用します。

コマンドkubectl describe pod -n verrazzano-system vmi-system-es-data-0-5884cfb84d-hn8xgを実行すると、リクエストされたメモリー量が表示されます:

Containers:
  es-data:
    Container ID:  containerd://cc01f24b107da0e1e90a05a49c7fd969761f59a81316fa01f7cc56a166684628
    Image:         ghcr.io/verrazzano/opensearch:1.2.3-20220207214930-833b159de83
    Image ID:      ghcr.io/verrazzano/elasticsearch@sha256:3d2cbb539f9ebba991c6f36db4fbaa9dc9c03e6192a28787869f7850cc2bd66c
    Ports:         9200/TCP, 9300/TCP
    Host Ports:    0/TCP, 0/TCP
    State:          Running
      Started:      Thu, 29 Jul 2021 06:04:17 +0000
    Ready:          True
    Restart Count:  0
    Requests:
      memory:   1500M