Перенести SOLR ConfigSet в новый кластер - PullRequest
0 голосов
/ 15 ноября 2018

В настоящее время я использую облачную службу SOLR6 в Kubernetes, 3 сервера Zookeeper и 6 узлов

Недавно я развернул новую облачную службу SOLR6 для целей разработки, но для нее требуются те же структуры схемы, что и в текущей рабочей среде, данные не важны, так как я буду заполнять их вручную

Как мне скопировать только структуру / схему коллекций, запущенных в текущей настройке

1 Ответ

0 голосов
/ 20 ноября 2018

Вот как это закончилось, я уверен, что есть более эффективный способ сделать это, но это сработало.

  1. Войти в исходный модуль solr

    kubectl -it exec {{ sourcePodName }} -c {{ containerName }} bash

    eg: kubectl -it exec solr-staging-0 -c solr bash

  2. Создать дамп из 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

  3. Извлеките дамп из модуля kubernetes, скопировав его в локальный

    kubectl cp {{ sourcePodName }}:/tmp/{{ configSetName }}/* /tmp/{{ configSetName }}

    eg: kubectl cp solr-staging-0:/tmp/connectors/* /tmp/connectors

  4. Создайте zip-файл содержимого conf

    zip -r /tmp/{{ configSetName }}/con/conf/* /tmp/{{ configSetName }}.zip

    eg: zip -r /tmp/connectors/con/conf/* /tmp/connectors.zip

  5. Порт переадресации на целевой сервер 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

  6. Импорт набора данных в целевой кластер Solr

    ПРИМЕЧАНИЕ. На самом деле это оператор импорта SOLR 7.7, но команда 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"

...