前言
這又是另一個坑,本來都是使用單機上的solr,但是有人稍微壓測了一下,發現下group的時候,效能好像不太優,所以就叫我把solr裝在GKE上面,看能不能在查詢的時候,
自動做負載平衡。所以,又來了查文件之旅。
本來是在想只要安裝solr就好,但是滿滿的未知。
然後突然找到了SolrCloud 專門為雲端所弄出來的Solr,就是你了。
但安裝過程還真的沒那麼容易...😂
正文
Solr基本架構
ref. 淺談Solr叢集架構
完整架構
SolrCloud是基於 Solr 與 [[blog.36.分佈式系統-Zookeeper]]搜尋方案。
特色功能有
- 集中式的配置資訊
- 自動容錯
- 近實時搜尋
- 查詢時自動負載平衡
- 自動分發
- 日誌跟蹤
solrCloud的架構,可以看看以下幾篇。
ref.
這邊直接開始安裝吧。
首先確定你的電腦有helm ,我試著找有沒有單純可以用 kubectl apply的方式安裝,但沒找到。所以,用helm吧。
- 先增加solr的倉庫
helm repo add apache-solr https://solr.apache.org/charts
helm repo update
- 安裝 solr-operator,指定安裝在 solr的 namespace,避免istio的istio-proxy安裝進去
kubectl create -f https://solr.apache.org/operator/downloads/crds/v0.3.0/all-with-dependencies.yaml
helm install solr-operator apache-solr/solr-operator \
--version 0.3.0 --namespace solr
operator 安裝完成 (fig.1)
(fig.1)
- solrCloud.yaml
apiVersion: solr.apache.org/v1beta1
kind: SolrCloud
metadata:
name: video
namespace: solr
spec:
customSolrKubeOptions:
podOptions:
resources:
limits:
memory: 3Gi
requests:
cpu: 700m
memory: 3Gi
dataStorage:
persistent:
pvcTemplate:
spec:
resources:
requests:
storage: 2Gi
reclaimPolicy: Delete
replicas: 3
solrImage:
repository: solr
tag: 8.8.2
solrJavaMem: -Xms500M -Xmx500M
updateStrategy:
method: StatefulSet
zookeeperRef:
provided:
chroot: /explore
image:
pullPolicy: IfNotPresent
repository: pravega/zookeeper
tag: 0.2.9
persistence:
reclaimPolicy: Delete
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
replicas: 3
zookeeperPodPolicy:
resources:
limits:
memory: 500Mi
requests:
cpu: 250m
memory: 500Mi
- 佈署 solrCloud.yaml,這邊的系統資源要求頗高,資源不夠請多開一些cpu 或 memory。
kubectl apply -f solrCloud.yaml
- 由於我是直接佈署在istio上面,所以開啟網頁的話,我是直接新增 virtualService的設定。
kind: VirtualService
metadata:
name: istio-virtualservice-tools
namespace: tools
spec:
hosts:
- "*"
gateways:
- istio-gateway-tools.istio-system.svc.cluster.local
http:
- match:
- uri:
exact: /
- uri:
prefix: /solr
name: solr
route:
- destination:
host: video-solrcloud-common.solr.svc.cluster.local
port:
number: 80
也可以直接在本機上使用port-forward轉發開啟網頁。如以下指令,開啟 網頁 http://localhost:8080 (fig.2)
kubectl port-forward service/video-solrcloud-common -n solr 8080:80
(fig.2)
結尾
再來就是,實際操作 [[39.solrCloud的初體驗]]了
0 意見:
張貼留言