KubeFlow 1.2.0部署問題完全解決

部署參考:

預先準備

部署Istio服務網格

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

部署metallb本地負載均衡服務

部署local path本地存儲服務

快速安裝:

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

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到每一個節點上就可以了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章