滾動式更新

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 秒

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