Microservices Engine (MSE) Ingress ゲートウェイは、NGINX Ingress ゲートウェイのコアおよび一般的なアノテーションをサポートしており、シームレスな移行が可能です。また、MSE Ingress ゲートウェイは、トラフィックガバナンスおよびセキュリティ保護機能を追加することで、NGINX アノテーションを拡張しています。
NGINX Ingress ゲートウェイから MSE Ingress ゲートウェイへ移行する場合は、本ページをアノテーション互換性のリファレンスとしてご活用ください。**[互換]** とマークされたアノテーションについては、変更は不要です。**[部分的に互換]** とマークされたアノテーションについては、移行前に記載されている制限事項をご確認ください。
アノテーション機能の概要
標準の Kubernetes Ingress は、レイヤー 7 の HTTP トラフィックに対して、トランスポート層セキュリティ (TLS) 暗号化および単純なルーティング機能のみを提供します。Ingress コントローラーでは、通常、アノテーションを使用して、トラフィックガバナンスおよびセキュリティ保護のための Ingress 機能を拡張します。
アノテーション対応状況のまとめ
NGINX Ingress アノテーション
| カテゴリ | 件数 | 説明 |
|---|
| 対応済み | 51 | 利用ケースの 90 % をカバー |
| 機能への影響なし | 15 | 構成設定は不要 |
| 今後対応予定 | 48 | 限定的なシナリオでの対応を計画中 |
| 非対応 | 5 | NGINX Ingress の内部実装に特化した機能 |
MSE 拡張アノテーション
| カテゴリ | 件数 | 説明 |
|---|
| 拡張済み | 40 | NGINX Ingress が提供する機能を超えた、トラフィックガバナンスおよびセキュリティ保護のための追加アノテーション |
アノテーションのプレフィックス
MSE Ingress ゲートウェイは、NGINX Ingress アノテーションと同等の機能を持つアノテーションを提供します。たとえば、nginx.ingress.kubernetes.io/xxx および mse.ingress.kubernetes.io/xxx は同一の機能を持ちます。どちらのプレフィックス(nginx または mse)を使用するかは、ご要件に応じてお選びください。
例外: MSE 専用のアノテーションについては、mse プレフィックスのみが有効です。nginx プレフィックスは、これらのアノテーションにおいて mse プレフィックスを代替できません。
アノテーションの適用範囲
| 範囲 | 効果 |
|---|
| Ingress | Ingress リソースで定義されたルーティングルールに適用されます |
| ドメイン名 | Ingress リソースで定義されたホストに適用されます。他の Ingress リソースで定義された同一ホストにも適用されます |
| サービス | Ingress リソースで定義されたサービスに適用されます。他の Ingress リソースで定義された同一サービスにも適用されます |
トラフィックガバナンス
カナリアリリース
これらのアノテーションを併用して、サービスのバージョン間でトラフィックを分割します。
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
nginx.ingress.kubernetes.io/canary | Ingress | 互換性あり | カナリアリリースを有効化します。true を設定すると、この Ingress がカナリア 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 クエリパラメーターの値です。完全一致がサポートされます。 |
mse.ingress.kubernetes.io/canary-by-query-pattern | Ingress | MSE 専用 | トラフィック分割に使用する 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 | 互換性あり | すべてのサービスにわたる合計重みです。 |
マルチサービスルーティング
単一の Ingress から、重み付けに基づいて複数のバックエンドサービスへトラフィックをルーティングします。このアノテーションを設定すると、Ingress 上のすべてのルーティングルールの送信先サービスが上書きされます。
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
mse.ingress.kubernetes.io/destination | Ingress | MSE 専用 | 重み付きサービスディストリビューション。形式: {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
サービスサブセット
サービス内の特定の Pod サブセットへリクエストをルーティングします。これは、1 つのサービスが異なるラベルを持つ複数のデプロイメントを管理する場合に有効です。
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
mse.ingress.kubernetes.io/service-subset | Ingress | MSE 専用(ゲートウェイ V1.2.25 以降が必要) | リクエストをルーティングするサブセットを指定します。下記のサブセットルーティングルールをご参照ください。 |
mse.ingress.kubernetes.io/subset-labels | Ingress | MSE 専用(ゲートウェイ V1.2.25 以降が必要) | (任意)Pod をサブセットに分類するためのラベルセレクターです。service-subset と併用します。 |
サブセットルーティングルール:
指定されたラベルに一致する Pod が存在しない場合、リクエストは自動的にサービス内のすべての Pod に転送されます。
フォールバックサービス
プライマリバックエンドが利用不可になった場合に、リクエストをフォールバックサービスへリダイレクトします。
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
nginx.ingress.kubernetes.io/default-backend | Ingress | 互換性あり | プライマリサービスに健全なノードが存在しない場合に、リクエストを受け取るフォールバックサービスです。 |
nginx.ingress.kubernetes.io/custom-http-errors | Ingress | 対応 | 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 | 互換性あり | 一致したリクエストがバックエンドサービスへ転送される際に、Host ヘッダーの値を上書きします。 |
リダイレクト
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
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 | 互換性あり | 恒久的なリダイレクトの送信先 URL です。 |
nginx.ingress.kubernetes.io/permanent-redirect-code | Ingress | 対応 | 恒久的なリダイレクトの HTTP ステータスコードです。 |
nginx.ingress.kubernetes.io/temporal-redirect | Ingress | 互換性あり | 一時的なリダイレクトの送信先 URL です。 |
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 リクエストで許可される HTTP メソッド(例: 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 | 互換性あり | プリフライト結果をキャッシュする最大期間(秒単位)です。 |
ヘッダー制御
ベースルートおよびカナリアルート向けのヘッダー制御ポリシーは独立しています。ベーストラフィックおよびカナリアトラフィックに異なるヘッダー操作ルールを適用するには、それぞれ別途構成してください。
すべてのヘッダー制御アノテーションは、Ingress 範囲の MSE 専用アノテーションです。複数のヘッダーを設定するには、YAML ブロックリテラル(|)を使用し、各 key: value ペアを個別の行に記述します。
| アノテーション | 説明 |
|---|
mse.ingress.kubernetes.io/request-header-control-add | バックエンドサービスへ転送されるリクエストにヘッダーを追加します。既に同名のヘッダーが存在する場合、新しい値は元の値に追加されます。 |
mse.ingress.kubernetes.io/request-header-control-update | バックエンドサービスへ転送されるリクエストのヘッダーを変更します。既に同名のヘッダーが存在する場合、新しい値で元の値が上書きされます。 |
mse.ingress.kubernetes.io/request-header-control-remove | リクエストからヘッダーを削除します。単一のキー、またはカンマ(,)で区切られた複数のキーを指定できます。 |
mse.ingress.kubernetes.io/response-header-control-add | バックエンドサービスから受信した応答をクライアントへ転送する前にヘッダーを追加します。既に同名のヘッダーが存在する場合、新しい値は元の値に追加されます。 |
mse.ingress.kubernetes.io/response-header-control-update | バックエンドサービスから受信した応答のヘッダーを変更します。既に同名のヘッダーが存在する場合、新しい値で元の値が上書きされます。 |
mse.ingress.kubernetes.io/response-header-control-remove | 応答からヘッダーを削除します。単一のキー、またはカンマ(,)で区切られた複数のキーを指定できます。 |
例 — 複数のリクエストヘッダー:
annotations:
mse.ingress.kubernetes.io/request-header-control-add: |
x-custom-header: value1
x-another-header: value2
mse.ingress.kubernetes.io/request-header-control-remove: x-remove-me,x-also-remove
タイムアウト
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
mse.ingress.kubernetes.io/timeout | Ingress | MSE 専用 | リクエストのタイムアウト(秒単位)。デフォルトではタイムアウトは設定されません。 |
タイムアウトは、TCP トランスポート層ではなく、アプリケーション層(HTTP)で適用されます。
リトライ
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
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 専用 | ミラーされたトラフィックの送信先サービスです。フォーマット: 名前空間/名前:ポート。名前空間 および ポート フィールドは任意です。名前空間 は Ingress ゲートウェイの名前空間がデフォルト、ポート は最初のポートがデフォルトです。 |
mse.ingress.kubernetes.io/mirror-percentage | Ingress | MSE 専用(ゲートウェイ V1.2.32 以降が必要) | ミラーするトラフィックの割合です。有効値: 0–100。デフォルト値: 100。 |
ドメインエイリアス
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
nginx.ingress.kubernetes.io/server-alias | ドメイン名 | 部分的に互換(ゲートウェイ V1.2.30 以降が必要。完全一致およびワイルドカードドメインのみサポート) | Ingress スペックで定義されたホストのドメインエイリアスです。エイリアスは、ソースドメインと TLS、ルーティング、およびトラフィックガバナンスの構成を共有します。 |
単一ゲートウェイの速度制限(非推奨)
これらの単一ゲートウェイの速度制限アノテーションは非推奨となります。代わりに、グローバル速度制限 アノテーションをご利用ください。
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
mse.ingress.kubernetes.io/route-limit-rpm | Ingress | MSE 専用 | ゲートウェイごとの最大リクエスト数/分(RPM)。バースト制限 = 値 × route-limit-burst-multiplier。トリガー時の応答本文: local_rate_limited。ステータスコード: 503(V1.2.23 より前のゲートウェイ)または 429(V1.2.23 以降のゲートウェイ)。 |
mse.ingress.kubernetes.io/route-limit-rps | Ingress | MSE 専用 | ゲートウェイごとの最大リクエスト数/秒(RPS)。バースト制限 = 値 × route-limit-burst-multiplier。トリガー時の応答本文: local_rate_limited。ステータスコード: 503(V1.2.23 より前のゲートウェイ)または 429(V1.2.23 以降のゲートウェイ)。 |
mse.ingress.kubernetes.io/route-limit-burst-multiplier | Ingress | MSE 専用 | バースト制限の乗数です。デフォルト値: 5。 |
グローバル速度制限(推奨)
これらのアノテーションは、ゲートウェイ V1.2.25 以降が必要です。rate-limit-fallback-custom-response-code および rate-limit-fallback-redirect-url は相互排他であり、いずれか一方のみを指定してください。
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
mse.ingress.kubernetes.io/rate-limit | Ingress | MSE 専用 | ルートごとの最大 RPS です。グローバル速度制限に使用されます。 |
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-code | Ingress | MSE 専用 | 速度制限がトリガーされた際に返される HTTP ステータスコードです。デフォルト値: 429。rate-limit-fallback-redirect-url とは相互排他です。 |
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body-type | Ingress | MSE 専用 | 速度制限がトリガーされた際の応答本文のフォーマットです。text → text/plain; charset=UTF-8。json → application/json; charset=UTF-8。デフォルト値: text。 |
mse.ingress.kubernetes.io/rate-limit-fallback-custom-response-body | Ingress | MSE 専用 | 速度制限がトリガーされた際の応答本文の内容です。デフォルト値: sentinel rate limited。 |
mse.ingress.kubernetes.io/rate-limit-fallback-redirect-url | Ingress | MSE 専用 | 速度制限がトリガーされた際のリダイレクト URL です。rate-limit-fallback-custom-response-code とは相互排他です。 |
例 — 速度制限時にカスタム JSON エラーを返す:
annotations:
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"}'
グローバル同時実行制御
これらのアノテーションは、ゲートウェイ V1.2.25 以降が必要です。concurrency-limit-fallback-custom-response-code および concurrency-limit-fallback-redirect-url は相互排他であり、いずれか一方のみを指定してください。
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
mse.ingress.kubernetes.io/concurrency-limit | Ingress | MSE 専用 | ルートごとの最大同時実行リクエスト数です。 |
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-code | Ingress | MSE 専用 | 同時実行制御がトリガーされた際に返される HTTP ステータスコードです。デフォルト値: 429。concurrency-limit-fallback-redirect-url とは相互排他です。 |
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-body-type | Ingress | MSE 専用 | 同時実行制御がトリガーされた際の応答本文のフォーマットです。text → text/plain; charset=UTF-8。json → application/json; charset=UTF-8。デフォルト値: text。 |
mse.ingress.kubernetes.io/concurrency-limit-fallback-custom-response-body | Ingress | MSE 専用 | 同時実行制御がトリガーされた際の応答本文の内容です。デフォルト値: sentinel rate limited。 |
mse.ingress.kubernetes.io/concurrency-limit-fallback-redirect-url | Ingress | MSE 専用 | 同時実行制御がトリガーされた際のリダイレクト URL です。concurrency-limit-fallback-custom-response-code とは相互排他です。 |
バックエンドプロトコル
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
nginx.ingress.kubernetes.io/backend-protocol | サービス | 部分的に互換(AJP および FCGI は非対応) | バックエンドサービスで使用されるプロトコルです。デフォルト値: HTTP。有効値: HTTP、HTTP2、HTTPS、gRPC、gRPCS。 |
負荷分散
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
nginx.ingress.kubernetes.io/load-balance | サービス | 部分的に互換(指数加重移動平均 (EWMA) は非対応。デフォルトで round-robin にフォールバック) | バックエンドサービスの負荷分散アルゴリズムです。デフォルト値: round_robin。有効値: round_robin(ラウンドロビン)、least_conn(最少接続数)、random(ランダム)。 |
nginx.ingress.kubernetes.io/upstream-hash-by | サービス | 部分的に互換(NGINX 変数と定数の組み合わせは非対応) | 一貫性のあるハッシュ化アルゴリズムです。サポートされるハッシュキー: $request_uri(パラメーターを含むリクエストパス)、$host(リクエストホスト)、$remote_addr(クライアント IP アドレス)、$http_<headerName>(リクエストヘッダーの値)、$arg_<varName>(URL クエリパラメーターの値)。 |
サービスプリフェッチ(グレースフル起動)
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
mse.ingress.kubernetes.io/warmup | サービス | MSE 専用 | ウォームアップの持続時間(秒単位)です。デフォルトでは、サービスプリフェッチ機能は無効です。 |
重要 サービスプリフェッチを利用するには、負荷分散アルゴリズムとして round-robin または least connections を指定する必要があります。他のアルゴリズムではサポートされません。
クッキーによるセッション保持
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
nginx.ingress.kubernetes.io/affinity | サービス | 互換性あり | セッション保持のタイプです。有効な値は cookie のみです。 |
nginx.ingress.kubernetes.io/affinity-mode | サービス | 部分的に互換(persistent モードは非対応) | セッション保持のモードです。有効な値は balanced のみです。 |
nginx.ingress.kubernetes.io/session-cookie-name | サービス | 対応済み | セッション保持のハッシュキーとして使用されるクッキー名です。 |
nginx.ingress.kubernetes.io/session-cookie-path | サービス | 互換性あり | 生成されたセッションクッキーに設定されるパスです。デフォルト値: /。 |
nginx.ingress.kubernetes.io/session-cookie-max-age | サービス | 対応 | 生成されたセッションクッキーの最大有効期限(秒単位)です。デフォルト値: セッションレベル(Max-Age は設定されません)。 |
nginx.ingress.kubernetes.io/session-cookie-expires | サービス | 互換性あり | 生成されたセッションクッキーの有効期限(秒単位)です。デフォルト値: セッションレベル(Expires は設定されません)。 |
IP アドレスベースのアクセス制御
ルートレベルのアクセス制御は、ドメインレベルのアクセス制御よりも優先されます。ルートレベルのポリシー内では、denylist-source-range が blacklist-source-range よりも優先されます。
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
nginx.ingress.kubernetes.io/whitelist-source-range | Ingress | 互換性あり | ルート向けの IP アドレスホワイトリストです。IP アドレスおよび CIDR ブロックをカンマで区切って指定できます。 |
nginx.ingress.kubernetes.io/denylist-source-range | Ingress | 互換(ゲートウェイ V1.2.31 以降が必要) | ルート向けの IP アドレスブラックリストです。IP アドレスおよび CIDR ブロックをカンマで区切って指定できます。mse.ingress.kubernetes.io/blacklist-source-range よりも優先されます。 |
mse.ingress.kubernetes.io/blacklist-source-range | Ingress | MSE 専用 | ルート向けの IP アドレスブラックリストです。IP アドレスおよび CIDR ブロックをカンマで区切って指定できます。 |
mse.ingress.kubernetes.io/domain-whitelist-source-range | Ingress | MSE 専用 | ドメインレベルで適用される IP アドレスホワイトリストです。ルートレベルのホワイトリストが優先されます。 |
mse.ingress.kubernetes.io/domain-blacklist-source-range | Ingress | MSE 専用 | ドメインレベルで適用される IP アドレスブラックリストです。ルートレベルのブラックリストが優先されます。 |
接続プール(ゲートウェイからバックエンドへ)
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
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 専用 | ゲートウェイとバックエンドサービス間の TCP 接続あたりの最大 HTTP リクエスト数です。 |
セキュリティ保護
クライアントからゲートウェイへの TLS
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
mse.ingress.kubernetes.io/tls-min-protocol-version | ドメイン名 | MSE 専用 | 最小 TLS バージョンです。デフォルト値: TLSv1.0。有効値: TLSv1.0、TLSv1.1、TLSv1.2、TLSv1.3。 |
mse.ingress.kubernetes.io/tls-max-protocol-version | ドメイン名 | MSE 専用 | 最大 TLS バージョンです。デフォルト値: TLSv1.3。有効値: TLSv1.0、TLSv1.1、TLSv1.2、TLSv1.3。 |
nginx.ingress.kubernetes.io/ssl-cipher | ドメイン名 | 互換 | TLS 暗号スイートです。カンマで区切ります。TLS 1.0–1.2 のハンドシェイク時のみ適用されます。デフォルトの暗号スイート: 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 証明書です。 |
例 — TLS 1.2 以降を必須とし、特定の暗号スイートを指定:
annotations:
mse.ingress.kubernetes.io/tls-min-protocol-version: TLSv1.2
mse.ingress.kubernetes.io/tls-max-protocol-version: TLSv1.3
nginx.ingress.kubernetes.io/ssl-cipher: ECDHE-RSA-AES256-GCM-SHA384,ECDHE-ECDSA-AES256-GCM-SHA384
ゲートウェイからバックエンドへの 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 を有効化します。 |
認証
MSE Ingress は HTTP ベーシック認証をサポートしています。これらのアノテーションを併用して、シークレット名、フォーマット、および任意のレルムを構成します。
| アノテーション | 範囲 | 対応状況 | 説明 |
|---|
nginx.ingress.kubernetes.io/auth-type | Ingress | 部分的に互換(basic のみ対応) | 認証タイプです。 |
nginx.ingress.kubernetes.io/auth-secret | Ingress | 互換 | 認証情報が格納された Kubernetes シークレットです。フォーマット: <名前空間>/<名前>。 |
nginx.ingress.kubernetes.io/auth-secret-type | Ingress | 互換 | シークレットのデータ形式です。auth-file: auth キーに改行区切りの username:password エントリが格納されます。auth-map: 各キーがユーザー名、その値がパスワードになります。 |
nginx.ingress.kubernetes.io/auth-realm | Ingress | 互換性あり | 認証レルムです。同一レルム内のルート間で認証情報が共有されます。 |
NGINX Ingress アノテーションの詳細については、「アノテーション」をご参照ください。