Helm Chartを使用したEasysearchのデプロイガイド

Helm ChartでEasysearchを迅速にデプロイする方法

EasysearchはHelmを使用して迅速にデプロイできます。以下にその手順を説明します。

EasysearchのChartリポジトリはこちらからアクセスできます。

前提条件

Helmを使用してEasysearchをデプロイするには、以下の2つのコンポーネントが必要です:

  • cert-manager
  • local-path

基本的なデプロイ手順

まず、Chartリポジトリの指示に従ってデプロイを行います。

helm repo add infinilabs https://helm.infinilabs.com
cat << EOF | kubectl apply -n test -f -
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: easysearch-ca-issuer
spec:
  selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: easysearch-ca-certificate
spec:
  commonName: easysearch-ca-certificate
  duration: 87600h0m0s
  isCA: true
  issuerRef:
    kind: Issuer
    name: easysearch-ca-issuer
  privateKey:
    algorithm: ECDSA
    size: 256
  renewBefore: 2160h0m0s
  secretName: easysearch-ca-secret
EOF
helm install my-search infinilabs/easysearch -n test

上記のコマンド実行後、デプロイ状況を確認します。

kubectl get pod -n test
kubectl get svc -n test
kubectl exec -n test my-search-0 -it -- curl -ku'admin:admin' https://localhost:9200

マルチノードクラスターのデプロイ

デフォルトの設定では単一ノードのクラスターがデプロイされます。マルチノードクラスターをデプロイするには、Chartのソースコードを確認し、values.yamlファイルをカスタマイズする必要があります。

重要な設定項目は以下の通りです:

# ノード数とリソース設定
replicaCount: 1
resources:
  limits:
    cpu: 1000m
    memory: 2Gi
  requests:
    cpu: 1000m
    memory: 2Gi

# ストレージ設定
storageClassName: local-path
dataVolumeStorage: 100Gi

# クラスター設定
clusterName: infinilabs
masterHosts: '"my-search-0"'
discoverySeedHosts: '"my-search-0.my-search-svc-headless"'
nodeRoles: '"master","data","ingest","remote_cluster_client"'

マルチノードクラスターの構成例

以下は3つの異なる役割を持つノードで構成されるクラスターの例です:

マスターノード用設定 (master-values.yaml)

replicaCount: 3
clusterName: es-cluster
masterHosts: '"es-master-0","es-master-1","es-master-2"'
discoverySeedHosts: '"es-master-0.es-master-svc-headless","es-master-1.es-master-svc-headless","es-master-2.es-master-svc-headless"'
nodeRoles: '"master","ingest","remote_cluster_client"'

データノード用設定 (data-values.yaml)

replicaCount: 3
clusterName: es-cluster
masterHosts: '"es-master-0","es-master-1","es-master-2"'
discoverySeedHosts: '"es-master-0.es-master-svc-headless","es-master-1.es-master-svc-headless","es-master-2.es-master-svc-headless"'
nodeRoles: '"data","ingest","remote_cluster_client"'

コーディネートノード用設定 (coord-values.yaml)

replicaCount: 2
clusterName: es-cluster
masterHosts: '"es-master-0","es-master-1","es-master-2"'
discoverySeedHosts: '"es-master-0.es-master-svc-headless","es-master-1.es-master-svc-headless","es-master-2.es-master-svc-headless"'
nodeRoles: ""

デプロイ実行

helm install es-master infinilabs/easysearch -n test -f master-values.yaml
helm install es-data infinilabs/easysearch -n test -f data-values.yaml
helm install es-coord infinilabs/easysearch -n test -f coord-values.yaml

デプロイの検証

kubectl get pod -n test|grep es
kubectl exec -n test es-master-0 -it -- curl -ku'admin:admin' https://localhost:9200/_cat/nodes?v

Easysearchについて

INFINI Easysearchは分散型のリアルタイム検索・分析エンジンで、コアエンジンはオープンソースのApache Luceneに基づいています。Easysearchは軽量なElasticsearchの代替ソリューションを目指し、企業向け機能の追加とサポートを続けています。Elasticsearchと比較して、Easysearchは検索業務シナリオの最適化に焦点を当て、製品のシンプルさと使いやすさを維持することに重点を置いています。

公式ドキュメント:https://www.infinilabs.com/docs/latest/easysearch

ダウンロードページ:https://www.infinilabs.com/download

タグ: Helm Kubernetes Easysearch デプロイ 検索エンジン

5月23日 02:09 投稿