小目标:基于前期搭建的kubernetes集群,部署kubeflow,由于涉及到google的docker镜像,只好设置国外代理了

下载安装包:

1
2
wget https://github.com/ksonnet/ksonnet/releases/download/v0.13.1/ks_0.13.1_linux_amd64.tar.gz
wget https://github.com/kubeflow/kubeflow/archive/v0.4.0-rc.3.tar.gz #2019.1.4 最新版本v0.4.0-rc.3

将下载好的安装包解压并归档

1
2
3
4
5
tar -vxf ks_0.13.1_linux_amd64.tar.gz
tar -vxf v0.4.0-rc.3.tar.gz
mkdir kubeflow-ks
cp -r kubeflow-0.4.0-rc.3 kubeflow-ks
cp -r ks_0.13.1_linux_amd64 kubeflow-ks

安装ksonnet

ks是一个可执行文件,直接拷贝到系统可执行目录下就OK了

1
2
cd kubeflow-ks/ks_0.13.1_linux_amd64
cp ks /usr/bin

安装部署kubeflow

首先定义一些临时的环境变量,安装的时候会方便很多,因为安装脚本也是需要用到这些变量的

1
2
export KUBEFLOW_SRC=/your/path/to/kubeflow-0.4.0-rc.3
export KFAPP=kubeflowconfig #随意命名

注意:KFAPP必须是将要存放配置文件的目录名称,不可以是目录的路径,否则会报以下错误:<name> should be the name for the deployment; not a path

安装部署只需要三个命令

1
2
3
${KUBEFLOW_SRC}/scripts/kfctl.sh init ${KFAPP} --platform none  # none 也可以是minikube等
${KUBEFLOW_SRC}/scripts/kfctl.sh generate k8s
${KUBEFLOW_SRC}/scripts/kfctl.sh apply k8s

查看是否运行好了:

1
2
3
4
kubectl get pod -n kubeflow  #理论上gcr.io的镜像pull不下来
# 查看ImagePullBackOff等问题
kubectl describe pod scheduledworkflow -n kubeflow
#提示: Failed to pull image "gcr.io/ml-pipeline/scheduledworkflow:0.1.6"

所以这里需要代理了.. 设置国外代理的方法比较多,我这里使用的是VPS的方式。

想要删除 or 重新部署?

直接删除kubeflow这个namespace和之前放置配置文件的文件夹就OK了

1
2
3
kubectl delete ns kubeflow
kubectl delete crd tfjobs.kubeflow.org # crd 不删除也行
rm -rf ${KFAPP}

参考资料

  1. 官方文档
  2. katacoda