千家信息网

KubeFlow 1.2.0部署时碰到的问题怎么解决

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,本篇内容介绍了"KubeFlow 1.2.0部署时碰到的问题怎么解决"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2024年11月18日KubeFlow 1.2.0部署时碰到的问题怎么解决

本篇内容介绍了"KubeFlow 1.2.0部署时碰到的问题怎么解决"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

KubeFlow是一个基于Kubernetes的大数据和机器学习平台。部署参考:

  • KubeFlow 1.2.0镜像缓存(持续更新)

  • KubeFlow 1.2.0部署(Ubuntu20.04 + k8s 1.21.0)

预先准备

部署Istio服务网格
  • 参考 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:$PATHistioctl 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=enablednamespace/default labeled
部署metallb本地负载均衡服务
  • 参考 https://my.oschina.net/u/2306127?q=metallb

部署local path本地存储服务
  • 参考 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.yamlkubectl create -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/pod/pod.yaml
KubeFlow 1.2部署遗留问题

部署完了有一些问题,部分服务无法启动。经检查发现几个主要问题:

  • pvc未正常创建,导致相关的服务pod运行失败。

  • 部分镜像的下载策略被设置为了always,但是其位于gcr.io上,导致下载失败。

  • 缺失镜像kfam/kfserving。

下面针对这几个问题逐一解决。

1、pvc删除和重建

因为没有网络存储服务,使用local path。

将namespace为kubeflow下的pvc全部删除,主要包括:

  • katib-mysql

  • metadata-mysql

  • minio-pvc

  • mysql-pv-claim

然后添加StorageClass配置参数(这里使用local-path),重新创建pvc。

然后到pod列表中删除相关的pod,让系统自动重新创建,过一段时间就恢复正常了。

2、镜像下载策略修改

部分镜像的下载策略被设置为了always,但是其位于gcr.io上,导致下载失败。

先手工修改,验证是否可行。

  • 查看pod中状态为"ImagePullBackOff"的。

  • 然后找到对应的deployment或stateful set。

  • 在k8s dashboard选择"编辑"或者使用命令kubectl edit进行参数修改。

  • 删除对应的pod,系统会自动按照新的策略进行pod重建。

  • 等待一段时间,相应pod的状态恢复正常运行状态。

⚠️注意:要修改deployment和stateful set里面的参数。如果只修改pod和replica set/control set的参数,重建后会被覆盖而失效。

回头通过配置参数来进行修改,在部署时就可以完成。

3、补齐缺失的镜像

经过上面处理后,发现还有两个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部署时碰到的问题怎么解决"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0