Microsoft实习手记第三篇 Kubeflow部署
本文记录一下如何把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
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
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
Post a Comment