升級至新版本
請按照下列步驟將 Apigee Hybrid 升級至新版本:
下載並安裝新版 apigeectl。
apigeectl 是指令列介面 (CLI),用於在 Kubernetes 叢集中安裝及管理 Apigee Hybrid。
下載要升級的 apigeectl 版本:
根據所用的作業系統下載發布套件:
Mac 64 位元:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/version_number/apigeectl_mac_64.tar.gzLinux 64 位元
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/version_number/apigeectl_linux_64.tar.gzMac 32 位元:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/version_number/apigeectl_mac_32.tar.gzLinux 32 位元
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/version_number/apigeectl_linux_32.tar.gz- 找出您最初安裝 Apigee Hybrid 時建立的基本安裝目錄。基本目錄是
$APIGEEGTL_HOME目錄所在的目錄。在下列範例中,基本目錄為/Users/myhome/hybrid:echo $APIGEECTL_HOME /Users/myhome/hybrid/apigeectl
-
將下載的 gzip 檔案內容解壓縮至 Apigee Hybrid 根目錄:
tar xvzf filename.tar.gz -C path-to-base-directory
cd至基本目錄。-
根據預設,tar 內容會展開至目錄中,且目錄名稱會包含版本和平台。例如:
./apigeectl_1.2.0-f7b96a8_linux_64。 - 重新命名目前的
apigeectl目錄。舉例來說,如果目前版本是 1.1.1,請將apigeectl目錄重新命名為apigeectl_1.1.1。 -
將新解壓縮的安裝目錄重新命名為
apigeectl。現在環境$APIGEECTL_HOME會指向這個位置。 - 清除混合式執行階段命名空間的已完成工作,其中 namespace 是您在覆寫檔案中指定的命名空間 (如有指定)。否則預設命名空間為
apigee:kubectl delete job -n namespace \ $(kubectl get job -n namespace -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - 清除
apigee-system命名空間中已完成的工作:kubectl delete job -n apigee-system \ $(kubectl get job -n apigee-system -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - 清除
istio-system命名空間中已完成的工作:kubectl delete job -n istio-system \ $(kubectl get job -n istio-system -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') cd至./hybrid-files目錄:- 為新版本初始化
apigeectl:$APIGEECTL_HOME/apigeectl init -f my-overrides.yaml
- 檢查以判斷初始化何時完成:
$APIGEECTL_HOME/apigeectl check-ready -f my-overrides.yaml
- 如果
check-ready通過,請執行apigeectl apply:$APIGEECTL_HOME/apigeectl apply -f my-overrides.yaml
- 重新執行
check-ready,判斷升級完成時間。
復原升級作業
如要復原先前的升級,請按照下列步驟操作:
- 清除已完成的工作:
kubectl delete job -n namespace $(kubectl get job -n namespace -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - 在要還原的安裝版本根目錄中,執行
apigeectl init,然後執行apigeectl apply:$APIGEECTL_HOME/apigeectl init -f my-overrides.yaml$APIGEECTL_HOME/apigeectl apply -f my-overrides.yaml