Docker Desktop使您可以在本地计算机上轻松运行容器应用程序,包括需要Kubernetes集群的容器应用程序。
Kubeflow是由谷歌开发的拥有免费和开放源码的软件平台,通常对云或本地环境中的大型集群进行部署。
Kubeflow是Kubernetes+Tensorflow,是Google为了支持自家的Tensorflow的部署而开发出的开源平台,当然它同时也支持Pytorch和基于Python的SKlearn等其它机器学习的引擎。与其它的产品相比较,因为是基于强大的Kubernetes之上构建,Kubeflow的未来和生态系统更值得看好。
本文介绍如何在Docker Desktop上本地部署和使用Kubeflow。
Kubeflow基于Kubernetes和Docker运行。在Mac或Windows上满足这两个要求的最简单方法是安装Docker Desktop(2.1.xx版或更高版本)。在Docker Desktop的设置中,找到Kubernetes选项并选中“启用Kubernetes”。
在Docker Desktop中启用Kubernetes功能会在本地计算机上创建一个单节点Kubernetes集群。
本文详细介绍了如何在Mac Docker Desktop上设置Kubeflow。使用Linux容器在Windows Docker Desktop上部署Kubeflow需要两个条件:
1)Linux Shell:运行Kubeflow安装说明中的bash命令
2)Kfctl和kubectl CLI:初始化,生成和应用Kubeflow部署
满足这两个条件的方法是运行具有kfctl和kubectl应用程序的Linux容器。为此,创建一个Depend on Docker 项目。用两个可用的CLI启动bash shell。
docker run -it --rm -v <kube_config_folder_path>:/root/.kube iankoulski/kfctl bash
Mac和Windows的其余设置步骤相同。
在现有Kubernetes集群上部署Kubeflow的环境:4 vCPUs;50GB存储空间;12GB内存。
Docker Desktop需要调整设置以适应这些要求。将这些设置调整为超过所需的最小资源,以容纳可能在本地计算机上运行的系统容器和其他应用程序。
部署
将按照有关kfctl_k8s_istio配置的说明进行操作。
1.从官网下载适合使用的版本
curl -L -o kfctl_v0.6.2_darwin.tar.gz
https://github.com/kubeflow/kubeflow/releases/download/v0.6.2/kfctl_darwin.tar.gz
2.提取安装包
tar -xvf kfctl_v0.6.2_darwin.tar.gz
3.设置环境变量:
export PATH=$PATH:$(pwd)
export KFAPP=localkf
export CONFIG=https://raw.githubusercontent.com/kubeflow/kubeflow/v0.6-branch/bootstrap/config/kfctl_k8s_istio.0.6.2.yaml
4.初始化部署
kfctl init ${KFAPP} --config=${CONFIG}
cd ${KFAPP}
kfctl generate all -V
注意:以上说明适用于Kubeflow 0.6.2版,仅供参考。其他发行版的归档文件名,环境变量名称和值以及kfctl命令会稍有不同。这些将在特定发行版的部署说明中提供。
5.预拉容器图像(可选)
为了便于在本地部署Kubeflow,我们可以预装所有必需的Docker映像。当容器映像已存在于机器上时,Docker Desktop的内存使用率仍然很低。在部署时提取所有映像可能会导致内存利用率大幅上升,并可能导致Docker Daemon资源耗尽。在16GB笔记本电脑上运行Kubeflow时,预装映像特别有用。
要预装所有容器映像,请在$KFAPP/kustomize文件夹中执行以下脚本:
for i in $(grep -R image: . | cut -d ':' -f 3,4 | uniq | sed -e 's/ //' -e 's/^"//' -e 's/"$//'); do echo "Pulling $i"; docker pull $i; done;
等待几分钟。即使Docker Desktop的资源不足,重新启动它并再次运行脚本也将继续从您上次中断的地方提取剩余的映像。
如果在Windows上使用kfctl容器,则可能希望修改上面的脚本,以便将docker pull命令保存到文件中,然后从您首选的Docker shell中执行它们。
6.将Kubeflow部署应用于Kubernetes
cd ${KFAPP}
kfctl apply all -V
注意:可以通过执行“ kfctl delete all -V”来删除现有部署。
7.确定Kubeflow入口点
要确定端点,请在istio-system命名空间中列出所有服务:
kubectl get svc -n istio-system
Kubeflow端点服务通过与默认HTTP端口(80)连接的NodePort上的入口网关服务进行。节点端口号为31380。要访问Kubeflow,请使用:http : //127.0.0.1 :31380
长按二维码,关注我们
新睿云,让云服务触手可及
云主机|云存储|云数据库|云网络