如果您要從 Apigee Hybrid 1.2 版或更舊版本升級,請先升級至 Hybrid 1.3 版,再升級至 1.4.4 版。請參閱將 Apigee Hybrid 升級至 1.3 版的操作說明。
升級至 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 On-Prem (Anthos): 升級內部部署環境的 Anthos 服務網格
- 所有其他平台: 升級 GKE 中的 Anthos Service Mesh
- 在
istio-operator.yaml檔案中指定下列 Ingress 連接埠,並將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.gzLinux 64 位元:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_64.tar.gzMac 32 位元:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_32.tar.gzLinux 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 Hybrid 命名空間。
只有在 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: