开发者社区> 必嘫> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

新Kubeflow,新征程 (一):简化部署体验

简介: 时光飞逝,Kubeflow这个基于Kubernetes的云原生机器学习平台方案已经诞生了1年多的时间,人们审视它的眼光不再是好奇和宽容。人们已经开始审视,思考甚至挑战Kubeflow的价值, 而Kubeflow社区包括Google本身也在思考和变革,在这种背景下Kubeflow 0.4.0发布了。
+关注继续查看

综述

2017年底,奥斯汀的Kubecon上,Google项目的产品经理 David Aronchick 和首席工程师 Jeremy Lewi将Kubeflow这个项目带到了大家的视野里。经过一年的发展,在2018年的西雅图的Kubecon上, Kubeflow的热浪席卷整个会场,大约有近15-16个与KubeFlow相关的分享,来自于Google,阿里巴巴,Intel,IBM等公司的社区贡献者都介绍了自己和KubeFlow相关的经验。应该说,Kubeflow在2018赢得业界的关注。

kubeflow.png

但是平心而论,它还没有获得用户的信任。从能力上来看还有硬伤:

  1. 不能升级,作为一款软件方案,如果没有升级方案只能重建,对于用户来说是不可以接受。
  2. 不支持多租户,目前仅适用数据科学家的solo场景,无法支持数据科学家团队合作场景。缺乏隔离和资源限制导致并不适合规模中等以上的公司使用。
  3. 不够安全,许多组件都没有认证机制。

要承认Kubeflow距离真正的生产可用还有比较大的距离,但是从Kubeflow的Roadmap看,这也是Kubeflow社区在努力的方向。同时也能看到Google在发力,有了更多的工程师投入,同时向Nvidia,Cisco,红帽,微软等许多公司也真正有专人在KubeFlow上投入。如果有明确的方向,再加上持续的大规模投入从长期看Kubeflow的发展还是很有希望的。

与其临渊羡鱼,不如退而结网,改善Kubeflow真正有效的方法是大家尝试用KubeFlow解决自己在机器学习或者深度学习场景下的问题,并且将各种问题,吐槽甚至是解决方案回馈给社区,才能真正帮助KubeFlow成为云原生下解决数据科学家团队运行机器学习问题的利器。在这个背景下,Kubeflow 0.4.0于1月7日正式发布了。在0.4.0中包含了:

  • Jupyter Hub可以使用PVC
  • TFJob和PyTorch已经进入Beta阶段
  • Katib支持TFJob
  • Pipeline
  • Kubeflow的部署也变得更加简单,用户不用再似懂非懂的运行一堆ksonnet param和apply命令

其中Pipline(机器学习工作流)和Katib (自动机器学习框架)是0.4.0中新加入的能力;而TFJob进入了V1Beta1,距离真正的V1也是近在咫尺了。而Jupyter Hub与之前也有比较明显的变化。我们会在系列文章中与大家介绍。

为了能让国内的用户方便的体验到KubeFlow 0.4.0,阿里云容器服务团队第一时间对KubeFlow进行了适配。您可以按照本文档在阿里云容器服务上部署Kubeflow 0.4.0的版本。后续随着KubeFlow的不断完善,我们也会将KubeFlow和阿里云的能力进行深度整合。为您提供基于Kubernetes的完整的云原生机器学习体验。

部署Kubeflow

部署阿里云Kubernetes容器服务

选择GPU类型 (您也可以选择CPU类型,结合您的实际需求)

具体参考创建GPU集群

安装ksonnet

Kubeflow 利用 ksonnet 打包和部署其组件。

首先,安装ksonnet版本 0.13.1

cd /tmp/
curl -O http://kubeflow.oss-cn-beijing.aliyuncs.com/ks_0.13.1_linux_amd64.tar.gz
tar -xvf ks_0.13.1_linux_amd64.tar.gz
cp */ks /usr/local/bin/
rm -rf ks_0.13.1_linux_amd64*

部署PVC

和之前的版本相比,在0.4.0的版本中,KubeFlow依赖于katib-mysql,pipeline-mino,pipeline-mysql这三个有状态服务。而这些需要提前部署,您也可以根据自己的需求修改PV和PVC的配置

wget http://kubeflow.oss-cn-beijing.aliyuncs.com/storage.yaml
kubectl create namespace kubeflow
kubectl create -f storage.yaml

注意: 这里提供的方案是为了满足快速部署,您可以根据自身需求配置更为合理的PV和PVC配置。

下载Kubeflow的repo

KUBEFLOW_SRC=~/kubeflow-repo
mkdir ${KUBEFLOW_SRC}
cd ${KUBEFLOW_SRC}
curl -O http://kubeflow.oss-cn-beijing.aliyuncs.com/download.sh
bash download.sh

在阿里云上安装Kubeflow

由于国内访问Google默认的的镜像仓库不稳定,请您在选择platform时候,指定云平台为ack( Alibaba Cloud Kubernetes)

export KFAPP=mykubeflow

