すべてのプロダクト
Search
ドキュメントセンター

Microservices Engine:MSE Ingress ゲートウェイでサポートされているアノテーション

最終更新日:Mar 01, 2025

マイクロサービスエンジン (MSE) Ingress ゲートウェイは、NGINX Ingress ゲートウェイのコアおよび共通アノテーションをサポートしています。これにより、NGINX Ingress ゲートウェイから MSE Ingress ゲートウェイへのシームレスな移行が容易になります。また、MSE Ingress ゲートウェイは、トラフィックガバナンスのための追加アノテーションも提供しています。このトピックでは、MSE Ingress ゲートウェイでサポートされているアノテーションについて説明します。

背景情報

Ingress リソースは、Kubernetes クラスタ内のサービスを外部アクセスに公開する方法を管理するために使用されます。クラウドネイティブの分散アプリケーションの数が増加するにつれて、Kubernetes 標準で定義されている Ingress リソースは、ユーザーのトラフィック管理要件を満たすことができなくなっています。さまざまなシナリオでの Ingress 機能の要件を満たすために、Ingress コントローラーの開発チームはカスタムアノテーションの定義を開始しました。主流の NGINX Ingress コントローラーには 100 を超えるアノテーションが定義されています。

MSE Ingress ゲートウェイは、NGINX Ingress ゲートウェイの共通およびコアアノテーションをサポートしており、ビジネスを Kubernetes エコシステムに統合することができます。これにより、NGINX Ingress ゲートウェイから MSE Ingress ゲートウェイへのシームレスな移行が容易になります。また、MSE Ingress ゲートウェイは、応答性を向上させるために、トラフィックガバナンスのための追加アノテーションも提供しています。

概要

Kubernetes 標準で定義されている Ingress リソースは、Transport Layer Security (TLS) 暗号化通信とレイヤー 7 HTTP トラフィックの単純なルーティングのみを提供します。ほとんどの場合、Ingress コントローラーはアノテーションを使用して、トラフィックガバナンスとセキュリティ保護の観点から Ingress 機能を強化します。

サポートされている Ingress アノテーション

NGINX Ingress アノテーション

NGINX Ingress ゲートウェイから MSE Ingress ゲートウェイへのシームレスな移行を容易にするために、MSE Ingress ゲートウェイはほとんどの NGINX Ingress アノテーションをサポートしています。次の表に、NGINX Ingress アノテーションのサポート状況を示します。

NGINX Ingress アノテーション

アノテーションの総数

説明

サポートされているアノテーション

51

90% のシナリオに適しています。

機能に影響しないアノテーション

15

構成は不要です。

今後サポートされる予定のアノテーション

48

少数のシナリオでサポートされる予定です。

サポートされていないアノテーション

5

NGINX Ingress ゲートウェイのコードスニペットに含まれています。

説明

MSE が機能を実装するためのコードは、NGINX のコードとは異なります。

  1. NGINX Ingress アノテーションと MSE のコードスニペットで構成された NGINX 変数 は、NGINX の変数と互換性がありません。

  2. NGINX Ingress Controller では、nginx.ingress.kubernetes.io/proxy-body-size アノテーションを使用して、クライアントリクエストボディの最大許容サイズを構成します。リクエストボディが指定された制限を超えると、NGINX はエラーを報告します。一方、MSE クラウドネイティブゲートウェイは、データ転送にチャンク転送エンコーディングを採用しています。このアプローチでは、リクエストボディのサイズを事前に構成する必要なく、大きなリクエストボディを自動的にチャンクに分割します。大きなファイルを転送するには、MSE ゲートウェイの [パラメータ設定] ペインで、DownstreamConnectionBufferLimits パラメータの設定を変更します。パラメーター設定

MSE Ingress アノテーション

MSE Ingress ゲートウェイは、トラフィックガバナンスのための追加アノテーションを提供しています。次の表に、MSE が提供する追加アノテーションのサポート状況を示します。

MSE Ingress アノテーション

アノテーションの総数

説明

拡張アノテーション

40

NGINX Ingress アノテーションに加えて、MSE Ingress ゲートウェイは、トラフィックガバナンスとセキュリティ保護を強化するための追加アノテーションを提供しています。

