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

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

最終更新日:Mar 11, 2026

Microservices Engine (MSE) Ingress ゲートウェイは、ほとんどの NGINX Ingress アノテーションと互換性があり、トラフィックガバナンスとセキュリティのために 40 の追加アノテーションを提供します。NGINX Ingress から移行する場合、ほとんどのアノテーションは変更なしで機能します。

互換性の概要

カテゴリ詳細
サポートされている NGINX Ingress アノテーション51一般的なユースケースの 90% をカバー
No-op アノテーション15設定不要
今後サポート予定のアノテーション48将来のリリースで計画中
サポートされていないアノテーション5NGINX 固有のコードスニペットに関連
MSE 専用アノテーション40拡張されたトラフィックガバナンスとセキュリティ

アノテーションの基本

スコープ

各アノテーションは、以下の 3 つのレベルのいずれかで適用されます:

スコープ適用対象Ingress 横断時の動作
IngressIngress リソース内のルーティングルール現在 の Ingress のみにスコープが限定されます
ドメイン名Ingress リソースで定義されたホスト他の Ingress リソース内の同じホストにも効果があります
サービスIngress リソースで定義されたバックエンドサービス他の Ingress リソース内の同じサービスにも効果があります

プレフィックス

MSE Ingress ゲートウェイは、互換性のあるアノテーションに対して nginx.ingress.kubernetes.io/mse.ingress.kubernetes.io/ の両方のプレフィックスを受け入れます。お好みに応じていずれかのプレフィックスを使用してください。

MSE 専用のアノテーションは mse.ingress.kubernetes.io/ プレフィックスのみをサポートします。

アノテーション値のフォーマット

Kubernetes のアノテーションは常に文字列です。以下のエンコーディング規則が適用されます:

タイプフォーマット
ブール値"true" または "false""true"
整数見積番号"3"
期間引用値 (秒)"30"
パーセンテージ引用数 (0~100)"80"
文字列リストカンマ区切り"192.168.0.1,10.0.0.0/8"
複数行YAML パイプ (|)ヘッダー制御の例をご参照ください

優先順位とインタラクションルール

ルール詳細
プレフィックスの等価性nginx.ingress.kubernetes.io/xxxmse.ingress.kubernetes.io/xxx は、互換性のあるアノテーションに対して同一の動作をします
ドメイン間経路ルートレベルの IP リストはドメインレベルの IP リストより優先されます
NGINX デニーリスト > MSE ブラックリストnginx.ingress.kubernetes.io/denylist-source-rangemse.ingress.kubernetes.io/blacklist-source-range
排他的なレート制限フォールバックrate-limit-fallback-custom-response-coderate-limit-fallback-redirect-url は同時に使用できません
相互排他的な同時実行フォールバックconcurrency-limit-fallback-custom-response-codeconcurrency-limit-fallback-redirect-url は同時に使用できません
独立したヘッダー制御ベースルートとカナリアルートのヘッダー制御アノテーションは独立して検証されます

互換性に関する注意事項

  • NGINX 変数:MSE は NGINX とは異なる方法で機能を実装しています。アノテーションやコードスニペットで設定された NGINX 変数は、MSE と互換性がありません。

  • proxy-body-size の動作:MSE クラウドネイティブゲートウェイはチャンク転送エンコーディングを使用しており、大きなリクエストボディを自動的にチャンクに分割します。大きなファイルの転送を処理するには、ご利用の MSE ゲートウェイの [パラメーター設定]DownstreamConnectionBufferLimits パラメーターを調整してください。

トラフィックガバナンス

カナリアリリース

