滾動式更新

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 秒

在目前版本中,百分比和等待時間無法設定。