スコープの説明

  • Ingress: このスコープのアノテーションは、使用する Ingress リソースで定義されているルーティングルールに適用されます。

  • ドメイン名: このスコープのアノテーションは、使用する Ingress リソースで定義されているホストに適用されます。このスコープは、他の Ingress リソースの同じホストにも有効です。

  • サービス: このスコープのアノテーションは、使用する Ingress リソースで定義されているサービスに適用されます。アノテーションは、他の Ingress リソースの同じサービスにも有効です。

アノテーションのプレフィックス

MSE Ingress ゲートウェイは、NGINX Ingress ゲートウェイでサポートされている関連アノテーションと同じ機能を持つアノテーションを提供しています。たとえば、NGINX Ingress ゲートウェイが提供するアノテーション nginx.ingress.kubernetes.io/xxx の機能は、MSE Ingress ゲートウェイが提供するアノテーション mse.ingress.kubernetes.io/xxx の機能と同じです。使用習慣に基づいて、nginx または mse ビジネスドメインプレフィックスを使用できます。ただし、MSE Ingress ゲートウェイのみが提供するアノテーションの mse プレフィックスを nginx プレフィックスに置き換えることはできません。

サポートされているアノテーション

このセクションでは、トラフィックガバナンスとセキュリティ保護の観点から、サポートされているアノテーションについて説明します。

トラフィックガバナンス

カナリアリリース

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/canary

Ingress

互換

カナリアリリース機能を有効にするかどうかを指定します。

nginx.ingress.kubernetes.io/canary-by-header

Ingress

互換

トラフィック分割に使用する リクエストヘッダーキー を指定します。

nginx.ingress.kubernetes.io/canary-by-header-value

Ingress

互換

トラフィック分割に使用する リクエストヘッダー値 を指定します。リクエストヘッダー値の完全一致がサポートされています。

nginx.ingress.kubernetes.io/canary-by-header-pattern

Ingress

互換

トラフィック分割に使用する リクエストヘッダー値 を指定します。リクエストヘッダー値の正規表現一致がサポートされています。

mse.ingress.kubernetes.io/canary-by-query

Ingress

MSE 専用

トラフィック分割に使用する URL クエリパラメータ を指定します。

mse.ingress.kubernetes.io/canary-by-query-value

Ingress

MSE 専用

トラフィック分割に使用する URL クエリパラメータ を指定します。URL クエリパラメータ値の完全一致がサポートされています。

mse.ingress.kubernetes.io/canary-by-query-pattern

Ingress

MSE 専用

トラフィック分割に使用する URL クエリパラメータ を指定します。URL クエリパラメータ値の正規表現一致がサポートされています。

nginx.ingress.kubernetes.io/canary-by-cookie

Ingress

互換

トラフィック分割に使用する リクエストクッキーキー を指定します。

mse.ingress.kubernetes.io/canary-by-cookie-value

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.30

トラフィック分割に使用する リクエストクッキー値 を指定します。リクエストクッキー値の完全一致がサポートされています。

nginx.ingress.kubernetes.io/canary-weight

Ingress

互換

トラフィック分割に使用するサービスの重みを指定します。

nginx.ingress.kubernetes.io/canary-weight-total

Ingress

互換

合計重みを指定します。

マルチサービス

アノテーション

スコープ

サポート状況

説明

mse.ingress.kubernetes.io/destination

Ingress

MSE 専用

ルートの重みベースのサービス配信を指定します。

構成構文は {weight}% {serviceName}.{serviceNamespace}.svc.cluster.local:{port} です。

説明
  • このアノテーションを構成すると、Ingress ゲートウェイ上のすべてのルーティングルールの宛先サービスがこのアノテーションで指定されたサービスに変更されます。

  • このアノテーションの構成構文が要件を満たしていない場合、このアノテーションは無視されます。この場合、Ingress ゲートウェイ上のすべてのルーティングルールの宛先サービスは変更されません。

構文例:

annotations:
  # トラフィックの 60% は foo サービスにルーティングされ、40% は bar サービスにルーティングされます。
  mse.ingress.kubernetes.io/destination: |
    60% foo.default.svc.cluster.local:8080
    40% bar.default.svc.cluster.local:9090

サービスサブセット

アノテーション

スコープ

サポート状況

説明

mse.ingress.kubernetes.io/service-subset

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.25

サービスサブセットは、1 つのサービスが複数のデプロイメントを管理するシナリオに適しています。サービスサブセットは、Ingress の構成に基づいてリクエストが転送されるサービスポッドのサブセットです。

  • mse.ingress.kubernetes.io/subset-labels アノテーションが構成されていない場合、リクエストはこのアノテーションの値に基づいて転送されます。

    • このアノテーションが "" または base に設定されている場合、リクエストはラベルに opensergo.io/canary: "" が含まれているポッド、またはラベルキーのプレフィックスが opensergo.io/canary でないポッドに転送されます。このようにして、リクエストは空のラベルを持つポッド、またはラベルを持たないポッドに転送されます。

    • このアノテーションが "" または base 以外の値に設定されている場合、リクエストはラベルに opensergo.io/canary-{指定値}: {指定値} が含まれているポッドに転送されます。たとえば、このアノテーションを gray に設定すると、リクエストはラベルに opensergo.io/canary-gray: gray が含まれているポッドに転送されます。

  • mse.ingress.kubernetes.io/subset-labels アノテーションが構成されている場合、リクエストはラベルに mse.ingress.kubernetes.io/subset-labels で定義されている Key:Value が含まれているポッドのみに転送されます。

説明

サービスに指定されたラベルを持つポッドが含まれていない場合、リクエストはサービスのすべてのポッドに自動的に転送されます。

mse.ingress.kubernetes.io/subset-labels

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.25

オプション。このアノテーションを mse.ingress.kubernetes.io/service-subset アノテーションとともに使用して、ポッドをサブセットに分類するために使用されるラベルを指定できます。

フォールバック

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/default-backend

Ingress

互換

フォールバックサービスを指定します。Ingress ルールで定義されているサービスに使用可能なノードがない場合、リクエストはフォールバックサービスに自動的に転送されます。

nginx.ingress.kubernetes.io/custom-http-errors

Ingress

互換

このアノテーションは、nginx.ingress.kubernetes.io/default-backend アノテーションと連携して機能します。バックエンドサービスによって指定された HTTP ステータスコードが返された場合、元のリクエストはフォールバックサービスに再度転送されます。

重要

リクエストがフォールバックサービスに転送されると、リクエストのパスはスラッシュ (/) に書き換えられます。この動作は、NGINX Ingress ゲートウェイ で実装されている動作と一致します。

正規表現一致

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/use-regex

Ingress

互換

Ingress で定義されたパスを照合するために正規表現を使用するかどうかを指定します。正規表現は RE2 構文 を使用します。

書き換え

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/rewrite-target

Ingress

互換

書き換え操作の宛先パスを指定します。キャプチャグループ がサポートされています。

nginx.ingress.kubernetes.io/upstream-vhost

Ingress

互換

書き換え操作の宛先ホストを指定します。Ingress リソースのカスタムリソース定義 (CRD) に一致するルートリクエストがバックエンドサービスに転送されると、システムはリクエストヘッダーのホスト値を指定された値に変更します。

リダイレクト

説明

NGINX は NGINX Ingress よりも幅広い機能を提供しています。リダイレクトに NGINX 変数 を使用することは、一部の NGINX Ingress バージョンでサポートされている場合があります。ただし、この機能は アノテーション のドキュメントには記載されていません。リダイレクトに NGINX 変数を使用すると、互換性の問題が発生する可能性があります。NGINX Ingress でリダイレクトに NGINX 変数を使用しないことをお勧めします。

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/ssl-redirect

Ingress

互換

HTTP から HTTPS にリダイレクトするかどうかを指定します。

nginx.ingress.kubernetes.io/force-ssl-redirect

Ingress

互換

HTTP から HTTPS に強制的にリダイレクトするかどうかを指定します。

nginx.ingress.kubernetes.io/permanent-redirect

Ingress

互換

恒久的なリダイレクトを指定します。

nginx.ingress.kubernetes.io/permanent-redirect-code

Ingress

互換

恒久的なリダイレクトに使用するステータスコードを指定します。

nginx.ingress.kubernetes.io/temporal-redirect

Ingress

互換

一時的なリダイレクトを指定します。

nginx.ingress.kubernetes.io/app-root

Ingress

互換

リダイレクトの宛先アプリケーションルートパスを指定します。このアノテーションは、/ から指定されたパスへのリクエストをリダイレクトするために使用されます。

CORS

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/enable-cors

Ingress

互換

オリジン間リソース共有 (CORS) を有効にするかどうかを指定します。

nginx.ingress.kubernetes.io/cors-allow-origin

Ingress

互換

CORS で許可されるサードパーティサイトを指定します。

nginx.ingress.kubernetes.io/cors-allow-methods

Ingress

互換

CORS で許可されるリクエストメソッドを指定します。許可されるリクエストメソッドには、GET、POST、PUT が含まれます。

nginx.ingress.kubernetes.io/cors-allow-headers

Ingress

互換

CORS で許可されるリクエストヘッダーを指定します。

nginx.ingress.kubernetes.io/cors-expose-headers

Ingress

互換

ブラウザに公開される許可されたレスポンスヘッダーを指定します。

nginx.ingress.kubernetes.io/cors-allow-credentials

Ingress

互換

CORS リクエストに資格情報を含めることができるかどうかを指定します。

nginx.ingress.kubernetes.io/cors-max-age

Ingress

互換

事前チェック結果がキャッシュされる最大期間を指定します。

ヘッダー制御

説明

ベースルートに定義されたヘッダー制御関連アノテーションとカナリアルートに定義されたヘッダー制御関連アノテーションは互いに独立しており、個別に検証されます。ヘッダー制御機能を使用して、ベースルートのリクエストとカナリアルートのリクエストに対して異なるヘッダー制御ポリシーを構成できます。

アノテーション

スコープ

サポート状況

説明

mse.ingress.kubernetes.io/request-header-control-add

Ingress

MSE 専用

リクエストがバックエンドサービスに転送されるときにリクエストに追加されるヘッダーを指定します。ヘッダーが存在する場合、その値は元の値の後に連結されます。次の構文が使用されます。

  • 単一ヘッダー: キーと値のペアが使用されます。

  • 複数ヘッダー: YAML ファイルの縦棒 (|) が使用されます。各キーと値のペアは別々の行を占めます。

mse.ingress.kubernetes.io/request-header-control-update

Ingress

MSE 専用

リクエストがバックエンドサービスに転送されるときにリクエストで変更されるヘッダーを指定します。ヘッダーが存在する場合、その値は元の値を上書きします。次の構文が使用されます。

  • 単一ヘッダー: キーと値のペアが使用されます。

  • 複数ヘッダー: YAML ファイルの縦棒 (|) が使用されます。各キーと値のペアは別々の行を占めます。

mse.ingress.kubernetes.io/request-header-control-remove

Ingress

MSE 専用

リクエストがバックエンドサービスに転送されるときにリクエストから削除されるヘッダーを指定します。次の構文が使用されます。

  • 単一ヘッダー: キーが使用されます。

  • 複数ヘッダー: 複数ヘッダーはコンマ (,) で区切られます。

mse.ingress.kubernetes.io/response-header-control-add

Ingress

MSE 専用

レスポンスがクライアントに転送される前に、バックエンドサービスから受信したレスポンスに追加されるヘッダーを指定します。ヘッダーが存在する場合、その値は元の値の後に連結されます。次の構文が使用されます。

  • 単一ヘッダー: キーと値のペア が使用されます。

  • 複数ヘッダー: YAML ファイルの縦棒 (|) が使用されます。各キーと値のペアは別々の行を占めます。

mse.ingress.kubernetes.io/response-header-control-update

Ingress

MSE 専用

レスポンスがクライアントに転送される前に、バックエンドサービスから受信したレスポンスで変更されるヘッダーを指定します。ヘッダーが存在する場合、その値は元の値を上書きします。次の構文が使用されます。

  • 単一ヘッダー: キーと値のペア が使用されます。

  • 複数ヘッダー: YAML ファイルの縦棒 (|) が使用されます。各キーと値のペアは別々の行を占めます。

mse.ingress.kubernetes.io/response-header-control-remove

Ingress

MSE 専用

レスポンスがクライアントに転送される前に、バックエンドサービスから受信したレスポンスから削除されるヘッダーを指定します。次の構文が使用されます。

  • 単一ヘッダー: キーが使用されます。

  • 複数ヘッダー: 複数ヘッダーはコンマ (,) で区切られます。

タイムアウト

アノテーション

スコープ

サポート状況

説明

mse.ingress.kubernetes.io/timeout

Ingress

MSE 専用

リクエストのタイムアウト期間を指定します。単位: 秒。デフォルトでは、タイムアウト期間は構成されていません。

説明

タイムアウト設定は、トランスポート層の TCP ではなく、アプリケーション層に有効です。

リトライ

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/proxy-next-upstream-tries

Ingress

互換

リクエストリトライの最大回数を指定します。デフォルト値: 3。

nginx.ingress.kubernetes.io/proxy-next-upstream-timeout

Ingress

互換

リクエストリトライのタイムアウト期間を指定します。単位: 秒。デフォルトでは、タイムアウト期間は構成されていません。

nginx.ingress.kubernetes.io/proxy-next-upstream

Ingress

互換

リトライ条件を指定します。詳細については、「NGINX リトライメカニズム」をご参照ください。

トラフィックミラーリング

アノテーション

スコープ

サポート状況

説明

mse.ingress.kubernetes.io/mirror-target-service

Ingress

MSE 専用

ミラーリングされたトラフィックの転送先サービスを指定します。フォーマットは namespace/name:port です。

  • namespace: Kubernetes サービスが存在する名前空間。このパラメータはオプションです。デフォルトの名前空間は、Ingress ゲートウェイが存在する名前空間です。

  • name: Kubernetes サービスの名前。このパラメータは必須です。

  • port: ミラーリングされたトラフィックの転送先 Kubernetes サービスポート。このパラメータはオプションです。デフォルトでは、最初のポートが使用されます。

mse.ingress.kubernetes.io/mirror-percentage

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.32

ミラーリングされたトラフィックの割合を指定します。有効値: 0 ~ 100。デフォルト値: 100。

ドメインエイリアス

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/server-alias

ドメイン

  • 部分的に互換性あり (完全一致ドメインとワイルドカードドメインのみサポート)

  • 必要なゲートウェイバージョン: V1.2.30

Ingress spec で定義されているドメインエイリアスを指定します。ドメインエイリアスは、ソースドメインの Transport Layer Security (TLS)、ルーティング、およびトラフィックガバナンスに関連する構成を共有します。

シングルゲートウェイスロットリング (非推奨予定)

アノテーション

スコープ

サポート状況

説明

mse.ingress.kubernetes.io/route-limit-rpm

Ingress

MSE 専用

ゲートウェイでルーティングされる 1 分あたりのリクエストの最大数 (RPM) を指定します。バースト制限は、指定された値に mse.ingress.kubernetes.io/route-limit-burst-multiplier を掛けた値です。

スロットリングがトリガーされると、レスポンスボディのコンテンツは local_rate_limited になります。レスポンスステータスコード:

  • ゲートウェイバージョンが V1.2.23 より前の場合、ステータスコード 503 が返されます。

  • ゲートウェイバージョンが V1.2.23 以降の場合、ステータスコード 429 が返されます。

mse.ingress.kubernetes.io/route-limit-rps

Ingress

MSE 専用

ゲートウェイでルーティングされる 1 秒あたりのリクエストの最大数 (RPS) を指定します。バースト制限は、指定された値に mse.ingress.kubernetes.io/route-limit-burst-multiplier を掛けた値です。

スロットリングがトリガーされると、レスポンスボディのコンテンツは local_rate_limited になります。レスポンスステータスコード:

  • ゲートウェイバージョンが V1.2.23 より前の場合、ステータスコード 503 が返されます。

  • ゲートウェイバージョンが V1.2.23 以降の場合、ステータスコード 429 が返されます。

mse.ingress.kubernetes.io/route-limit-burst-multiplier

Ingress

MSE 専用

バースト制限の乗数を指定します。デフォルト値: 5。

(推奨) グローバルスロットリング制御

アノテーション

スコープ

サポート状況

説明

mse.ingress.kubernetes.io/rate-limit

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.25

ゲートウェイでルーティングされる RPS の最大数を指定します。このアノテーションは、グローバルスロットリングに使用されます。

mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-code

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.25

Ingress によって定義されたルートでスロットリングがトリガーされたときのレスポンスコードを指定します。デフォルト値: 429。

説明

このアノテーションは、mse.ingress.kubernetes.io/rate-limit-fallback-redirect-url アノテーションと相互に排他的です。2 つのアノテーションのいずれかを指定する必要があります。

mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body-type

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.25

Ingress によって定義されたルートでスロットリングがトリガーされたときのレスポンスボディのフォーマットを指定します。デフォルト値: text。

  • このパラメータが text に設定されている場合、レスポンスの Content-Type 値は text/plain; charset=UTF-8 です。

  • このパラメータが JSON に設定されている場合、レスポンスの Content-Type 値は application/json; charset=UTF-8 です。

mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.25

Ingress によって定義されたルートでスロットリングがトリガーされたときのレスポンスボディを指定します。デフォルト値: sentinel rate limited。

mse.ingress.kubernetes.io/rate-limit-fallback-redirect-url

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.25

Ingress によって定義されたルートでスロットリングがトリガーされたときの URL を指定します。

説明

このアノテーションは、mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-code アノテーションと相互に排他的です。2 つのアノテーションのいずれかを指定する必要があります。

グローバル同時実行制御

アノテーション

スコープ

サポート状況

説明

mse.ingress.kubernetes.io/concurrency-limit

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.25

同時に処理できるリクエストの最大数を指定します。このアノテーションは、ゲートウェイ内のルートのグローバル同時実行制御に使用されます。

mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-code

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.25

Ingress によって定義されたルートで同時実行制御がトリガーされたときのレスポンスコードを指定します。デフォルトのレスポンスコードは 429 です。

説明

このアノテーションは、mse.ingress.kubernetes.io/concurrency-limit-fallback-redirect-url アノテーションと相互に排他的です。2 つのアノテーションのいずれかを指定する必要があります。

mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-body-type

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.25

Ingress によって定義されたルートで同時実行制御がトリガーされたときのレスポンスボディのフォーマットを指定します。デフォルト値: text。

  • このパラメータが text に設定されている場合、レスポンスの Content-Type 値は text/plain; charset=UTF-8 です。

  • このパラメータが JSON に設定されている場合、レスポンスの Content-Type 値は application/json; charset=UTF-8 です。

mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-body

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.25

Ingress によって定義されたルートで同時実行制御がトリガーされたときのレスポンスボディを指定します。デフォルト値: sentinel rate limited。

mse.ingress.kubernetes.io/concurrency-limit-fallback-redirect-url

Ingress

  • MSE 専用

  • 必要なゲートウェイバージョン: V1.2.25

Ingress によって定義されたルートで同時実行制御がトリガーされたときの URL を指定します。

説明

このアノテーションは、mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-code アノテーションと相互に排他的です。2 つのアノテーションのいずれかを指定する必要があります。

バックエンドプロトコル

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/backend-protocol

サービス

部分的に互換性あり。AJP と FCGI はサポートされていません。

バックエンドサービスで使用されるプロトコルを指定します。デフォルト値: HTTP。有効値:

  • HTTP

  • HTTP2

  • HTTPS

  • gRPC

  • gRPCS

負荷分散

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/load-balance

サービス

部分的に互換性あり。指数加重移動平均 (EWMA) アルゴリズムはサポートされていません。負荷分散アルゴリズムとして EWMA アルゴリズムを構成すると、アルゴリズムは ラウンドロビン 負荷分散アルゴリズムにロールバックされます。

バックエンドサービスで使用される共通負荷分散アルゴリズムを指定します。デフォルト値は round_robin です。有効値:

  • round_robin: ラウンドロビン負荷分散アルゴリズム。

  • least_conn: 最小接続ベースの負荷分散アルゴリズム。

  • random: ランダム化負荷分散アルゴリズム。

nginx.ingress.kubernetes.io/upstream-hash-by

サービス

部分的に互換性あり。NGINX 変数と定数の組み合わせはサポートされていません。

