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