我目前正在Kubernetes 3 Zookeeper服务器和6个节点上运行云SOLR6服务
我最近出于开发目的部署了新的云SOLR6服务,但是它需要与当前运行环境相同的架构结构,数据并不重要,因为我将手动填充该数据
如何仅复制当前设置中运行的集合的结构/架构
答案 0 :(得分:0)
这是最终完成的方式,我敢肯定有一种更有效的方式来做到这一点,但这确实可行。
登录到源solr pod
kubectl -it exec {{ sourcePodName }} -c {{ containerName }} bash
eg: kubectl -it exec solr-staging-0 -c solr bash
创建configSet的转储
/opt/solr/bin/solr zk -n {{ configSetName }} -d /tmp/{{ configSetName }}/ -z {{ sourceZookeeperAddress }}:{{ zookeeperPort }}
eg: /opt/solr/bin/solr zk -n connectors -d /tmp/connectors/ -z solr-dev.solr-staging-cluster:2181
通过将其复制到本地从Kubernetes容器中检索转储
kubectl cp {{ sourcePodName }}:/tmp/{{ configSetName }}/* /tmp/{{ configSetName }}
eg: kubectl cp solr-staging-0:/tmp/connectors/* /tmp/connectors
创建conf内容的zip文件
zip -r /tmp/{{ configSetName }}/con/conf/* /tmp/{{ configSetName }}.zip
eg: zip -r /tmp/connectors/con/conf/* /tmp/connectors.zip
端口转发到目标kubernetes服务器
gcloud container clusters get-credentials {{ clusterName }} --zone {{ zone }} --project {{ projectName }} && kubectl port-forward {{ podName }} 8983:8983
eg: gcloud container clusters get-credentials workflows --zone europe-west1-d --project bidvest-alice && kubectl port-forward solr-dev-0 8983:8983
将数据集导入到目标Solr群集
注意:这实际上是SOLR 7.7 import语句,但是SOLR6.6命令不起作用
curl -X POST --header "Content-Type:application/octet-stream" --data-binary @/tmp/{{ configSetName }}.zip "http://localhost:8983/solr/admin/configs?action=UPLOAD&name={{ configSetName }}"
eg: cmd: curl -X POST --header "Content-Type:application/octet-stream" --data-binary @/tmp/connectors.zip "http://localhost:8983/solr/admin/configs?action=UPLOAD&name=connectors"