一貫したハッシュ負荷分散アルゴリズムを指定します。MSE Ingress ゲートウェイは、次のタイプの一貫したハッシュをサポートしています。

  • NGINX 変数に基づく一貫したハッシュ:

    • $request_uri: リクエストパス。ハッシュキーとして使用されます。パスパラメータが含まれます。

    • $host: リクエストホスト。ハッシュキーとして使用されます。

    • $remote_addr: クライアント IP アドレス。ハッシュキーとして使用されます。

  • リクエストヘッダーに基づく一貫したハッシュ。$http_headerName のみ構成する必要があります。

  • リクエストパスパラメータに基づく一貫したハッシュ。$arg_varName のみ構成する必要があります。

サービスプリフェッチ (グレースフルスタート)

アノテーション

スコープ

サポート状況

説明

mse.ingress.kubernetes.io/warmup

サービス

MSE 専用

サービスがプリフェッチされる期間を指定します。単位: 秒。デフォルトでは、サービスプリフェッチ機能は無効になっています。

重要

サービスプリフェッチは、選択した負荷分散アルゴリズムによって異なります。ラウンドロビンと最小接続に基づく負荷分散アルゴリズムのみがサポートされています。

Cookie アフィニティ

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/affinity

サービス

互換

アフィニティタイプを指定します。デフォルトおよび唯一の有効値は cookie です。

nginx.ingress.kubernetes.io/affinity-mode

サービス

部分的に互換性あり。persistent モードはサポートされていません。

アフィニティモードを指定します。デフォルトおよび唯一の有効値は balanced です。

nginx.ingress.kubernetes.io/session-cookie-name

サービス

互換

ハッシュキーとして使用される Cookie の名前を指定します。

nginx.ingress.kubernetes.io/session-cookie-path

サービス

互換

指定された Cookie が存在しない場合に生成される Cookie のパスを指定します。デフォルト値: /

nginx.ingress.kubernetes.io/session-cookie-max-age

サービス

互換

指定された Cookie が存在しない場合に生成される Cookie の有効期限を指定します。単位: 秒。デフォルトでは、このアノテーションはセッションレベルで指定されます。

nginx.ingress.kubernetes.io/session-cookie-expires

サービス

互換

指定された Cookie が存在しない場合に生成される Cookie の有効期限を指定します。単位: 秒。デフォルトでは、このアノテーションはセッションレベルで指定されます。

IP アドレスベースのアクセス制御

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/whitelist-source-range

Ingress

互換

特定のルートの IP アドレスホワイトリストを指定します。IP アドレスと CIDR ブロックがサポートされています。IP アドレスまたは CIDR ブロックはコンマ (,) で区切ります。

nginx.ingress.kubernetes.io/denylist-source-range

Ingress

  • 互換

  • 必要なゲートウェイバージョン: V1.2.31

特定のルートの IP アドレスブラックリストを指定します。IP アドレスと CIDR ブロックがサポートされています。IP アドレスまたは CIDR ブロックはコンマ (,) で区切ります。

説明

このアノテーションは、MSE 専用アノテーション mse.ingress.kubernetes.io/blacklist-source-range よりも優先されます。

mse.ingress.kubernetes.io/blacklist-source-range

Ingress

MSE 専用

特定のルートの IP アドレスブラックリストを指定します。IP アドレスと CIDR ブロックがサポートされています。IP アドレスまたは CIDR ブロックはコンマ (,) で区切ります。

mse.ingress.kubernetes.io/domain-whitelist-source-range

Ingress

MSE 専用

特定のドメイン名の IP アドレスホワイトリストを指定します。ルートレベルの IP アドレスホワイトリストは、ドメイン名レベルの IP アドレスホワイトリストよりも優先されます。IP アドレスと CIDR ブロックがサポートされています。IP アドレスまたは CIDR ブロックはコンマ (,) で区切ります。

mse.ingress.kubernetes.io/domain-blacklist-source-range

Ingress

MSE 専用

特定のドメイン名の IP アドレスブラックリストを指定します。ルートレベルの IP アドレスブラックリストは、ドメイン名レベルの IP アドレスブラックリストよりも優先されます。IP アドレスと CIDR ブロックがサポートされています。IP アドレスまたは CIDR ブロックはコンマ (,) で区切ります。

ゲートウェイとバックエンドサービス間の接続プールの構成

アノテーション

スコープ

サポート状況

説明

mse.ingress.kubernetes.io/connection-policy-tcp-max-connection

サービス

MSE 専用

ゲートウェイとバックエンドサービス間で確立できる接続の最大数を指定します。

