本教程介绍如何在阿里云容器服务上部署Kubeflow Pipelines服务。
可体验到
- 部署Kubeflow Pipelines
- kustomize的使用
- sed命令的使用
前置知识
- 编写YAML格式文件
- 了解kubeflow pipelines
前提条件
在教程开始之前:
- 您需要一个Kubernetes集群。在阿里云上创建Kubernetes GPU集群请参见 Kubernetes GPU集群支持GPU调度。
说明 为了保障集群安全,
- 您需要安装Arena。
执行以下命令安装:
curl -s https://raw.githubusercontent.com/AliyunContainerService/ai-starter/master/scripts/install_arena.sh | \ bash -s -- \ --prometheus
- 您需要安装kustomize。
- 在Linux和Mac OS环境,可以执行:
curl -s https://api.github.com/repos/kubernetes-sigs/kustomize/releases/latest |\ grep browser_download |\ grep linux |\ cut -d '"' -f 4 |\ xargs curl -O -L mv kustomize /usr/bin/kustomize chmod u+x /usr/bin/kustomize
- 在Windows环境,可以下载kustomize_2.0.3_windows_amd64.exe。
- 在Linux和Mac OS环境,可以执行:
背景信息
Kubeflow Pipelines是一个面向机器学习的工作流解决方案,通过定义一个有向无环图描述流水线系统,将机器学习中的应用代码按照流水线的方式编排,形成可重复的工作流。并提供平台,帮助编排,部署,管理,这些端到端机器学习工作流。本教程将介绍如何在阿里云容器服务中部署一个kubeflow pipelines环境。
说明 Kubeflow Pipelines需要依赖于mysql和minio这些有状态服务,也就需要持久化和备份数据,本教程中的部署yaml将会在集群所在可用区创建一块按量付费SSD云盘,阿里云的SSD云盘可以设置定期的自动备份,保证pipeline中的元数据不会丢失。
操作步骤
- 下载源代码。
git clone --recursive https://github.com/aliyunContainerService/kubeflow-aliyun
- 安全配置。
- 配置TLS证书。如果没有TLS证书,可以通过下列命令生成:
yum install -y openssl domain="pipelines.kubeflow.org" openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout kubeflow-aliyun/overlays/ack-auto-clouddisk/tls.key -out kubeflow-aliyun/overlays/ack-auto-clouddisk/tls.crt -subj "/CN=$domain/O=$domain"
- 配置admin的登录密码:
yum install -y httpd-tools htpasswd -c kubeflow-aliyun/overlays/ack-auto-clouddisk/auth admin
- 配置TLS证书。如果没有TLS证书,可以通过下列命令生成:
- 使用kustomize生成部署yaml。
cd kubeflow-aliyun/ kustomize build overlays/ack-auto-clouddisk > /tmp/ack-auto-clouddisk.yaml
- 修改yaml文件默认配置。
- 查看所在的Kubernetes集群节点所在的地域和可用区,并且根据其所在节点替换可用区,假设您的集群所在可用区为cn-hangzhou-g,可以执行下列命令:
sed -i.bak 's/regionid: cn-beijing/regionid: cn-hangzhou/g' \ /tmp/ack-auto-clouddisk.yaml
sed -i.bak 's/zoneid: cn-beijing-e/zoneid: cn-hangzhou-g/g' \ /tmp/ack-auto-clouddisk.yaml
- 将容器镜像地址由gcr.io替换为registry.aliyuncs.com:
sed -i.bak 's/gcr.io/registry.aliyuncs.com/g' \ /tmp/ack-auto-clouddisk.yaml
- 调整使用磁盘空间大小,例如需要调整磁盘空间为200G:
sed -i.bak 's/storage: 100Gi/storage: 200Gi/g' \ /tmp/ack-auto-clouddisk.yaml
说明 建议您检查一下/tmp/ack-auto-clouddisk.yaml修改是否已经设置。
- 查看所在的Kubernetes集群节点所在的地域和可用区,并且根据其所在节点替换可用区,假设您的集群所在可用区为cn-hangzhou-g,可以执行下列命令:
- 验证pipelines的yaml文件。
kubectl create --validate=true --dry-run=true -f /tmp/ack-auto-clouddisk.yaml
- 利用kubectl部署pipelines。
kubectl create -f /tmp/ack-auto-clouddisk.yaml
说明 清理pipelines命令:kubectl delete -f /tmp/ack-auto-clouddisk.yaml
。 - 查看访问pipeline的方式。
kubectl get ing -n kubeflow NAME HOSTS ADDRESS PORTS AGE ml-pipeline-ui * 192.168.193.271 80, 443 11m
- 输入步骤2中的用户名admin和设定的密码访问pipeline服务
https://192.168.193.271/pipeline/
。
在文档使用中是否遇到以下问题
更多建议
匿名提交