ローリング アップデート

Apigee ハイブリッドはローリング アップデートをサポートしています。Kubernetes では、ローリング アップデートにより、Pod インスタンスを段階的に新しいインスタンスに更新し、Deployment の更新をダウンタイムなしで行うことができます。

ローリング アップデートをサポートするコンポーネント

オーバーライド ファイルにある次のコンポーネントのハイブリッド プロパティを変更する場合、revision プロパティを使用すると、影響を受ける Pod にローリング アップデートの実行を通知できます。

  • runtime
  • mart
  • udca
  • metrics
  • synchronizer

また、次のプロパティを変更する場合は、revision を使用できます。

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

ローリング アップデートの実施方法

たとえば、現在の runtime メモリを 1 Gi から 5 Gi に変更する場合について考えてみましょう。

現在の構成では、revisionblue に設定されています。

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

新しい構成では、revisiongreen に変更されました。これは、変更されています。これは、変更が適用されたときにローリング アップデートを行うことの合図となります。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 が更新されます。