Apigee hybrid 支援兩種更新方式。第一種是原地更新,您會套用設定變更,混合式系統就會開始進行 Kubernetes 滾動式更新。在 Kubernetes 中,滾動式更新可透過新 Pod 逐步更新 Pod 例項,讓部署作業更新過程中無需停機。
Apigee hybrid 也支援 Canary 或 AB 式更新。在 AB 更新中,系統會部署新修訂版本,但一開始只會將一小部分流量導向該版本。隨著時間推移,這個百分比會增加,直到所有流量都轉移至修訂版本為止。
原地更新
如要觸發原地更新,只要在覆寫檔案中修改所需設定,然後套用至叢集即可。舉例來說,假設您想將目前的 runtime
記憶體從 1Gi 變更為 5Gi:
以下是初始設定:
... runtime: replicaCountMin: 2 replicaCountMax: 20 resources: requests: cpu: 1000m memory: 1Gi ...
在新設定中,記憶體已變更為 5Gi:
... runtime: replicaCountMin: 2 replicaCountMax: 20 resources: requests: cpu: 1000m memory: 5Gi ...
套用變更後,更新後的 Pod 就會啟動並取代現有的 Pod。由於 Kubernetes 的滾動式更新功能,客戶不會遇到任何停機時間。
如何執行 AB 測試更新
如要執行 AB 測試更新,請在覆寫檔案中使用 revision
標記。舉例來說,假設您想將目前的 runtime
記憶體從 1Gi 變更為 5Gi:
在目前的設定中,revision
已設為 blue
:
... revision: blue ... runtime: replicaCountMin: 2 replicaCountMax: 20 resources: requests: cpu: 1000m memory: 1Gi ...
在新設定中,如果您將 revision
變更為 green
,表示您希望在套用變更時執行滾動式更新。您為 revision
設定的值不重要,您可以使用任何字串,只要將其從先前的值變更為其他值即可。
... revision: green ... runtime: replicaCountMin: 2 replicaCountMax: 20 resources: requests: cpu: 1000m memory: 5Gi ...
套用變更後,系統會將一小部分流量傳送至新修訂版本。隨著時間推移,流量會逐漸轉移至新修訂版本,直到達到 100% 為止。屆時舊修訂版本就會遭到刪除。
如要觸發 AB 測試,請在缺少 revision
標記時新增該標記,或是在已存在 revision
標記時變更其值。您不需要對覆寫檔案進行任何其他變更,即可觸發 AB 測試。
下表為 AB 測試的時間表:
階段 | 流量百分比 | 等待時間 |
---|---|---|
1 | 5% | 60 秒 |
2 | 20% | 10 秒 |
3 | 100% | 10 秒 |
在目前版本中,您無法設定百分比和等待時間。