cd ~
${KUBEFLOW_SRC}/scripts/kfctl.sh init ${KFAPP} --platform ack
cd ${KFAPP}
${KUBEFLOW_SRC}/scripts/kfctl.sh generate platform
${KUBEFLOW_SRC}/scripts/kfctl.sh apply platform
${KUBEFLOW_SRC}/scripts/kfctl.sh generate k8s
${KUBEFLOW_SRC}/scripts/kfctl.sh apply k8s

注意:第一次执行${KUBEFLOW_SRC}/scripts/kfctl.sh apply k8s的时候,会报出如下错误:

error.jpg

此时不用担心,这是Kubeflow的已知issue,可以重新执行一次apply命令解决。

${KUBEFLOW_SRC}/scripts/kfctl.sh apply k8s

部署pytorch

这是Kubeflow 0.4.0的已知issue,由于Katib要依赖pytorch, 需要提前部署一下pytorch

cd ~
cd ${KFAPP}/ks_app/
ks apply default -c pytorch-operator

关闭Kubeflow使用报告 (可选)

默认Kubeflow会想Google匿名上报用户的使用情况,如果您感到不妥,可以按照以下方法关闭

kubectl delete -n kubeflow deploy spartakus-volunteer
cd ~
cd ${KFAPP}/ks_app/
ks delete default  -c spartakus
ks component rm spartakus

访问Central UI

Kubeflow提供了一系列的UI:

  • Argo UI
  • JupyterHub
  • Katib
  • TFJobs Dashboard

Kubeflow提供了Central UI方便用户访问不同的服务,由于KubeFlow目前在安全上还有所欠缺,不建议您在互联网上暴露服务。您可以在本机使用port forward命令访问Central UI

export NAMESPACE=kubeflow
export PODNAME=`kubectl get po -n kubeflow  -l service=ambassador | grep -v NAME| head -1| awk '{print $1}'`
kubectl port-forward ${PODNAME} -n ${NAMESPACE} 8080:80

最终您可以直接访问Central UI, 并且导航栏访问不同的Kubeflow服务。这样您就可以开始您的Kubeflow之旅了。

http://localhost:8080/

central_ui.png

总结

本文向您介绍Kubeflow最新的变化以及如何在阿里云上部署Kubeflow最新版本的步骤,欢迎您亲自尝试。我们后续也会介绍如何在阿里云上使用Kubeflow具体服务的方法。

Kubeflow当前版本的部署安装对于GCE有比较强的绑定,导致使用者独立部署有一定的难度,为了方便您在非GCE的平台尝试,阿里云容器服务团队提供了阿里云上的部署方案,后续我们也会与Kubeflow进行更深入的整合,提供基于Kubeflow,并结合阿里云的存储,弹性和安全能力的机器学习解决方案。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
页面 reflow 和 layout 过程|学习笔记
快速学习页面 reflow 和 layou t过程
20 0
Tensorflow |(1)初识Tensorflow
Tensorflow |(1)初识Tensorflow
51 0
Tensorflow小技巧(一)
Tensorflow小技巧(一)
82 0
kubeflow系列(二):kubeflow组件介绍
kubeflow作为基于云原生的机器学习大礼包,即可以作为一个很好的云原生的学习例子,同时基于k8s的生态必将是未来的发展的方向,相信后续Mxnet、paddle等各类型技术框架也都会运行在kubernetes这个生态之上,而对组件和架构的梳理可以以最快的速度了解kubeflow。
3106 0
TensorFlow 高效编程
TensorFlow 高效编程 原文:vahidk/EffectiveTensorflow 译者:FesianXu、飞龙 协议:CC BY-NC-SA 4.0 一、TensorFlow 基础 TensorFlow 和其他数字计算库(如 numpy)之间最明显的区别在于 TensorFlow 中操作的是符号。
974 0
用 Go 语言理解 Tensorflow
本文讲的是用 Go 语言理解 Tensorflow,Tensorflow 并不是一个严格意义上的机器学习库,它是一个使用图来表示计算的通用计算库。它的核心功能由 C++ 实现,通过封装,能在各种不同的语言下运行。
1941 0
关于重绘(repaint)和回流(reflow)的理解
  今天谈谈重绘和回流是怎么回事 一、什么是页面的重绘与回流 当页面中的部分或者全部元素改变宽度和高度、或者位置发生变化、删除或者增加某个或者某些元素时、某个元素影藏或者显示时,这时页面就需要重新加载了,这就叫做回流。 当页面的中的可见性发上变化时,比如:背景颜色吗,文字颜色等,这样就形成了重绘。  注:从上面可以看出,回流必将引起重绘,而重绘不一定会引起回流。 二、怎么
1481 0
+关注
必嘫
阿里云技术专家,在应用性能监控和软件交付方面有丰富的实践经验,目前专注于容器服务,微服务以及机器学习等领域。
文章
问答
来源圈子
更多
容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级 Kubernetes 容器化应用的全生命周期管理。容器服务 Kubernetes 版简化集群的搭建和扩容等工作,整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳的 Kubernetes 容器化应用运行环境。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
如何使用AWS构建跨地区的应用体验
立即下载
如何使用 AWS 搭建跨地区的应用体验
立即下载
阿里的Kubernetes测试环境开源工具箱
立即下载