アノテーションスコープステータス説明
nginx.ingress.kubernetes.io/canaryIngress対応カナリアリリースを有効にします。
nginx.ingress.kubernetes.io/canary-by-headerIngress互換性ありトラフィック分割用のリクエストヘッダーキーを設定します。
nginx.ingress.kubernetes.io/canary-by-header-valueIngress互換性ありトラフィック分割用のリクエストヘッダー値を設定します。完全一致をサポートします。
nginx.ingress.kubernetes.io/canary-by-header-patternIngress互換性ありトラフィック分割用のリクエストヘッダー値を設定します。正規表現一致をサポートします。
nginx.ingress.kubernetes.io/canary-by-cookieIngress互換性ありトラフィック分割用のリクエスト Cookie キーを設定します。
nginx.ingress.kubernetes.io/canary-weightIngress対応トラフィック分割用のサービス重みを設定します。
nginx.ingress.kubernetes.io/canary-weight-totalIngress互換性あり合計の重みを設定します。
mse.ingress.kubernetes.io/canary-by-queryIngressMSE 専用トラフィック分割用の URL クエリパラメーターを設定します。
mse.ingress.kubernetes.io/canary-by-query-valueIngressMSE 専用トラフィック分割用の URL クエリパラメーター値を設定します。完全一致をサポートします。
mse.ingress.kubernetes.io/canary-by-query-patternIngressMSE 専用トラフィック分割用の URL クエリパラメーター値を設定します。正規表現一致をサポートします。
mse.ingress.kubernetes.io/canary-by-cookie-valueIngressMSE 専用 (V1.2.30+)トラフィック分割用のリクエスト Cookie 値を設定します。完全一致をサポートします。
# カナリアリリース:ヘッダー値に基づいてトラフィックをルーティング
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: canary-ingress
  annotations:
    nginx.ingress.kubernetes.io/canary: "true"
    nginx.ingress.kubernetes.io/canary-by-header: "x-canary"
    nginx.ingress.kubernetes.io/canary-by-header-value: "true"
spec:
  rules:
    - host: example.com
      http:
        paths:
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: my-service-canary
                port:
                  number: 80

複数サービスへのルーティング

重み付けディストリビューションを使用して、複数のバックエンドサービスにトラフィックをルーティングします。

アノテーションスコープステータス説明
mse.ingress.kubernetes.io/destinationIngressMSE 専用ルートに対して重み付けに基づくサービスディストリビューションを定義します。

構文: {weight}% {serviceName}.{serviceNamespace}.svc.cluster.local:{port}

annotations:
  # トラフィックの 60% を foo に、40% を bar にルーティング
  mse.ingress.kubernetes.io/destination: |
    60% foo.default.svc.cluster.local:8080
    40% bar.default.svc.cluster.local:9090
このアノテーションを設定すると、Ingress 上のすべてのルーティングルールが指定されたサービスに向けられます。構文が無効な場合、アノテーションは無視され、元のルーティングルールは変更されません。

サービスサブセット

1 つのサービスが複数のデプロイメントを管理する場合に便利な、サービス内の Pod のサブセットにトラフィックをルーティングします。

アノテーションスコープステータス説明
mse.ingress.kubernetes.io/service-subsetIngressMSE 専用 (V1.2.25+)ターゲット Pod ルーティング用のサービスサブセットを設定します。
mse.ingress.kubernetes.io/subset-labelsIngressMSE 専用 (V1.2.25+)オプション。Pod をサブセットに分類するために使用されるラベルを設定します。

service-subset がトラフィックをルーティングする方法:

  • subset-labels が設定されていない場合:

    • "" または base に設定:opensergo.io/canary: "" というラベルが付いた Pod、または opensergo.io/canary ラベルキーがない Pod にルーティングします。

    • その他の値 (例:gray) に設定:opensergo.io/canary-gray: gray というラベルが付いた Pod にルーティングします。

  • subset-labels が設定されている場合:subset-labels で定義されたキーと値のペアに一致するラベルを持つ Pod にのみルーティングします。

指定されたラベルに一致する Pod がない場合、トラフィックは自動的にサービス内のすべての Pod にルーティングされます。
annotations:
  # "gray" サブセットとしてラベル付けされた Pod にトラフィックをルーティング
  mse.ingress.kubernetes.io/service-subset: "gray"

フォールバック

