canary-header プラグインは、設定した割合のリクエストに指定のヘッダーを追加してルートを再照合することで、クライアント側でカナリアヘッダーを付与することなく、パーセンテージベースのカナリアリリースを実現します。
設定項目
|
設定項目 |
データ型 |
必須 |
デフォルト値 |
説明 |
|
|
配列 (object) |
はい |
- |
追加するヘッダーとその重みを指定します。 |
次の表では、weighted_headers 配列内の項目について説明します。
|
設定項目 |
データ型 |
必須 |
デフォルト値 |
説明 |
|
|
文字列 |
はい |
- |
追加するヘッダーのキーを指定します。 |
|
|
文字列 |
はい |
- |
追加するヘッダーの値を指定します。 |
|
|
数値 |
はい |
- |
このヘッダーの重みを指定します。単位は % です。すべてのヘッダーの重みの合計は 100 を超えることはできません。 |
すべてのヘッダーの重みの合計が 100 未満の場合、残りの割合のリクエストはヘッダーを追加せずに転送されます。
設定例
グローバル設定
次の例では、リクエストの 30% に x-higress-canary:gray ヘッダーを追加し、残りの 70% に x-higress-canary:base ヘッダーを追加します。
weighted_headers:
- added_key: x-higress-canary
added_value: gray
weight: 30
- added_key: x-higress-canary
added_value: base
weight: 70
次の例では、リクエストの 30% に x-higress-canary:gray ヘッダーを追加します。残りの 70% はヘッダーを追加せずに転送されます。
weighted_headers:
- added_key: x-higress-canary
added_value: gray
weight: 30
特定のルートまたはドメイン名に対するプラグインの有効化
route-a ルートに一致した場合、リクエストの 30% に x-higress-canary:gray ヘッダーが追加され、残りの 70% に x-higress-canary:base ヘッダーが追加されます。その後、ルートを再照合します。例えば、route-a-gray という名前のルートが x-higress-canary:gray ヘッダーを使用して照合を行う場合、route-a のリクエストの 30% が route-a-gray に一致し、パーセンテージベースのカナリアリリースが実現されます。
# _rules_ 項目を使用して、きめ細かいルールを設定します。
_rules_:
# ルール 1:ルート名に一致します。
- _match_route_:
- route-a
weighted_headers:
- added_key: x-higress-canary
added_value: gray
weight: 30
- added_key: x-higress-canary
added_value: base
weight: 70
# ルール 2:ドメイン名に一致します。
- _match_domain_:
- "*.example.com"
weighted_headers:
- added_key: x-custom-header
added_value: gray
weight: 30
- added_key: x-custom-header
added_value: blue
weight: 30
- added_key: x-custom-header
added_value: base
weight: 40