透過 Helm Chart 部署 Easysearch
Easysearch 可以透過 Helm 快速部署了,快來看看吧!
Easysearch 的 Chart 倉庫地址在這裡 。
使用 Helm 部署 Easysearch 有兩個前提條件:
我們先按照 Chart 倉庫的說明來快速部署一下。
~ helm repo add infinilabs ~ 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 easysearch infinilabs/easysearch -n test
執行上面的兩個命令之後,檢視一下部署情況
~ kubectl get pod -n testNAME READY STATUS RESTARTS AGE easysearch-0 1/1 Running 0 38s ~ kubectl get svc -n testNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE easysearch-svc-headless ClusterIP None <none> 9200/TCP,9300/TCP 67s ~ kubectl exec -n test easysearch-0 -it -- curl -ku'admin:admin' Defaulted container "easysearch" out of: easysearch, init-config (init){ "name" : "easysearch-0", "cluster_name" : "infinilabs", "cluster_uuid" : "JwhwwWHMQKy8l6_US7rB1A", "version" : { "distribution" : "easysearch", "number" : "1.5.0", "distributor" : "INFINI Labs", "build_hash" : "5b5b117bc43e6793e7bb0cd8bd83567a5ef35be0", "build_date" : "2023-09-07T14:55:21.232870Z", "build_snapshot" : false, "lucene_version" : "8.11.2", "minimum_wire_lucene_version" : "7.7.0", "minimum_lucene_index_compatibility_version" : "7.7.0" }, "tagline" : "You Know, For Easy Search!"}
透過上面的驗證,我們可以看到 Easysearch 已經部署完成,是不是很方便。
按照 Chart 倉庫的指導說明部署的是一個單節點叢集,那如果要部署多節點的要怎麼辦呢?下面讓我們來研究一下 Easysearch Chart 包的原始碼 。
熟悉 Chart 包結構的小夥伴都清楚,Chart 包的變數配置一般都是在 values.yaml 檔案中配置的。
我們先來看一下預設的 檔案內容(這裡只截選了一些可能需要變更的配置,完整內容請查閱原始碼):
- pod 副本數以及使用資源的配置
replicaCount: 1resources: limits: cpu: 1000m memory: 2Gi requests: cpu: 1000m memory: 2Gi
- 使用儲存型別以及容量的配置
storageClassName: local-pathdataVolumeStorage: 100Gi
- 叢集名、主節點列表以及節點角色配置
clusterName: infinilabsmasterHosts: '"easysearch-0"'discoverySeedHosts: '"easysearch-0.easysearch-svc-headless"'nodeRoles: '"master","data","ingest","remote_cluster_client"'
根據研究原始碼的結果,多節點叢集的部署只需要我們調整部署的 pod 副本數、叢集名、主節點列表以及節點角色這幾個配置。下面讓我們來實踐一下:
1、叢集規劃
叢集名:es-test
規模:3 主節點 + 3 資料節點 + 2 協調節點
2、Chart 的版本名
主節點:es-test-master
資料節點:es-test-data
協調節點:es-test-coordinate
3、根據節點角色建立不同的 values.yaml 檔案
- es-test-master.yaml
replicaCount: 3clusterName: es-testmasterHosts: '"es-test-master-easysearch-0","es-test-master-easysearch-1","es-test-master-easysearch-2"'discoverySeedHosts: '"es-test-master-easysearch-0.es-test-master-easysearch-svc-headless","es-test-master-easysearch-1.es-test-master-easysearch-svc-headless","es-test-master-easysearch-2.es-test-master-easysearch-svc-headless"'nodeRoles: '"master","ingest","remote_cluster_client"'
- es-test-data.yaml
replicaCount: 3clusterName: es-testmasterHosts: '"es-test-master-easysearch-0","es-test-master-easysearch-1","es-test-master-easysearch-2"'discoverySeedHosts: '"es-test-master-easysearch-0.es-test-master-easysearch-svc-headless","es-test-master-easysearch-1.es-test-master-easysearch-svc-headless","es-test-master-easysearch-2.es-test-master-easysearch-svc-headless"'nodeRoles: '"data","ingest","remote_cluster_client"'
- es-test-coordinate.yaml
replicaCount: 2clusterName: es-testmasterHosts: '"es-test-master-easysearch-0","es-test-master-easysearch-1","es-test-master-easysearch-2"'discoverySeedHosts: '"es-test-master-easysearch-0.es-test-master-easysearch-svc-headless","es-test-master-easysearch-1.es-test-master-easysearch-svc-headless","es-test-master-easysearch-2.es-test-master-easysearch-svc-headless"'nodeRoles: ""
4、使用各節點角色的配置檔案部署
~ helm install es-test-master infinilabs/easysearch -n test -f es-test-master.yaml ~ helm install es-test-data infinilabs/easysearch -n test -f es-test-data.yaml ~ helm install es-test-coordinate infinilabs/easysearch -n test -f es-test-coordinate.yaml
5、驗證
~ kubectl get pod -n test|grep es-test es-test-master-easysearch-0 1/1 Running 0 5m57s es-test-data-easysearch-0 1/1 Running 0 5m29s es-test-coordinate-easysearch-0 1/1 Running 0 5m10s es-test-master-easysearch-1 1/1 Running 0 4m57s es-test-data-easysearch-1 1/1 Running 0 4m29s es-test-coordinate-easysearch-1 1/1 Running 0 4m10s es-test-master-easysearch-2 1/1 Running 0 3m56s es-test-data-easysearch-2 1/1 Running 0 3m29s ~ kubectl exec -n test es-test-master-easysearch-0 -it -- curl -ku'admin:admin' /_cat/nodes?v Defaulted container "easysearch" out of: easysearch, init-config (init)ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name10.42.0.130 12 63 12 1.53 2.67 2.11 - - es-test-coordinate-easysearch-010.42.0.136 53 65 52 1.53 2.67 2.11 dir - es-test-data-easysearch-110.42.0.139 6 63 14 1.53 2.67 2.11 - - es-test-coordinate-easysearch-110.42.0.133 10 63 14 1.53 2.67 2.11 imr - es-test-master-easysearch-110.42.0.149 58 65 59 1.53 2.67 2.11 dir - es-test-data-easysearch-210.42.0.124 53 68 35 1.53 2.67 2.11 imr * es-test-master-easysearch-010.42.0.127 56 65 46 1.53 2.67 2.11 dir - es-test-data-easysearch-010.42.0.146 15 63 18 1.53 2.67 2.11 imr - es-test-master-easysearch-2
至此,多叢集已部署完成。
關於 Easysearch
INFINI Easysearch 是一個分散式的近實時搜尋與分析引擎,核心引擎基於開源的 Apache Lucene。Easysearch 的目標是提供一個輕量級的 Elasticsearch 可替代版本,並繼續完善和支援更多的企業級功能。 與 Elasticsearch 相比,Easysearch 更關注在搜尋業務場景的最佳化和繼續保持其產品的簡潔與易用性。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70029458/viewspace-2984277/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Helm Chart 部署 Redis 的完美指南Redis
- Easysearch Chart 0.2.0都有哪些變化
- helm chart denpence 怎麼使用
- helm實戰之開發Chart
- Kubeapps視覺化管理Helm Chart包APP視覺化
- 透過 Canal 將 MySQL 資料實時同步到 EasysearchMySql
- 使用 Java 客戶端透過 HTTPS 連線到 EasysearchJava客戶端HTTP
- helm部署mysqlMySql
- helm 部署PrometheusPrometheus
- Helm部署xxl-job
- 透過skaffold快速部署微服務微服務
- 如何透過kubernetes-部署RabbitMQMQ
- Helm部署和體驗jenkinsJenkins
- Docker - 透過IDEA和Dockerfile部署springbDockerIdeaSpring
- 你要的 Helm Chart 應用金絲雀釋出終於來了!
- K8s 下的應用管理 — 私有 Helm Chart 的建立與維護K8S
- flowable流程引擎透過模型ID部署流程模型
- Helm部署k8s應用K8S
- helm部署的服務如何修改配置
- helm包安裝部署相關命令
- helm部署traefik到k8sK8S
- 通過helm部署EFK收集應用日誌,ingress-nginx日誌解析。應用日誌Nginx
- 小白Windows下透過Ollama部署使用本地模型Windows模型
- 在玩客雲上透過docker部署transmissionDocker
- 透過Docker Compose部署GitLab和GitLab Runner(一)DockerGitlab
- 透過部署流行 Web 框架掌握 Serverless 技術Web框架Server
- 部署和體驗Helm(2.16.1版本)
- 使用 helm 部署 k8s 資源K8S
- Helm, 在Kubernetes中部署應用的利器
- 053.叢集管理-Helm部署及使用
- 在玩客雲(armbian)上透過docker部署jellyfinDocker
- 如何透過 Rancher 輕鬆實現多雲部署
- webapi透過docker部署到Linux的兩種方式WebAPIDockerLinux
- apisix~helm方式的部署到k8sAPIK8S
- helm在k8s上部署Elasticsearch和KibanaK8SElasticsearch
- Serverless Devs 的官網是如何透過 Serverless Devs 部署的Serverdev
- 使用Karmada實現Helm應用的跨叢集部署
- Kubernetes-基於Helm安裝部署高可用的RedisRedis