OpenSearch
Verrazzanoは、OpenSearchクラスタの2つのクラスタ・トポロジをサポートしています:
- 単一ノード・クラスタ(単一ノードによってマスター・ロール、取込みロールおよびデータ・ロールが実行されます)。
- 個別のマスター・ノード、データ・ノードおよび取込みノードを含むマルチノード・クラスタ構成。
「インストール・プロファイル」では、Verrazzanoによって提供されるデフォルトのOpenSearchクラスタ構成について説明します。
クラスタ・トポロジの構成
Verrazzanoカスタム・リソースのspec.components.opensearch.nodesフィールドを使用して、OpenSearchクラスタのノード特性をカスタマイズできます。Verrazzanoをインストールまたはアップグレードするときに、このフィールドを使用すると、ノード・グループを使用してOpenSearchクラスタを定義できます。
次の例は、dev
インストール・プロファイルのOpenSearch構成(1Giのメモリーおよびエフェメラル・ストレージを含む単一ノード・クラスタ)をオーバーライドして、永続ストレージを含むマルチノード・クラスタ(3つのマスター・ノードおよび3つのデータ/取込み組合せノード)を使用するようになります。
apiVersion: install.verrazzano.io/v1beta1
kind: Verrazzano
metadata:
name: custom-opensearch-example
spec:
profile: dev
components:
opensearch:
nodes:
- name: master
replicas: 3
roles:
- master
storage:
size: 50Gi
resources:
requests:
memory: 1.5Gi
- name: data-ingest
replicas: 3
roles:
- data
- ingest
storage:
size: 100Gi
resources:
requests:
memory: 1Gi
# Override the default node groups because we are providing our own topology.
- name: es-master
replicas: 0
- name: es-data
replicas: 0
- name: es-ingest
replicas: 0
前述の構成のverrazzano-system
ネームスペース内のポッドおよび永続ボリュームをリストすると、予期されるノードが適切なデータ・ボリュームで実行されていることが示されます
$ kubectl get pvc,pod -l verrazzano-component=opensearch -n verrazzano-system
# Sample output
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/elasticsearch-master-vmi-system-master-0 Bound pvc-9ace042a-dd68-4975-816d-f2ca0dc4d9d8 50Gi RWO standard 5m22s
persistentvolumeclaim/elasticsearch-master-vmi-system-master-1 Bound pvc-8bf68c2c-235e-4bd5-8741-5a5cd3453934 50Gi RWO standard 5m21s
persistentvolumeclaim/elasticsearch-master-vmi-system-master-2 Bound pvc-da8a48b1-5762-4669-98f0-8479f30043fc 50Gi RWO standard 5m21s
persistentvolumeclaim/vmi-system-data-ingest Bound pvc-7ad9f275-632b-4aac-b7bf-c5115215937c 100Gi RWO standard 5m23s
persistentvolumeclaim/vmi-system-data-ingest-1 Bound pvc-8a293e51-2c20-4cae-916b-1ce46a780403 100Gi RWO standard 5m23s
persistentvolumeclaim/vmi-system-data-ingest-2 Bound pvc-0025fcef-1d8c-4307-977c-3921545c6730 100Gi RWO standard 5m22s
NAME READY STATUS RESTARTS AGE
pod/coherence-operator-6ffb6bbd4d-bpssc 1/1 Running 1 8m2s
pod/fluentd-ndshl 2/2 Running 0 5m51s
pod/oam-kubernetes-runtime-85cfd899d8-z9gv6 1/1 Running 0 8m14s
pod/verrazzano-application-operator-5fbcdf6655-72tw9 1/1 Running 0 7m49s
pod/verrazzano-authproxy-5f9d479455-5bvvt 2/2 Running 0 7m43s
pod/verrazzano-console-5b857d7b47-djbrk 2/2 Running 0 5m51s
pod/verrazzano-monitoring-operator-b4b446567-pgnfw 2/2 Running 0 5m51s
pod/vmi-system-data-ingest-0-5485dcd95d-rkhvk 2/2 Running 0 5m21s
pod/vmi-system-data-ingest-1-8d7db6489-kdhbv 2/2 Running 1 5m21s
pod/vmi-system-data-ingest-2-699d6bdd9c-z7nzx 2/2 Running 0 5m21s
pod/vmi-system-grafana-7947cdd84b-b7mks 2/2 Running 0 5m21s
pod/vmi-system-kiali-6c7bd6658b-d2zq9 2/2 Running 0 5m37s
pod/vmi-system-kibana-7d47f65dfc-zhjxp 2/2 Running 0 5m21s
pod/vmi-system-master-0 2/2 Running 0 5m21s
pod/vmi-system-master-1 2/2 Running 0 5m21s
pod/vmi-system-master-2 2/2 Running 0 5m21s
pod/weblogic-operator-666b548749-lj66t 2/2 Running 0 7m48s
コマンドkubectl describe pod -n verrazzano-system vmi-system-data-ingest-0-5485dcd95d-rkhvk
を実行すると、リクエストされたメモリー量が表示されます
Containers:
es-data:
...
Requests:
memory: 1Gi
索引状態管理ポリシーの構成
索引状態管理ポリシーは、索引内のデータを管理するようにOpenSearchを構成します。ポリシーを使用すると、古いデータを自動的にロールオーバーおよびプルーニングすることができ、OpenSearchクラスタでのディスク領域の不足を防ぎます。
次のポリシー例は、パターンmy-app-*
に一致する索引を管理するようにOpenSearchを構成します。これらの索引のデータは14日ごとに自動的にプルーニングされ、索引が次の条件の少なくとも1つを満たすとロールオーバーされます:
- 3日以上経過しています
- 1,000件以上のドキュメントが含まれています
- サイズが10GB以上です
apiVersion: install.verrazzano.io/v1beta1
kind: Verrazzano
metadata:
name: custom-opensearch-example
spec:
profile: dev
components:
opensearch:
policies:
- policyName: my-app
indexPattern: my-app-*
minIndexAge: 14d
rollover:
minIndexAge: 3d
minDocCount: 1000
minSize: 10Gb
OpenSearchおよびOpenSearchダッシュボードのプラグインのインストール
Verrazzanoは、Verrazzanoカスタム・リソースでプラグインを提供することで、OpenSearchおよびOpenSearch Dashboardのプラグインのインストールをサポートしています。OpenSearchのプラグインをインストールするには、Verrazzanoカスタム・リソースでフィールドspec.components.opensearch.pluginsを定義します。
次のVerrazzanoカスタム・リソースの例では、OpenSearchのanalysis-stempel
およびopensearch-anomaly-detection
プラグインをインストールします:
apiVersion: install.verrazzano.io/v1beta1
kind: Verrazzano
metadata:
name: custom-opensearch-example
spec:
profile: dev
components:
opensearch:
plugins:
enabled: true
installList:
- analysis-stempel
- https://repo1.maven.org/maven2/org/opensearch/plugin/opensearch-anomaly-detection/2.2.0.0/opensearch-anomaly-detection-2.2.0.0.zip
plugins.installList
でプラグインを定義するには、次の3つの方法があります:
-
名前でインストールできる事前構築済の追加プラグインがいくつかあります。
installList: - analysis-icu
-
必要なプラグインを含むリモートZIPファイルへのURLを指定します。
installList: - https://repo1.maven.org/maven2/org/opensearch/plugin/opensearch-anomaly-detection/2.2.0.0/opensearch-anomaly-detection-2.2.0.0.zip
-
Maven Centralでホストされている使用可能なアーティファクトおよびバージョンのMaven座標を指定します。
installList: - org.opensearch.plugin:opensearch-anomaly-detection:2.2.0.0
ノート
- 指定したプラグインURLまたはMaven Centralにアクセスしてプラグインをインストールするには、ご使用の環境がインターネットに接続できる必要があります。プラグインのインストール中にエラーが発生した場合、OSポッド(デプロイメントごとに1つ)はCrashLoopBackOff状態になります。ログで失敗の正確な原因を確認します。インターネットの問題の場合、ログにSocketExceptionまたはUnknownHostException例外が表示されることがあります。この問題を解決するには、ポッドがインターネットに接続されていることを確認します。
plugins.installList
に新しいプラグインを追加するか、plugins.installList
からプラグインを削除すると、OpenSearch関連のポッドが再起動されます。- 互換性を保つには、メジャー、マイナーおよびパッチのプラグイン・バージョンがOpenSearchのメジャー、マイナーおよびパッチのバージョンと一致している必要があります。たとえば、プラグイン・バージョン2.3.0.xは、OpenSearchバージョン2.3.0のみと互換性があります。
OpenSearchダッシュボードでは、Verrazzanoカスタム・リソースでフィールドspec.components.opensearch-dashboards.pluginsを定義することで、プラグインを指定できます。
OpenSearchダッシュボードのプラグインをインストールするVerrazzanoカスタム・リソースの例を次に示します:
apiVersion: install.verrazzano.io/v1beta1
kind: Verrazzano
metadata:
name: custom-opensearch-example
spec:
profile: dev
components:
opensearchDashboards:
plugins:
enabled: true
installList:
- <URL to OpenSearch Dashboard plugin ZIP file>