滚动更新

Apigee Hybrid 支持 滚动更新。在 Kubernetes 中,滚动更新让部署更新可以通过用新的逐步更新 Pod 实例来实现零停机时间。

支持滚动更新的组件

如果您在替换文件中更改以下任何组件的混合属性设置,则可以使用 revision 属性指示您要对受影响的 pod 执行滚动更新。

  • runtime
  • mart
  • udca
  • metrics
  • synchronizer

当您更改以下任何属性时,也可以使用 revision

  • nodeSelector.*
  • envs.*
  • imagePullSecrets.*
  • gcpProjectID
  • k8sClusterName
  • contractProvider
  • org

如何执行滚动更新

例如,假设您希望将当前的 runtime 内存从 1Gi 更改为 5Gi:

在当前配置中,revision 设置为 blue

...
revision: blue
...
runtime:
  replicaCountMin: 2
  replicaCountMax: 20
  resources:
    cpu: 1000m
    memory: 1Gi
...

在新配置中,revision 更改为 green,表示要在应用更改时执行滚动更新。您给 revision 设置的值无关紧要;您可以使用任意字符串,只要将值从先前的值更改为其他值即可。

...
revision: green
...
runtime:
  replicaCountMin: 2
  replicaCountMax: 20
  resources:
    cpu: 1000m
    memory: 5Gi
...

应用更改时,您可以使用 -c 标志仅更新特定 pod。例如:

apigeectl apply -f my-overrides.yaml -c runtime

或者,如果您不使用 -c,则将更新所有包含配置更改的 pod。