Microsoft实习手记第三篇 Kubeflow部署


0.
本文记录一下如何把kubeflow部署在一个已有的k8s集群上

1.
配置~/.kube/config ,保证kubectl 能访问到目标cluster

2.
这里用的kfctl v0.5.1 https://github.com/kubeflow/kubeflow/tree/v0.5-branch 来deploy kubeflow
kfctl 现在(2019/7/12) 使用非常不稳定,command 执行参数也经常改动,并且和教程并不匹配
https://github.com/kubeflow/website/commit/3a307d0a7689ee0863b83aa3de0d4ad6922d99db#diff-fe297c0331c2049d61d5c1972e94abfaR78
我这里参照的是3a307d0a7689ee0863b83aa3de0d4ad6922d99db这个commit之前的官方教程
kfctl 通过这个链接来wget 然后tar xvf 解压 https://github.com/kubeflow/kubeflow/releases/download/v0.5.1/kfctl_v0.5.1_linux.tar.gz

3.
export KFAPP=folder_to_your_local_target_folder
kfctl init \${KFAPP}

# 这里看到在目标文件夹会多一个app.yaml文件,可以通过编辑它来改目标的namespace

cd ${KFAPP}
kfctl generate all -V

# 这步我在k8s的node集群之外,比如本机的终端运行会有报错。但是在我ssh上去再跑就ok了。 不知道什么原因

kfctl apply all -V

4.
这样在k8s集群上的kubeflow(默认是这个namespace) 就部署起来了
接下来通过端口转发来通过浏览器访问kubeflow
export NAMESPACE=kubeflow
kubectl.exe port-forward svc/ambassador -n ${NAMESPACE} 8080:80
http://localhost:8080/

5.
通过查看所有pods 会发现有些pods没有启动,一路debug原因,发现下面的pvc状态当时是pending
进一步的原因是没有对应的pv存在,创建完满足大小的pv以后,(貌似这里的pvc会自己找没有claim的pv来绑定,因为在pvc的yaml文件里volume的值是空的)

NAME             STATUS   VOLUME      CAPACITY   ACCESS MODES   STORAGECLASS   AGE
katib-mysql      Bound    minio-pv    10Gi       RWO                           19h
minio-pvc        Bound    minio-pv2   20Gi       RWO                           24m
mysql-pv-claim   Bound    minio-pv3   20Gi       RWO                           19h

当这三个pvc都处于Bound状态以后可以看到所有pod都正常运行了
λ kubectl.exe get pods -n my-kubeflow

Comments

Popular posts from this blog

Malware Report: iauzzy.exe

Malware Report: withme.exe

根因分析之iDice 文章复现