在ACS上部署社区版Kubeflow
更新时间:
复制为 MD 格式
在ACS集群中,针对分布式深度学习训练需求,通过部署社区版 Kubeflow 并将训练算子镜像替换为 ACR 国内镜像,实现 PyTorchJob 任务的快速交付与稳定运行。
连接集群
确定待安装kubectl的客户端机器,根据运行环境和集群版本安装kubectl。
登录容器计算服务控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
-
在集群信息页面,单击连接信息页签,选择临时或长期KubeConfig。对于临时KubeConfig,需合理设置其有效期。
-
选择公网访问或内网访问页签,单击复制,将复制的KubeConfig内容粘贴至客户端的$HOME/.kube/config文件中,保存并退出。
如果
$HOME/.kube/config文件不存在,可通过mkdir -p $HOME/.kube和touch $HOME/.kube/config来创建。 -
配置完成后,执行kubectl命令以验证集群连通性。
以查询命名空间为例。
kubectl get namespaces预期输出:
NAME STATUS AGE default Active 4h39m kube-node-lease Active 4h39m kube-public Active 4h39m kube-system Active 4h39m
部署社区Kubeflow
部署Kubeflow步骤如下,运行命令前请依实际情况修改相关参数。
# 安装kustomize curl -LO "https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv5.0.0/kustomize_v5.0.0_linux_amd64.tar.gz" tar -xzvf kustomize_v5.0.0_linux_amd64.tar.gz chmod 755 kustomize mv kustomize /usr/bin/ # 部署Kubeflow git clone https://github.com/kubeflow/manifests.git && cd manifests && git checkout tags/v1.9.1-rc.2 -b v1.9.1-rc.2 # 可使用 Git 拉取其他版本的 manifests,但为了避免 manifests 更新后与本文提供的镜像版本不兼容,建议下载并解压附件 manifests.zip 后使用 kustomize build common/kubeflow-namespace/base | kubectl apply -f - kustomize build apps/training-operator/upstream/overlays/kubeflow | kubectl apply -f -Kubeflow部署成功后,在控制台创建自定义资源类型工作负载时可以看到Kubeflow提供的众多分布式任务CRD,本文重点关注PyTorchJob CRD。
由于网络限制,社区原生的Kubeflow中的部分镜像无法拉取,因此需要在部署之后对系统添加补丁,步骤如下。
修改镜像字段。
# 替换training-operator中docker.io仓库镜像为ACR镜像 kubectl edit deployment training-operator -n kubeflow # 在 spec.template.spec.containers[0].command 字段的 - /manager 下方添加如下参数 - -pytorch-init-container-image=cnp-image-center-registry.cn-wulanchabu.cr.aliyuncs.com/library/alpine:3.10 # 将 spec.template.spec.containers[0].image 字段替换为 cnp-image-center-registry.cn-wulanchabu.cr.aliyuncs.com/kubeflow/training-operator:v1-4485b0a重要修改时缩进不能用Tab键,需要用空格键。
修改完成后,在 vi/vim 编辑模式下输入
:wq并回车保存。如果 YAML 格式存在错误,系统将停留在编辑界面并在上方提示错误原因。
修改Operator的YAML并提交后,检查PyTorchJob CRD和training-operator状态是否正常。
# 检查CRD kubectl get crd # 检查training-operator是否处于Running状态 kubectl get pods -n kubeflow补丁部署成功的效果如下图所示。至此,您可以正常使用Kubeflow。


该文章对您有帮助吗?