アノテーションスコープステータス説明
nginx.ingress.kubernetes.io/default-backendIngress互換性ありフォールバックサービスを設定します。プライマリサービスに利用可能なヘルシーノードがない場合、リクエストはこのサービスに転送されます。
nginx.ingress.kubernetes.io/custom-http-errorsIngress対応default-backend と共に使用します。バックエンドが指定された HTTP ステータスコードを返した場合に、リクエストをフォールバックサービスに転送します。
重要

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

正規表現一致

アノテーションスコープステータス説明
nginx.ingress.kubernetes.io/use-regexIngress互換性ありIngress パスの正規表現一致を有効にします。RE2 構文を使用します。

書き換え

アノテーションスコープステータス説明
nginx.ingress.kubernetes.io/rewrite-targetIngress互換性あり書き換え先のパスを設定します。キャプチャグループがサポートされています。
nginx.ingress.kubernetes.io/upstream-vhostIngress互換性ありバックエンドサービスにリクエストを転送する際に Host ヘッダーを上書きします。

リダイレクト

アノテーションスコープステータス説明
nginx.ingress.kubernetes.io/ssl-redirectIngress互換性ありHTTP を HTTPS にリダイレクトします。
nginx.ingress.kubernetes.io/force-ssl-redirectIngress対応HTTP を HTTPS に強制的にリダイレクトします。
nginx.ingress.kubernetes.io/permanent-redirectIngress対応恒久的なリダイレクト URL を設定します。
nginx.ingress.kubernetes.io/permanent-redirect-codeIngress対応恒久的なリダイレクトのステータスコードを設定します。
nginx.ingress.kubernetes.io/temporal-redirectIngress互換性あり一時的なリダイレクト URL を設定します。
nginx.ingress.kubernetes.io/app-rootIngress対応/ からのリクエストを指定されたアプリケーションルートパスにリダイレクトします。
一部の NGINX Ingress バージョンではリダイレクトに NGINX 変数をサポートしていますが、これは公式の アノテーションリファレンスには記載されておらず、互換性の問題を引き起こす可能性があります。リダイレクトに NGINX 変数を使用しないでください。

CORS

アノテーションスコープステータス説明
nginx.ingress.kubernetes.io/enable-corsIngress対応オリジン間リソース共有 (CORS) を有効にします。
nginx.ingress.kubernetes.io/cors-allow-originIngress互換性あり許可されたオリジンを設定します。
nginx.ingress.kubernetes.io/cors-allow-methodsIngress対応許可された HTTP メソッド (GET、POST、PUT など) を設定します。
nginx.ingress.kubernetes.io/cors-allow-headersIngress互換性あり許可されたリクエストヘッダーを設定します。
nginx.ingress.kubernetes.io/cors-expose-headersIngress対応ブラウザに公開されるレスポンスヘッダーを設定します。
nginx.ingress.kubernetes.io/cors-allow-credentialsIngress対応済みCORS リクエストで認証情報を許可します。
nginx.ingress.kubernetes.io/cors-max-ageIngress互換プリフライトリクエストの結果をキャッシュする最大期間 (秒) を設定します。

ヘッダー制御

ゲートウェイレベルでリクエストヘッダーとレスポンスヘッダーを操作します。ベースルートとカナリアルートのヘッダー制御アノテーションは独立しています。それぞれに異なるヘッダーポリシーを設定してください。

リクエストヘッダー:

アノテーションスコープステータス説明
mse.ingress.kubernetes.io/request-header-control-addIngressMSE 専用バックエンドに転送されるリクエストにヘッダーを追加します。ヘッダーが既に存在する場合、新しい値が元の値に追加されます。
mse.ingress.kubernetes.io/request-header-control-updateIngressMSE 専用バックエンドに転送されるリクエストのヘッダーを上書きします。ヘッダーが既に存在する場合、元の値は置き換えられます。
mse.ingress.kubernetes.io/request-header-control-removeIngressMSE 専用バックエンドに転送されるリクエストからヘッダーを削除します。

レスポンスヘッダー:

アノテーションスコープステータス説明
mse.ingress.kubernetes.io/response-header-control-addIngressMSE 専用クライアントに転送する前にレスポンスにヘッダーを追加します。ヘッダーが既に存在する場合、新しい値が追加されます。
mse.ingress.kubernetes.io/response-header-control-updateIngressMSE 専用クライアントに転送する前にレスポンスのヘッダーを上書きします。ヘッダーが既に存在する場合、元の値は置き換えられます。
mse.ingress.kubernetes.io/response-header-control-removeIngressMSE 専用クライアントに転送する前にレスポンスからヘッダーを削除します。

追加および更新アノテーションの構文:

  • 単一ヘッダー:key value

  • 複数ヘッダー:YAML パイプ (|) を使用し、1 行に 1 つのキーと値のペアを記述します。

削除アノテーションの構文:

  • 単一ヘッダー:key

  • 複数ヘッダー:カンマ (,) で区切ります。

annotations:
  # リクエストにカスタムヘッダーを追加
  mse.ingress.kubernetes.io/request-header-control-add: "x-request-id 12345"
  # レスポンスに複数のヘッダーを追加
  mse.ingress.kubernetes.io/response-header-control-add: |
    x-custom-header value1
    x-another-header value2
  # レスポンスからヘッダーを削除
  mse.ingress.kubernetes.io/response-header-control-remove: "x-powered-by,server"

タイムアウト

アノテーションスコープステータス説明
mse.ingress.kubernetes.io/timeoutIngressMSE 専用リクエストのタイムアウトを秒単位で設定します。デフォルトではタイムアウトは設定されていません。
このタイムアウトは TCP トランスポート層ではなく、アプリケーション層で適用されます。
annotations:
  mse.ingress.kubernetes.io/timeout: "30"

リトライ

アノテーションスコープステータス説明
nginx.ingress.kubernetes.io/proxy-next-upstream-triesIngress互換性ありリトライの最大試行回数を設定します。デフォルト:3
nginx.ingress.kubernetes.io/proxy-next-upstream-timeoutIngress互換リトライのタイムアウトを秒単位で設定します。デフォルトではタイムアウトはありません。
nginx.ingress.kubernetes.io/proxy-next-upstreamIngress互換リトライ条件を定義します。NGINX リトライメカニズムをご参照ください。

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

アノテーションスコープステータス説明
mse.ingress.kubernetes.io/mirror-target-serviceIngressMSE 専用ミラーリングされたトラフィックを受信するサービスを設定します。フォーマット:namespace/name:port
mse.ingress.kubernetes.io/mirror-percentageIngressMSE 専用 (V1.2.32+)ミラーリングするトラフィックのパーセンテージを設定します。有効な値:0100。デフォルト:100

mirror-target-service パラメーター:

パラメーター必須説明
namespaceいいえKubernetes Service の名前空間。デフォルトは Ingress ゲートウェイの名前空間です。
nameはいKubernetes Service の名前。
portいいえミラーリングされたトラフィック用のサービスポート。デフォルトは最初のポートです。
annotations:
  # トラフィックの 50% をシャドウサービスにミラーリング
  mse.ingress.kubernetes.io/mirror-target-service: "default/shadow-service:8080"
  mse.ingress.kubernetes.io/mirror-percentage: "50"

ドメインエイリアス

アノテーションスコープステータス説明
nginx.ingress.kubernetes.io/server-aliasドメイン名部分的に互換 (V1.2.30+)Ingress spec で定義されたドメインのドメインエイリアスを設定します。ドメインエイリアスは、ソースドメインの TLS、ルーティング、およびトラフィックガバナンス設定を共有します。完全一致ドメインとワイルドカードドメインのみがサポートされています。

レート制限

グローバルレート制限 (推奨)

すべてのゲートウェイインスタンスで一貫したトラフィック制御を行うには、グローバルレート制限を使用してください。

アノテーションスコープステータス説明
mse.ingress.kubernetes.io/rate-limitIngressMSE 専用 (V1.2.25+)ルートの 1 秒あたりの最大リクエスト数 (RPS) を設定します。
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-codeIngressMSE 専用 (V1.2.25+)レート制限がトリガーされたときのレスポンスコードを設定します。デフォルト:429rate-limit-fallback-redirect-url とは排他的です。
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body-typeIngressMSE 専用 (V1.2.25+)レスポンスボディのフォーマットを設定します。デフォルト:texttext は Content-Type を text/plain; charset=UTF-8 に設定します。JSONapplication/json; charset=UTF-8 に設定します。
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-bodyIngressMSE 専用 (V1.2.25+)レスポンスボディのテキストを設定します。デフォルト:sentinel rate limited
mse.ingress.kubernetes.io/rate-limit-fallback-redirect-urlIngressMSE 専用 (V1.2.25+)レート制限がトリガーされたときに URL にリダイレクトします。rate-limit-fallback-custom-response-code とは排他的です。
annotations:
  # 100 RPS に制限し、カスタム JSON レスポンスを返す
  mse.ingress.kubernetes.io/rate-limit: "100"
  mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-code: "429"
  mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body-type: "JSON"
  mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body: '{"error":"rate limit exceeded"}'

単一ゲートウェイのレート制限 (非推奨予定)

重要

単一ゲートウェイのレート制限は非推奨になる予定です。代わりにグローバルレート制限を使用してください。

アノテーションスコープステータス説明
mse.ingress.kubernetes.io/route-limit-rpmIngressMSE 専用単一ゲートウェイ上のルートの 1 分あたりの最大リクエスト数 (RPM) を設定します。バースト制限 = RPM x route-limit-burst-multiplier
mse.ingress.kubernetes.io/route-limit-rpsIngressMSE 専用単一ゲートウェイ上のルートの 1 秒あたりの最大リクエスト数 (RPS) を設定します。バースト制限 = RPS x route-limit-burst-multiplier
mse.ingress.kubernetes.io/route-limit-burst-multiplierIngressMSE 専用バースト制限の乗数を設定します。デフォルト:5

レート制限がトリガーされた場合:

  • レスポンスボディ:local_rate_limited

  • V1.2.23 より前のゲートウェイバージョン:ステータスコード 503 を返します

  • ゲートウェイバージョン V1.2.23 以降:ステータスコード 429 を返します

同時実行制御

グローバル同時実行制御は、ルートで同時に処理されるリクエストの数を制限します。

アノテーションスコープステータス説明
mse.ingress.kubernetes.io/concurrency-limitIngressMSE 専用 (V1.2.25+)ルートの最大同時リクエスト数を設定します。
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-codeIngressMSE 専用 (V1.2.25+)同時実行制御がトリガーされたときのレスポンスコードを設定します。デフォルト:429concurrency-limit-fallback-redirect-url とは排他的です。
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-body-typeIngressMSE 専用 (V1.2.25+)レスポンスボディのフォーマットを設定します。デフォルト:texttext は Content-Type を text/plain; charset=UTF-8 に設定します。JSONapplication/json; charset=UTF-8 に設定します。
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-bodyIngressMSE 専用 (V1.2.25+)レスポンスボディのテキストを設定します。デフォルト:sentinel rate limited
mse.ingress.kubernetes.io/concurrency-limit-fallback-redirect-urlIngressMSE 専用 (V1.2.25+)同時実行制御がトリガーされたときに URL にリダイレクトします。concurrency-limit-fallback-custom-response-code とは排他的です。
annotations:
  # 50 の同時リクエストに制限し、オーバーフロー時にリダイレクト
  mse.ingress.kubernetes.io/concurrency-limit: "50"
  mse.ingress.kubernetes.io/concurrency-limit-fallback-redirect-url: "https://example.com/busy"

バックエンドプロトコル

アノテーションスコープステータス説明
nginx.ingress.kubernetes.io/backend-protocolサービス一部互換バックエンドサービスのプロトコルを設定します。デフォルト:HTTP。有効な値:HTTPHTTP2HTTPSgRPCgRPCS。AJP と FCGI はサポートされていません。

