简述
Kubeflow是的机器学习工具包。Kubeflow是运行在K8S之上的一套技术栈,这套技术栈包含了很多组件,组件之间的关系比较松散,我们可以配合起来用,也可以单独用其中的一部分
Kubeflow提供了一大堆组件,涵盖了机器学习的方方面面
最主要的是以下几个
Operator:是针对不同的机器学习框架提供资源调度和分布式训练的能力(TF-Operator,PyTorch-Operator,Caffe2-Operator,MPI-Operator,MXNet-Operator);
Pipelines:是一个基于Argo实现了面向机器学习场景的流水线项目,提供机器学习流程的创建、编排调度和管理,还提供了一个Web UI。
Katib:是基于各个Operator实现的超参数搜索和简单的模型结构搜索的系统,支持并行搜索和分布式训练等。超参优化在实际的工作中还没有被大规模的应用,所以这部分的技术还需要一些时间来成熟;
Serving支持部署各个框架训练好的模型的服务化部署和离线预测。Kubeflow提供基于TFServing,KFServing,Seldon等好几种方案。由于机器学习框架很多,算法模型也各种各样。工业界一直缺少一种能真正统一的部署框架和方案。这方面Kubeflow也仅仅是把常见的都集成了进来,但是并没有做更多的抽象和统一
部署环境及要求
注意之前有很多文章都提到了使用ksonnet安装kubeflow,但是目前ksonnet即将停用,所以会出现yaml文件不支持的情况,这里的部署按照的是官方文档使用kfctl_k8s_istio的Kubeflow部署https://www.kubeflow.org/docs/started/k8s/kfctl-k8s-istio/
k8s version :1.14.6
保证一台工作节点 :4C
16G Memory
50G HD
这里用到的是阿里云服务器,建议使用云服务器,保证每个服务器都符合上述标准
下面开始正式部署,前提是k8s已搭建完毕,dns正常
部署
1.下载kfctl包和yaml文件
1.wegt https://github.com/kubeflow/kfctl/releases/tag/v1.0.2 这里建议翻墙下载到本地再上传
2.下载源码包(任选其一,将文件下载到/root/v1.0.2.tar.gz)
wget https://github.com/kubeflow/manifests/archive/v1.0.2.tar.gz
wget https://github.com/kubeflow/kfctl/archive/v1.0.2.tar.gz
3.下载 yaml 文件
wget https://raw.githubusercontent.com/kubeflow/manifests/v1.0-branch/kfdef/kfctl_k8s_istio.v1.0.2.yaml
4.修改 kfctl_k8s_istio.v1.0.2.yaml 内容
将 https://github.com/kubeflow/manifests/archive/v1.0.2.tar.gz 改为 file:///root