Kubeflow是谷歌发布的一个机器学习工具库,Kubeflow项目旨在使Kubernetes上的机器学习变的轻松、便捷、可扩展,其目标不是重建其他服务,而是提供一种简便的方式找到最好的OSS解决方案。该库包含包含的清单用于创建:
用于创建和管理交互式Jupyternotebook的JupyterHub
可配置为使用CPU或GPU,并通过单一设置调整至单个集群大小的TensorFlow训练控制器(TensorflowTrainingController)
TF服务容器(TFServingcontainer)
该文档详述在可运行Kubernetes的任何环境中运行kubeflow项目的步骤。
Kubeflow目标
其目标是通过发挥Kubernetes的特长,从而更便捷地运用机器学习:
在不同的基础设施上实现简单、可重复的便携式部署(笔记本<->ML装备<->训练集群<->生产集群)
部署和管理松散耦合的微服务
根据需求进行扩展
由于机器学习从业者可供使用的工具非常多,所以核心目标是你可以根据需求自定义堆栈,并让系统处理无赖的东西」。虽然我们已开始使用少许技术,但我们正在与很多不同项目展开合作,以涵盖更多额外的工具。最终,我们希望给出一组简单的清单,只要在Kubernetes已运行的地方便能轻松使用ML堆栈,并可根据部署的集群实现自我配置。
设置
该文档假设你已经有一个可用的Kubernetes集群。对于具体的Kubernetes安装,可能需要额外的配置。
Minikube
Minikube是一个让我们在本地运行Kubernetes更方便的工具。Minikube会在笔记本的虚拟环境中运行一个单结点Kubernetes集群,从而令用户可以在该环境中试验它或执行日常的开发工作。下面的步骤适用于Minikube集群,本文档当前使用的是最新版0.23.0,我们必须配置Kubectl才能访问Minikube。
谷歌Kubernetes引擎
谷歌Kubernetes引擎是一个可用于部署容器化应用的托管环境。它融合了提高开发生产力、有效利用资源、自动化运维和开源灵活性方面的最新创新技术,能够加快模型进入市场以及迭代的时间。
谷歌在容器中运行生产工作负载的经验已超过15年,他们将在此期间学到的经验知识融入到了Kubernetes中。因此,Kubernetes是行业领先的开源容器协调系统,为KubernetesEngine提供技术支持。
如果读者正在使用谷歌Kubernetes引擎,在创建清单前,我们应该先授予自己所要求的RBAC角色,因而才能创建或编辑其它RBAC角色。
kubectl create clusterrolebinding default-admin --clusterrole=cluster-admin --user=user@gmail.com
评论