1. 安装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*
2. 修改gluster 存储类
kubectl patch storageclass (storageclass名字) -p '{"metadata": {"annotations":
{"storageclass.kubernetes.io/is-default-class":"false"}}}
3. 部署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配置。
4. 下载Kubeflow
KUBEFLOW_SRC=~/kubeflow-repo
mkdir ${KUBEFLOW_SRC}
cd ${KUBEFLOW_SRC}
curl -O http://kubeflow.oss-cn-beijing.aliyuncs.com/download.sh
bash download.sh
5. 安装Kubeflow
export KFAPP=mykubeflow //不要指定路径,只需要一个名称即可,其会在pwd下创建mykubeflow
cd ~
${KUBEFLOW_SRC}/scripts/kfctl.sh init ${KFAPP} --platform none //在${KFAPP}文件夹中生成env.sh
cd ${KFAPP}
${KUBEFLOW_SRC}/scripts/kfctl.sh generate k8s //在${KFAPP}文件夹中生成ks_app文件夹,里面有部署过程成需要用到的yaml文件
//执行该步骤之前,最好把相关的镜像下载下来,不然无法执行成功
${KUBEFLOW_SRC}/scripts/kfctl.sh apply k8s //如果失败,则重复执行即可
6. 查看部署情况
部署过程中需要从谷歌下载镜像,因此会出现ImagePullBackOff,可以从阿里云上下载镜像,然后tag成对应的名称。
7. 部署PyTorch
这是Kubeflow 0.4.0的已知issue,由于Katib要依赖pytorch, 需要提前部署一下pytorch
cd ~
cd ${KFAPP}/ks_app/
ks apply default -c pytorch-operator
参考文献: