升級至 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
版本的指令進行模擬測試,檢查是否有錯誤:kubectl
1.17 以下版本:apigeectl apply -f overrides.yaml --dry-run=true
kubectl
1.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: