canary-header プラグインは、指定された割合に基づいて、リクエストに特定のヘッダーを追加します。ヘッダーがリクエストに追加された後、ルートは再照合されます。このプラグインでクラウドネイティブ ゲートウェイを使用すると、クライアント リクエストがカナリアヘッダーを伝送する必要なく、パーセンテージベースのカナリア リリースのルーティングを実装できます。
フィールド
名前 | データ型 | 必須 | デフォルト値 | 説明 |
| オブジェクトの配列 | はい | - | リクエストに追加されるヘッダーと、ヘッダーの重み。 |
次の表は、weighted_headers フィールドの構成項目について説明しています。
名前 | データ型 | 必須 | デフォルト値 | 説明 |
| 文字列 | はい | - | リクエストに追加するヘッダーのキー。 |
| 文字列 | はい | - | リクエストに追加するヘッダーの値。 |
| 数値 | はい | - | リクエストに追加するヘッダーの重み。単位:%。すべてのヘッダーの重みの合計は 100 を超えることはできません。 |
すべてのヘッダーの重みの合計が 100 未満の場合、100 に満たない部分は、ヘッダーが追加されないリクエストの割合を示します。
構成例
グローバル構成
次のサンプル コードは、x-higress-canary:gray ヘッダーがリクエストの 30% に追加され、x-higress-canary:base ヘッダーがリクエストの 70% に追加されることを示しています。
weighted_headers:
- added_key: x-higress-canary
added_value: gray
weight: 30
- added_key: x-higress-canary
added_value: base
weight: 70次のサンプル コードは、x-higress-canary:gray ヘッダーがリクエストの 30% に追加され、ヘッダーが 70% のリクエストに追加されないことを示しています。
weighted_headers:
- added_key: x-higress-canary
added_value: gray
weight: 30特定のルートまたはドメイン名に対してプラグインを有効にする
route-a ルートが一致する場合、x-higress-canary:gray ヘッダーがリクエストの 30% に追加され、x-higress-canary:base ヘッダーがリクエストの 70% に追加されます。ヘッダーが追加された後、リクエストはルートを再照合します。たとえば、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