当前位置: 首页 > 知识库问答 >
问题:

ML docker容器本地设置完成。现在如何使用Kubernetes在共享云平台中进行部署?

单于经纬
2023-03-14

我成功地将一个markLogic映像推送到我们的内部artifactory中,我们有一个bootstrap 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集群。

问题。

>

  • 我需要像minikube那样的VM吗?我有docker桌面设置与docker和kubernetes运行。运行kubectl会得到以下输出-

    kubectl cluster-info
    Kubernetes master is running at https://localhost:6443
    
  • 共有1个答案

    燕靖
    2023-03-14
    1. 启用Kubernetes的Docker桌面足以开发安装程序(在此安装程序中,Docker已在VM中运行)。
    2. 通常您会开始编写一些Kubernetes YAML清单并将它们应用到集群中。在您的情况下,对于需要一致命名节点等的数据库,statefulset可能是正确的选项。Marklogic有一篇文章对此进行了描述。
     类似资料:
    • 对于开发:我有一个部署在docker容器中的节点API。该docker容器运行在Linux虚拟机中。对于部署:我将docker映像推送到Azure(ARC),然后我们的管理员创建容器(ACI)。 有什么需要帮忙的吗?

    • 我遵循了GKE教程,使用beta Inrit类型创建HTTP负载均衡器,并且在使用nginx映像时工作正常。我的问题是为什么Inrit是必要的。 我可以创建一个容器引擎集群,然后创建一个使用库伯内特斯创建的实例组作为服务后端的HTTP负载均衡器,并且一切似乎都运行良好。当仅在部分流程中使用库伯内特斯似乎运行良好时,为什么我要经历使用Inete的所有麻烦?

    • 我在使用谷歌云平台和库伯内特斯。 我试图找出我应该使用哪个令牌才能登录到仪表板,并有足够的权限随心所欲。 我在谷歌云平台上创建了一个3节点的Kubernetes 1.8.6集群 my developer desktop是macos high sierra 10.13.2上的Mac Pro(2013年底),安装了google cloud sdk和kubernetes cli。 和 我在文档中读到,为

    • 我试图在一个Kotlin多平台移动项目的共享代码中实现一个计时器功能。计时器将运行n秒,每秒它将回调以更新UI。而且,UI中的一个按钮可以取消计时器。这不可避免地意味着我必须开始某种新线程,我的问题是哪一种机制是合适的--工人、关联者还是其他什么? 我尝试使用带有以下代码的coroutine,但在IOS上遇到了InvalidMutabilityException: 我确实了解moko-time库,

    • 我在谷歌云平台上托管了一个基本的网络应用程序,我注意到在过去的几个月里,我的成本在慢慢上升。在过去的30天里,它真的加速了(幸运的是,在一个很小的基础上--我仍然在每天不到2美元的水平上滴答作响)。我已经几个月没有添加任何新的功能或客户端了,所以这有点令人惊讶。 我的第一直觉是交通增加了。我在App Engine仪表板上看不到类似的内容,但我放入了一堆优化,并大幅降低了QPS以防万一。没有变化。

    • 我正在尝试使用以声明方式创建一个部署 但如果我走了 我收到了一条可爱的错误消息: 错误:无法解码“postgres deployment.yaml”:没有为版本“apps/v1beta1”注册任何类型的“deployment” 我试图寻找一个解释这意味着什么,但我不明白。