【问题标题】:ML docker containers local setup done. Now how to deploy in a shared cloud platform using Kubernetes?ML docker 容器本地设置完成。现在如何使用 Kubernetes 在共享云平台上进行部署?
【发布时间】:2020-01-29 08:22:59
【问题描述】:

我成功地将 markLogic 映像推送到我们的内部工件,并且我们有一个引导 shell 脚本,当执行该脚本时,它会在任何人的本地计算机上设置一个 3 节点 ML 集群。这是脚本。

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 并使用 Kubernetes 在我的本地设置 ML 集群。

问题。

  1. 我需要像 minikube 这样的 VM 吗?我有用于桌面设置的 docker docker 和 kubernetes 都在运行。运行 kubectl 给出如下 输出 -

    kubectl cluster-info
    Kubernetes master is running at https://localhost:6443
    
  2. 您能否简要解释一下我需要遵循的步骤?我想避免在本地使用虚拟机。

【问题讨论】:

    标签: docker kubernetes marklogic


    【解决方案1】:
    1. 启用 Kubernetes 的 Docker Desktop 足以开发您的设置(在此设置中,Docker 已经在 VM 中运行)。
    2. 通常您会开始编写一些 Kubernetes YAML 清单并将它们应用到您的集群。对于需要一致命名节点等的数据库,StatefulSet 可能是正确的选择。有一个 article by Marklogic 对此进行了描述。

    【讨论】:

    • 文章以 minikube 作为先决条件进行了说明。
    • 这只是一种选择——任何 Kubernetes 集群都可以
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多