LoginSignup
0
0

canary状態のPodを識別したい - Ephemeral Metadata(エフェメラルメタデータ)

Posted at

背景

ArgoRolloutsを利用し、Canary Releaseの動作検証をおこなっていました。
その中で、PrometheusのQueryを利用し、canary状態のPod(コンテナ)のデータ(例:CPU使用量)を取得するシナリオを考えていました。
取得したデータの値によって、成功 or 失敗を判断し、canaryからstableに昇格もしくは前バージョンにrollbackさせることが目的です。

悩んだこと

ここで悩んだのが、canary状態のPodを認識する方法です。

Pod名やコンテナ名でクエリーすると、canaryとstableの両方のデータが取れてしまいます。canaryのPodだけを識別するにはどうすれば良いのだろう?と悩んでしました。

解決方法

そんな中、 Ephemeral Metadata(エフェメラルメタデータ) という機能を見つけました。
Rolloutリソースのマニフェストに、stableMetadatacanaryMetadataを指定でき、ラベルやアノテーションを設定できます。

canaryMetadataに指定したメタデータは、canary状態の間だけ適用され、stable状態になったら自動で削除されます。
そして、stableMetadataに指定したメタデータが設定されます。

これを使うことで、事前に定義したラベルを使って、canary状態のPodのデータのみを取得することが可能になりました。

参考

Ephemeral Metadata
https://argo-rollouts.readthedocs.io/en/release-1.5/features/ephemeral-metadata/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0