事前準備
你需要:
- 已安裝 Kf 的現有叢集。
- 存取已安裝
gcloud
、kf
和kubectl
的電腦。
驗證現有的 Kf 安裝
取得驗證憑證以與叢集互動:
gcloud container clusters get-credentials CLUSTER_NAME \ --zone CLUSTER_ZONE \ --project CLUSTER_PROJECT_ID
執行
kf debug
,並驗證 Kf CLI 和 Kf 伺服器版本是否相符。- CLI 版本會列在
Kf Client
下方。 - Kf 伺服器版本會列在
kf["app.kubernetes.io/version"]
下方。
$ kf debug ... Version: Kf Client: v2.0.0 Server version: v1.17.13-gke.1401 kf["app.kubernetes.io/version"]: v2.0.0 ...
如果 Kf 用戶端和 Kf 伺服器的值「不相符」,請下載並安裝與伺服器版本相符的 Kf CLI 版本,然後使用新的 CLI 重複檢查。請先確認 CLI 版本與伺服器版本相符,再繼續操作。
- CLI 版本會列在
執行
kf doctor
以查看叢集狀態。請先確認所有測試均通過,再繼續操作。$ kf doctor ... === RUN doctor/user === RUN doctor/user/ContainerRegistry --- PASS: doctor/user --- PASS: doctor/user/ContainerRegistry ...
如果您看到「
Error: environment failed checks
」訊息,請按照doctor
輸出內容中的指示解決問題,並重試指令,直到成功為止。
升級
如要升級 Kf,請執行下列步驟:
- 準備本機環境和升級作業。
- 升級 Kf 的依附元件。
- 升級 Kf,並確認升級是否成功。
準備升級
執行
kf version
即可取得目前的 Kf 版本。$ kf version kf version v2.0.0 linux
您可以前往下載頁面,查看下一個最新版本的 Kf。
下載 Kf 發布版 YAML 檔案,並儲存為
kf-release.yaml
。下載適用於 OS 的 Kf 版本,並將其命名為
kf-next
。執行
chmod
即可讓kf-next
可執行:chmod +x kf-next
執行
kf-next version
,確認下載的版本與您要安裝的 Kf 版本相符:$ kf-next version kf version v2.1.0 linux
執行以下命令,備份
config-defaults
設定檔:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
執行
kubectl diff -f kf-release.yaml
,並檢查升級作業對叢集所做的變更。編輯
kf-release.yaml
,保留您想保留的變更。舉例來說,如果您在 Kf 的
v2.0.0
中將config-defaults
設定為 false,spaceDefaultToV3Stack
的預設值就會是true
。v2.1.0
再次執行
kubectl diff -f kf-release.yaml
,確認您所做的任何變更都能產生預期的輸出內容。
升級 Kf 依附元件
開啟下載頁面,然後找出要升級至的 Kf 版本的依附元件矩陣。
升級 Tekton:
開啟 Tekton 發布頁面。
在 Kf 依附元件矩陣中找出 Tekton 的版本。
執行「Installation one-liner」(安裝一行指令) 標題下方的指令,即可升級 Tekton。
升級 Cloud Service Mesh:
在版本下拉式選單中,選取 Kf 依附元件矩陣中列出的 Cloud Service Mesh 版本。
請按照指南升級 ASM。
升級及驗證 Kf
使用修改過的版本設定安裝升級版 Kf 元件:
kubectl apply -f kf-release.yaml
執行
doctor
,確保新安裝的版本運作正常:kf-next doctor --retries=12 --delay=5s
這個指令會執行多次叢集檢查。在新的控制器啟動時,部分嘗試可能會失敗,這是正常現象。
如果指令失敗並顯示訊息
Error: environment failed checks
,請按照doctor
輸出內容中的指示解決問題,並重試指令,直到成功為止。將系統上現有的
kf
CLI 替換為kf-next
CLI。chmod +x kf-next
mv kf-next $(which kf)
請比較
config-defaults-backup.yaml
檔案與kubectl diff -f config-defaults-backup.yaml
,確認叢集仍設定正確。舉例來說,如果您保留舊版 Kf 的所有變更,並核准使用與下一個 Kf 版本隨附的新 Buildpack:
$ kubectl diff -f config-defaults-backup.yaml diff -u -N /tmp/LIVE/v1.ConfigMap.kf.config-defaults /tmp/MERGED/v1.ConfigMap.kf.config-defaults --- /tmp/LIVE/v1.ConfigMap.kf.config-defaults +++ /tmp/MERGED/v1.ConfigMap.kf.config-defaults @@ -131,6 +131,8 @@ enable_route_services: false spaceBuildpacksV2: | - - name: new_buildpack - url: https://github.com/cloudfoundry/new-buildpack - name: staticfile_buildpack url: https://github.com/cloudfoundry/staticfile-buildpack - name: java_buildpack exit status 1