負荷分散

アノテーションスコープステータス説明
nginx.ingress.kubernetes.io/load-balanceサービス部分的に互換負荷分散アルゴリズムを設定します。デフォルト:round_robin。有効な値:round_robinleast_connrandom。指数加重移動平均 (EWMA) アルゴリズムはサポートされていません。EWMA が設定されている場合、アルゴリズムは round_robin にフォールバックします。
nginx.ingress.kubernetes.io/upstream-hash-byサービス部分的に互換一貫性ハッシュを有効にします。NGINX 変数と定数の組み合わせはサポートされていません。

サポートされている一貫性ハッシュメソッド:

  • NGINX 変数:$request_uri (パラメーターを含むリクエストパス)、$host (リクエストホスト)、$remote_addr (クライアント IP アドレス)

  • リクエストヘッダー:$http_headerName

  • リクエストパスパラメーター:$arg_varName

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

アノテーションスコープステータス説明
mse.ingress.kubernetes.io/warmupサービスMSE 専用ウォームアップ期間を秒単位で設定します。デフォルトでは無効です。
重要

グレースフルスタートは、round_robin および least_conn 負荷分散アルゴリズムでのみ機能します。

annotations:
  # 新しい Pod を 60 秒かけてウォームアップ
  mse.ingress.kubernetes.io/warmup: "60"

Cookie アフィニティ

アノテーションスコープステータス説明
nginx.ingress.kubernetes.io/affinityサービス互換性ありアフィニティタイプを設定します。唯一の有効な値は cookie です。
nginx.ingress.kubernetes.io/affinity-modeサービス部分的に互換アフィニティモードを設定します。唯一の有効な値は balanced です。persistent モードはサポートされていません。
nginx.ingress.kubernetes.io/session-cookie-nameサービス互換ハッシュキーとして使用される Cookie の名前を設定します。
nginx.ingress.kubernetes.io/session-cookie-pathサービス互換性あり生成される Cookie のパスを設定します。デフォルト:/
nginx.ingress.kubernetes.io/session-cookie-max-ageサービス対応Cookie の有効期限を秒単位で設定します。デフォルトはセッションレベルの有効期限です。
nginx.ingress.kubernetes.io/session-cookie-expiresサービス対応Cookie の有効期限を秒単位で設定します。デフォルトはセッションレベルの有効期限です。

IP アクセス制御

アノテーションスコープステータス説明
nginx.ingress.kubernetes.io/whitelist-source-rangeIngress互換性ありルートの IP ホワイトリストを設定します。IP アドレスと CIDR ブロックをサポートし、カンマで区切ります。
nginx.ingress.kubernetes.io/denylist-source-rangeIngress対応 (V1.2.31+)ルートの IP デニーリストを設定します。IP アドレスと CIDR ブロックをサポートし、カンマで区切ります。
mse.ingress.kubernetes.io/blacklist-source-rangeIngressMSE 専用ルートの IP ブラックリストを設定します。IP アドレスと CIDR ブロックをサポートし、カンマで区切ります。
mse.ingress.kubernetes.io/domain-whitelist-source-rangeIngressMSE 専用ドメイン名の IP ホワイトリストを設定します。IP アドレスと CIDR ブロックをサポートし、カンマで区切ります。
mse.ingress.kubernetes.io/domain-blacklist-source-rangeIngressMSE 専用ドメイン名の IP ブラックリストを設定します。IP アドレスと CIDR ブロックをサポートし、カンマで区切ります。

優先順位ルール:

  • ルートレベルの IP リストはドメインレベルの IP リストより優先されます。

  • nginx.ingress.kubernetes.io/denylist-source-rangemse.ingress.kubernetes.io/blacklist-source-range より優先されます。

annotations:
  # ルートレベルで特定の IP のみを許可
  nginx.ingress.kubernetes.io/whitelist-source-range: "10.0.0.0/8,192.168.1.100"

ゲートウェイとバックエンド間の接続プール

