Выполнена локальная настройка контейнеров ML docker. Теперь, как развернуть в общей облачной платформе с использованием Kubernetes? - PullRequest
0 голосов
/ 29 января 2020

Я успешно отправил изображение markLogi c в нашу внутреннюю артефакту, и у нас есть сценарий оболочки bootstrap, который при выполнении настраивает кластер ML с 3 узлами на любом локальном компьютере. Вот сценарий.

docker run --network=ml_clustered_network -d -p 7997-8002:7997-8002 -p 9013:9013 -p 9006:9006 --hostname=ml1.local --name=ml1.local docker.repo.com/nsdat1/ml_mldba_poc:latest
docker run --network=ml_clustered_network -d -p 17997-18002:7997-8002 --hostname=ml2.local --name=ml2.local docker.repo.com/nsdat1/ml_mldba_poc:latest
docker run --network=ml_clustered_network -d -p 27997-28002:7997-8002 --hostname=ml3.local --name=ml3.local docker.repo.com/nsdat1/ml_mldba_poc:latest
sleep 2
docker exec -it ml1.local /bin/sh -c './tmp/initialize-ml.sh && sleep 5 && curl -i -X POST --data "admin-username=admin&admin-password=admin&wallet-password=admin&realm=public" http://localhost:8001/admin/v1/instance-admin'
sleep 2
docker exec -it ml2.local /bin/sh -c './tmp/initialize-ml.sh && sleep 2'
docker exec -it ml3.local /bin/sh -c './tmp/initialize-ml.sh && sleep 2'
docker exec -it ml2.local /bin/sh -c 'JOINER_CONFIG=`curl --anyauth --user admin:admin -X GET -H "Accept: application/xml" http://ml2.local:8001/admin/v1/server-config` && sleep 2 && curl --anyauth --user admin:admin -X POST -o cluster-config.zip -d "group=Default" --data-urlencode "server-config=${JOINER_CONFIG}" -H "Content-type: application/x-www-form-urlencoded" http://ml1.local:8001/admin/v1/cluster-config'
docker exec -it ml2.local /bin/sh -c 'TIMESTAMP=`curl --anyauth --user admin:admin -X POST -H "Content-type: application/zip" --data-binary @./cluster-config.zip http://ml2.local:8001/admin/v1/cluster-config`'
docker exec -it ml3.local /bin/sh -c 'JOINER_CONFIG=`curl --anyauth --user admin:admin -X GET -H "Accept: application/xml" http://ml3.local:8001/admin/v1/server-config` && sleep 2 && curl --anyauth --user admin:admin -X POST -o cluster-config.zip -d "group=Default" --data-urlencode "server-config=${JOINER_CONFIG}" -H "Content-type: application/x-www-form-urlencoded" http://ml1.local:8001/admin/v1/cluster-config'
docker exec -it ml3.local /bin/sh -c 'TIMESTAMP=`curl --anyauth --user admin:admin -X POST -H "Content-type: application/zip" --data-binary @./cluster-config.zip http://ml3.local:8001/admin/v1/cluster-config`'
## To set up appservers, forests, databases etc.
docker exec -it ml1.local /bin/sh -c './tmp/post-setup-bootstrap.sh'

Теперь я знаком с docker, но не с Kubernetes. Следующим моим шагом будет развертывание этого кластера и управление им на общей платформе, для которой мне нужно сначала ознакомиться с kubernetes и настроить кластер ML в своей локальной сети, используя Kubernetes.

Вопрос.

  1. Нужна ли виртуальная машина как мини-куб? У меня есть docker для настольного компьютера с запущенными docker и kubernetes. Запуск kubectl дает следующий вывод -

    kubectl cluster-info
    Kubernetes master is running at https://localhost:6443
    
  2. Не могли бы вы также кратко объяснить шаги, которым я должен следовать? Я бы хотел, чтобы у меня не было виртуальной машины.

1 Ответ

3 голосов
/ 29 января 2020
  1. Docker Для разработки вашей установки достаточно рабочего стола с включенным Kubernetes (в этой настройке Docker уже работает на ВМ).
  2. Обычно вы начинаете писать некоторые манифесты YAML Kubernetes и применяя их к вашему кластеру. В вашем случае с базой данных, требующей согласованного именования узлов, et c. StatefulSet может быть правильным вариантом. Это статья от Marklogi c, описывающая это.
...