升級 Apigee Hybrid

升級至新版本

請按照下列步驟將 Apigee Hybrid 升級至新版本:

下載並安裝新版 apigeectl

apigeectl 是指令列介面 (CLI),用於在 Kubernetes 叢集中安裝及管理 Apigee Hybrid。

下載要升級的 apigeectl 版本:

  1. 根據所用的作業系統下載發布套件:

    Mac 64 位元:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/version_number/apigeectl_mac_64.tar.gz

    Linux 64 位元

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/version_number/apigeectl_linux_64.tar.gz

    Mac 32 位元:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/version_number/apigeectl_mac_32.tar.gz

    Linux 32 位元

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/version_number/apigeectl_linux_32.tar.gz
  2. 找出您最初安裝 Apigee Hybrid 時建立的基本安裝目錄。基本目錄是 $APIGEEGTL_HOME 目錄所在的目錄。在下列範例中,基本目錄為 /Users/myhome/hybrid

    echo $APIGEECTL_HOME
    /Users/myhome/hybrid/apigeectl
  3. 將下載的 gzip 檔案內容解壓縮至 Apigee Hybrid 根目錄:

    tar xvzf filename.tar.gz -C path-to-base-directory
  4. cd 至基本目錄。
  5. 根據預設,tar 內容會展開至目錄中,且目錄名稱會包含版本和平台。例如:./apigeectl_1.2.0-f7b96a8_linux_64

  6. 重新命名目前的 apigeectl 目錄。舉例來說,如果目前版本是 1.1.1,請將 apigeectl 目錄重新命名為 apigeectl_1.1.1
  7. 將新解壓縮的安裝目錄重新命名為 apigeectl。現在環境 $APIGEECTL_HOME 會指向這個位置。
  8. 清除混合式執行階段命名空間的已完成工作,其中 namespace 是您在覆寫檔案中指定的命名空間 (如有指定)。否則預設命名空間為 apigee
    kubectl delete job -n namespace \
      $(kubectl get job -n namespace -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  9. 清除 apigee-system 命名空間中已完成的工作:
    kubectl delete job -n apigee-system \
      $(kubectl get job -n apigee-system -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  10. 清除 istio-system 命名空間中已完成的工作:
    kubectl delete job -n istio-system \
      $(kubectl get job -n istio-system -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  11. cd./hybrid-files 目錄:
  12. 為新版本初始化 apigeectl
    $APIGEECTL_HOME/apigeectl init -f my-overrides.yaml
  13. 檢查以判斷初始化何時完成:
    $APIGEECTL_HOME/apigeectl check-ready -f my-overrides.yaml
  14. 如果 check-ready 通過,請執行 apigeectl apply
    $APIGEECTL_HOME/apigeectl apply -f my-overrides.yaml
  15. 重新執行 check-ready,判斷升級完成時間。

復原升級作業

如要復原先前的升級,請按照下列步驟操作:

  1. 清除已完成的工作:
    kubectl delete job -n namespace $(kubectl get job -n namespace -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  2. 在要還原的安裝版本根目錄中,執行 apigeectl init,然後執行 apigeectl apply
      $APIGEECTL_HOME/apigeectl init -f my-overrides.yaml
      $APIGEECTL_HOME/apigeectl apply -f my-overrides.yaml