アノテーションスコープステータス説明
mse.ingress.kubernetes.io/connection-policy-tcp-max-connectionサービスMSE 専用ゲートウェイとバックエンドサービス間の最大 TCP 接続数を設定します。
mse.ingress.kubernetes.io/connection-policy-tcp-max-connection-per-endpointサービスMSE 専用ゲートウェイと各バックエンドエンドポイント間の最大 TCP 接続数を設定します。
mse.ingress.kubernetes.io/connection-policy-http-max-request-per-connectionサービスMSE 専用ゲートウェイとバックエンドサービス間の接続あたりの最大 HTTP リクエスト数を設定します。
annotations:
  # バックエンドへの接続プールを制限
  mse.ingress.kubernetes.io/connection-policy-tcp-max-connection: "1024"
  mse.ingress.kubernetes.io/connection-policy-tcp-max-connection-per-endpoint: "100"
  mse.ingress.kubernetes.io/connection-policy-http-max-request-per-connection: "500"

セキュリティ保護

クライアントとゲートウェイ間の TLS

アノテーションスコープステータス説明
mse.ingress.kubernetes.io/tls-min-protocol-versionドメイン名MSE 専用最小 TLS バージョンを設定します。デフォルト:TLSv1.0。有効な値:TLSv1.0TLSv1.1TLSv1.2
mse.ingress.kubernetes.io/tls-max-protocol-versionドメイン名MSE 専用最大 TLS バージョンを設定します。推奨:TLSv1.2。有効な値:TLSv1.0TLSv1.1TLSv1.2
nginx.ingress.kubernetes.io/ssl-cipherドメイン名互換性ありTLS 暗号スイートをカンマで区切って設定します。TLS 1.0 から 1.2 のハンドシェイクにのみ効果があります。
mse.ingress.kubernetes.io/auth-tls-secretドメイン名部分的に互換mTLS ハンドシェイク中のクライアント証明書検証用の CA 証明書を設定します。シークレット名は、{domain-cert-secret-name}-cacert というフォーマットに従う必要があります。

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

ECDHE-ECDSA-AES128-GCM-SHA256ECDHE-RSA-AES128-GCM-SHA256ECDHE-ECDSA-AES128-SHAECDHE-RSA-AES128-SHAAES128-GCM-SHA256AES128-SHAECDHE-ECDSA-AES256-GCM-SHA384ECDHE-RSA-AES256-GCM-SHA384ECDHE-ECDSA-AES256-SHAECDHE-RSA-AES256-SHAAES256-GCM-SHA384AES256-SHA

annotations:
  # 最小 TLS 1.2 を強制
  mse.ingress.kubernetes.io/tls-min-protocol-version: "TLSv1.2"
  mse.ingress.kubernetes.io/tls-max-protocol-version: "TLSv1.2"

ゲートウェイとバックエンド間の TLS

アノテーションスコープステータス説明
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 を有効にします。

認証

アノテーションスコープステータス説明
nginx.ingress.kubernetes.io/auth-typeIngress部分的に互換認証タイプを設定します。basic のみがサポートされています。
nginx.ingress.kubernetes.io/auth-secretIngress互換認証情報を含むシークレットを設定します。フォーマット:<namespace>/<name>
nginx.ingress.kubernetes.io/auth-secret-typeIngress互換性ありシークレットのフォーマットを設定します。auth-file:データキーは auth で、値には username:password のペア (1 行に 1 つ) が含まれます。auth-map:データキーはユーザー名、値はパスワードです。
nginx.ingress.kubernetes.io/auth-realmIngress互換性あり認証レルムを設定します。同じレルム内では認証情報が共有されます。
annotations:
  # Kubernetes シークレットによる基本認証
  nginx.ingress.kubernetes.io/auth-type: "basic"
  nginx.ingress.kubernetes.io/auth-secret: "default/my-auth-secret"
  nginx.ingress.kubernetes.io/auth-secret-type: "auth-file"
  nginx.ingress.kubernetes.io/auth-realm: "Protected Area"

関連ドキュメント