本篇内容介绍了“KubeFlow 1.2.0部署时碰到的问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
KubeFlow是一个基于Kubernetes的大数据和机器学习平台。部署参考:
KubeFlow 1.2.0镜像缓存(持续更新)
KubeFlow 1.2.0部署(Ubuntu20.04 + k8s 1.21.0)
参考 https://istio.io/latest/docs/setup/getting-started/#download
curl -L https://istio.io/downloadIstio | sh - cd istio-1.9.4 #设置路径,可加入~/.profile #export PATH=$PWD/bin:$PATH istioctl install --set profile=demo -y #Add a namespace label to instruct Istio to automatically inject Envoy sidecar proxies when you deploy your application later: $ kubectl label namespace default istio-injection=enabled namespace/default labeled
参考 https://my.oschina.net/u/2306127?q=metallb
参考 https://github.com/rancher/local-path-provisioner#deployment
快速安装:
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml
部署 hostPath
的 Persistent Volume 和使用 pod样例:
kubectl create -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/pvc/pvc.yaml kubectl create -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/pod/pod.yaml
部署完了有一些问题,部分服务无法启动。经检查发现几个主要问题:
pvc未正常创建,导致相关的服务pod运行失败。
部分镜像的下载策略被设置为了always,但是其位于gcr.io上,导致下载失败。
缺失镜像kfam/kfserving。
下面针对这几个问题逐一解决。
因为没有网络存储服务,使用local path。
将namespace为kubeflow下的pvc全部删除,主要包括:
katib-mysql
metadata-mysql
minio-pvc
mysql-pv-claim
然后添加StorageClass配置参数(这里使用local-path),重新创建pvc。
然后到pod列表中删除相关的pod,让系统自动重新创建,过一段时间就恢复正常了。
部分镜像的下载策略被设置为了always,但是其位于gcr.io上,导致下载失败。
先手工修改,验证是否可行。
查看pod中状态为“ImagePullBackOff”的。
然后找到对应的deployment或stateful set。
在k8s dashboard选择“编辑”或者使用命令kubectl edit进行参数修改。
删除对应的pod,系统会自动按照新的策略进行pod重建。
等待一段时间,相应pod的状态恢复正常运行状态。
⚠️注意:要修改deployment和stateful set里面的参数。如果只修改pod和replica set/control set的参数,重建后会被覆盖而失效。
回头通过配置参数来进行修改,在部署时就可以完成。
经过上面处理后,发现还有两个pod无法启动:
kfserving-controller-manager,镜像为:
gcr.io/kfserving/kfserving-controller:v0.4.1
profiles-deployment,镜像为:
gcr.io/kubeflow-images-public/kfam:vmaster-g9f3bfd00
经查是之前的自动产生脚本遗漏了(在一个pod中有两个镜像,只提取了一个)。单独下载,docker save为tar文件,然后下载回来docker load到每一个节点上就可以了。
已经在aliyun的镜像库和脚本中补正:
直接使用《KubeFlow 1.2.0镜像缓存(持续更新)》的方法和脚本就可以了。
“KubeFlow 1.2.0部署时碰到的问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。