Actualizaciones progresivas

Apigee hybrid admite actualizaciones progresivas. En Kubernetes, las actualizaciones progresivas permiten que las actualizaciones de implementación se realicen sin tiempo de inactividad mediante la actualización incremental de las instancias de pods con instancias nuevas.

Componentes que admiten actualizaciones progresivas

Si cambias la configuración de la propiedad para cualquier hybrid de los siguientes componentes de tu archivo de anulaciones, puedes usar la propiedad revision a fin de indicar que deseas realizar una actualización progresiva a los pods afectados.

  • runtime
  • mart
  • udca
  • metrics
  • synchronizer

También puedes usar revision cuando cambies cualquiera de las siguientes propiedades:

  • nodeSelector.*
  • envs.*
  • imagePullSecrets.*
  • gcpProjectID (obsoleta)
  • k8sClusterName (obsoleta)
  • gcp.*
  • k8sCluster.*
  • contractProvider
  • org

Cómo realizar una actualización progresiva

Por ejemplo, supongamos que deseas cambiar la memoria actual runtime de 1Gi a 5G:

En la configuración actual, revision está establecido en blue:

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

En la configuración nueva, revision se cambia a green, lo que indica que deseas realizar una actualización progresiva cuando se aplica el cambio. El valor establecido para revision no importa. Puedes usar cualquier string que desees, siempre y cuando la cambies del valor anterior a otro.

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

Cuando aplicas el cambio, puedes usar la marca -c para actualizar solo un pod específico. Por ejemplo:

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

O bien, si no usas -c, todos los pods que tienen cambios de configuración se actualizarán.