mse.ingress.kubernetes.io/connection-policy-tcp-max-connection-per-endpoint

サービス

MSE 専用

ゲートウェイとバックエンドサービスの単一ノード間で確立できる接続の最大数を指定します。

mse.ingress.kubernetes.io/connection-policy-http-max-request-per-connection

サービス

MSE 専用

ゲートウェイとバックエンドサービス間の単一接続でのリクエストの最大数を指定します。

セキュリティ保護

クライアントとゲートウェイ間の暗号化通信

アノテーション

スコープ

サポート状況

説明

mse.ingress.kubernetes.io/tls-min-protocol-version

ドメイン名

MSE 専用

TLS の最小バージョンを指定します。デフォルト値: TLSv1.0。有効値:

  • TLSv1.0

  • TLSv1.1

  • TLSv1.2

mse.ingress.kubernetes.io/tls-max-protocol-version

ドメイン名

MSE 専用

TLS の最大バージョンを指定します。このパラメータを TLSv1.2 に設定することをお勧めします。有効値:

  • TLSv1.0

  • TLSv1.1

  • TLSv1.2

nginx.ingress.kubernetes.io/ssl-cipher

ドメイン名

互換

TLS 暗号スイートを指定します。複数の TLS 暗号スイートを指定できます。これらはコンマ (,) で区切ります。このパラメータは、TLS ハンドシェイク中に v1.0 から v1.2 までの TLS バージョンが使用される場合にのみ有効です。

デフォルトの暗号スイート:

  • ECDHE-ECDSA-AES128-GCM-SHA256

  • ECDHE-RSA-AES128-GCM-SHA256

  • ECDHE-ECDSA-AES128-SHA

  • ECDHE-RSA-AES128-SHA

  • AES128-GCM-SHA256

  • AES128-SHA

  • ECDHE-ECDSA-AES256-GCM-SHA384

  • ECDHE-RSA-AES256-GCM-SHA384

  • ECDHE-ECDSA-AES256-SHA

  • ECDHE-RSA-AES256-SHA

  • AES256-GCM-SHA384

  • AES256-SHA

mse.ingress.kubernetes.io/auth-tls-secret

ドメイン名

部分的に互換性あり。フォーマットは (ドメイン名証明書が属するシークレットの名前)-cacert である必要があります。

相互 TLS (mTLS) ハンドシェイク中にゲートウェイがクライアントによって提供された証明書を検証するために使用する CA 証明書を指定します。このアノテーションは、ゲートウェイがクライアントの ID を検証する必要があるシナリオに適しています。

ゲートウェイとバックエンドサービス間の暗号化通信

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/proxy-ssl-secret

サービス

互換

ゲートウェイで使用されるクライアント証明書を指定します。クライアント証明書は、バックエンドサービスがゲートウェイを認証するために使用されます。

nginx.ingress.kubernetes.io/proxy-ssl-name

サービス

互換

TLS ハンドシェイク中に使用されるサーバ名表示 (SNI) を指定します。

nginx.ingress.kubernetes.io/proxy-ssl-server-name

サービス

互換

TLS ハンドシェイク中に使用される SNI を有効にするかどうかを指定します。

認証

Basic

アノテーション

スコープ

サポート状況

説明

nginx.ingress.kubernetes.io/auth-type

Ingress

部分的に互換性あり。Basic 認証タイプのみがサポートされています。

認証タイプを指定します。

nginx.ingress.kubernetes.io/auth-secret

Ingress

互換

シークレットの名前を指定します。フォーマットは <namespace>/<name> である必要があります。シークレット名には、Ingress ルールで定義されたルートへのアクセスが許可されているユーザー名とパスワードが含まれています。

nginx.ingress.kubernetes.io/auth-secret-type

Ingress

互換

シークレットコンテンツのフォーマットを指定します。有効値:

  • auth-file: データのキーは auth で、データの値はユーザー名とパスワードです。各アカウントの情報は別々の行を占めます。

  • auth-map: データのキーはユーザー名で、データの値はパスワードです。

nginx.ingress.kubernetes.io/auth-realm

Ingress

互換

認証レルムを指定します。ユーザー名とパスワードは認証レルムで共有されます。

NGINX Ingress アノテーションの詳細については、「アノテーション」をご参照ください。