Apigee Hybrid 支援兩種更新。第一種是就地更新,您套用設定變更後,混合式服務就會開始 Kubernetes 滾動式更新。在 Kubernetes 中,滾動式更新會逐步更新 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 秒 |
在目前版本中,百分比和等待時間無法設定。