升級至 1.4.4 版總覽。
升級 Apigee Hybrid 的程序分為以下幾個部分:
- 備份混合式安裝作業。
- 檢查 Kubernetes 版本,並視需要升級。
- 升級 ASM。
- 安裝 Hybrid 執行階段 1.4 版。
必修課
- Apigee Hybrid 1.3 版。如果您要從舊版更新,請參閱「將 Apigee Hybrid 升級至 1.3 版」一文的操作說明。
升級至 1.4 版
- (建議) 備份 1.3 版 $APIGEECTL_HOME/目錄。例如:tar -czvf $APIGEECTL_HOME/../apigeectl-v1.3-backup.tar.gz $APIGEECTL_HOME
- (建議) 按照「Cassandra 備份與復原」一文中的指示備份 Cassandra 資料庫
- 請按照下列步驟升級 Kubernetes 平台。如需協助,請按照平台的說明文件操作:
  平台 升級至版本 GKE 1.18.x GKE On-Prem (Anthos) 1.5.x AKS 1.18.x 使用 Anthos 附加叢集 EKS 1.18.x 使用 Anthos 附加叢集 
- 將 ASM 升級至 1.6.x 版。
    
     - 按照 ASM 說明文件進行升級:
         - GKE 內部部署環境 (Anthos):升級內部部署環境中的 Anthos 服務網格
- 所有其他平台:在 GKE 中升級 Anthos 服務網格
 
- 請在 istio-operator.yaml檔案中指定下列入口埠,並將runAsRoot屬性設為true」… … … ports: - port: 15021 name: status-port targetPort: 15021 - port: 80 name: http2 targetPort: 80 - port: 443 name: https targetPort: 443 … … … values: gateways: istio-ingressgateway: runAsRoot: true
- 建立 PeerAuthentication CR,以便在 istio-operator.yaml檔案中停用 mTLS:--- apiVersion: security.istio.io/v1beta1 kind: PeerAuthentication metadata: name: apigee-system namespace: apigee-system spec: mtls: mode: DISABLE --- apiVersion: security.istio.io/v1beta1 kind: PeerAuthentication metadata: name: user-namespace namespace: user-namespace spec: mtls: mode: DISABLE
- 請按照 ASM 說明文件的說明,使用 istioctl套用這些變更:
 
- 按照 ASM 說明文件進行升級:
         
安裝 Hybrid 1.4.4 執行階段
- 將最新版本號碼儲存在變數中:export VERSION=$(curl -s \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)
- 檢查變數是否已填入版本號碼。如果您想使用其他版本,可以改為將該版本儲存在環境變數中。例如:
    echo $VERSION 1.4.4 
- 下載適用於您作業系統的版本套件: - Mac 64 位元: - curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_64.tar.gz- Linux 64 位元: - curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_64.tar.gz- Mac 32 位元: - curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_32.tar.gz- Linux 32 位元: - curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_32.tar.gz
- 將目前的 apigeectl/目錄重新命名為備份目錄名稱。例如:mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.2/
- 
    將下載的 gzip 檔案內容解壓縮至混合式基礎目錄。例如: tar xvzf filename.tar.gz -C hybrid-base-directory 
- cd至基礎目錄。
- 
    根據預設,tar 內容會解壓縮為名稱中含有版本和平台的目錄。例如: ./apigeectl_1.4.4-xxx_linux_64。將該目錄重新命名為apigeectl:mv apigeectl_1.4.5-xxx_linux_64 apigeectl 
- 在新 apigeectl/目錄中,執行apigeectl init、apigeectl apply和apigeectl check-ready:- 初始化 Hybrid 1.4.4:apigeectl init -f overrides.yaml 其中 overrides.yaml 是您編輯過的 overrides.yaml 檔案。 
- 使用下列指令檢查是否已正確初始化:apigeectl check-ready -f overrides.yaml kubectl describe apigeeds -n apigee 輸出內容應如下所示: Status: Cassandra Data Replication: Cassandra Pod Ips: 10.8.2.204 Cassandra Ready Replicas: 1 Components: Cassandra: Last Successfully Released Version: Revision: v1-f8aa9a82b9f69613 Version: v1 Replicas: Available: 1 Ready: 1 Total: 1 Updated: 1 State: running Scaling: In Progress: false Operation: Requested Replicas: 0 State: running
- apigeectl- --dry-run標記的語法會因您執行的- kubectl版本而異。查看- kubectl的版本:- gcloud version 
- 使用適合您 kubectl版本的指令進行模擬測試,檢查是否有錯誤:kubectl1.17 以下版本:apigeectl apply -f overrides.yaml --dry-run=true kubectl1.18 以上版本:apigeectl apply -f overrides.yaml --dry-run=client 
- 套用覆寫值。請根據安裝方式,選取並遵循實際工作環境或示範/實驗環境的操作說明。
      生產在實際環境中,您應個別升級每個混合型元件,並在繼續升級其他元件前,先檢查已升級元件的狀態。 - 套用覆寫值來升級 Cassandra:apigeectl apply -f overrides.yaml --datastore 
- 檢查完成情況:
              kubectl -n namespace get pods apigeectl check-ready -f overrides.yaml 其中 namespace 是 Apigee 混合式命名空間。 只有在 Pod 就緒時,才繼續執行下一個步驟。 
- 套用覆寫值來升級遙測元件,並檢查完成情況:apigeectl apply -f overrides.yaml --telemetry kubectl -n namespace get pods apigeectl check-ready -f overrides.yaml 
- 套用覆寫值來升級機構層級元件 (MART、Watcher 和 Apigee Connect),並檢查完成情況:apigeectl apply -f overrides.yaml --org kubectl -n namespace get pods apigeectl check-ready -f overrides.yaml 
- 套用覆寫值來升級環境。您有兩種選擇:
              - 逐一環境:一次將覆寫值套用至一個環境,並檢查是否完成。針對每個環境重複執行這個步驟:apigeectl apply -f overrides.yaml --env env_name kubectl -n namespace get pods apigeectl check-ready -f overrides.yaml 其中 env_name 是您要升級的環境名稱。 
- 一次套用至所有環境:一次將覆寫值套用至所有環境,並檢查完成情況:
                  apigeectl apply -f overrides.yaml --all-envs kubectl -n namespace get pods apigeectl check-ready -f overrides.yaml 
 
- 逐一環境:一次將覆寫值套用至一個環境,並檢查是否完成。針對每個環境重複執行這個步驟:
 示範/實驗在大多數的示範或實驗環境中,您可以一次將覆寫值套用至所有元件。如果您的示範/實驗環境龐大且複雜,或與實際執行環境相似,建議您參考升級實際執行環境的操作說明 - apigeectl apply -f overrides.yaml 
- 查看狀態:
              apigeectl check-ready -f overrides.yaml 
 
- 套用覆寫值來升級 Cassandra:
 恭喜!您已成功升級至 Apigee Hybrid 1.4.4 版。 
- 初始化 Hybrid 1.4.4: