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

Container Service for Kubernetes:コンソールまたはアノテーションを使用して ALB Ingress の転送ルールをカスタマイズする

最終更新日:Nov 09, 2025

ALB Ingress は、カスタム転送ルールをサポートしています。転送ルールは、転送条件と転送アクションで構成されます。リクエストのドメイン名、パス、リクエストヘッダー、クエリ文字列、リクエストメソッド、Cookie、またはソース IP に基づいてカスタム転送条件を定義できます。また、固定レスポンスの返却、リダイレクトの作成、リクエストヘッダーの挿入または削除、トラフィックのミラーリング、複数のバックエンドサーバーグループへのリクエストの転送、リクエストの書き換えなどのカスタム転送アクションを定義することもできます。これらのカスタム転送ルールは、コンソールで設定するか、Ingress リソースにアノテーションを追加することで設定できます。

シナリオインデックス

カスタムルール

シナリオ

転送条件

転送アクション

転送条件とアクションの実践

シナリオ 1: ドメイン名条件とアクションに基づいて特定のサービスにトラフィックを転送する

前提条件

ALB Ingress Controller コンポーネントがインストールされていること。コンポーネントのバージョンは v2.5.0 以降である必要があります。詳細については、「コンポーネントの管理」をご参照ください。

転送条件

重要
  • 転送ルールには最大 10 個の条件を設定できます。

  • `ResponseHeader` および `ResponseStatusCode` 転送条件は、カスタムレスポンス転送ルールに対してのみ有効です。

転送条件の概要

ALB Ingress の alb.ingress.kubernetes.io/conditions.<service-name> アノテーションで転送条件を設定できます。異なる条件ブロックは AND 論理演算子で結合されます。同じ条件ブロック内の値は OR 論理演算子で結合されます。たとえば、2 つの異なる `Header` 条件ブロックを設定した場合、それらは AND 論理演算子で結合されます。ただし、単一の `Header` 条件ブロック内で指定された値は OR 論理演算子で結合されます。次の表に、転送条件を示します。

転送条件

説明

ドメイン名

リクエストドメイン名に一致します。一致するドメイン名を持つリクエストのみがサービスにアクセスできます。次のコードに例を示します。

alb.ingress.kubernetes.io/conditions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
  [{
      "type": "Host",
      "hostConfig": {
        "values": [
          "anno.example.com"
        ]
      }
  }]
  • type: 一致タイプ。ドメイン名に一致させるには、これを Host に設定します。

  • HostConfig: 一致させる特定のドメイン名。複数のドメイン名を指定した場合、それらは OR 関係になります。

パス

リクエストパスに一致します。一致するパスを持つリクエストのみがサービスにアクセスできます。次のコードに例を示します。

alb.ingress.kubernetes.io/conditions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
  [{
    "type": "Path",
    "pathConfig": {
      "values": [
        "/pathvalue1",
        "/pathvalue2"
      ]
    }
  }]
  • type: 一致タイプ。リクエストパスに一致させるには、これを Path に設定します。

  • pathConfig: 一致させる特定のパス。複数のパスを指定した場合、それらは OR 関係になります。

ヘッダー

リクエストヘッダーに一致します。一致するヘッダーを持つリクエストのみがサービスにアクセスできます。次のコードに例を示します。

alb.ingress.kubernetes.io/conditions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
  [{
    "type": "Header",
    "headerConfig": {
      "key": "headername",
      "values": [
        "headervalue1",
        "headervalue2"
      ]
     }
  }]
  • type: 一致タイプ。リクエスト内のヘッダーに一致させるには、これを Header に設定します。

  • headerConfig: ヘッダーのキーと値のペア。複数のヘッダー値を指定した場合、それらは OR 関係になります。

クエリ文字列

クエリ文字列に一致します。一致するクエリ文字列を含むリクエストのみがサービスにアクセスできます。次のコードに例を示します。

alb.ingress.kubernetes.io/conditions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
  [{
    "type": "QueryString",
    "queryStringConfig": {
      "values": [
        {
           "key":"querystringkey1",
           "value":"querystringvalue2"
        }
      ]
    }
  }]
  • type: 一致タイプ。リクエストのクエリ文字列に一致させるには、これを QueryString に設定します。

  • queryStringConfig: クエリ文字列のキーと値のペア。キーの長さは 1 ~ 100 文字です。値の長さは 1 ~ 100 文字です。キーと値には、小文字、表示可能な文字、ワイルドカード文字のアスタリスク (*) と疑問符 (?) を含めることができます。スペースや次の文字を含めることはできません: #[]{}\|<>&。複数のクエリ文字列を指定した場合、それらは OR 関係になります。

リクエストメソッド

リクエストメソッドに一致します。一致するメソッドを持つリクエストのみがサービスにアクセスできます。次のコードに例を示します。

alb.ingress.kubernetes.io/conditions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
  [{
    "type": "Method",
    "methodConfig": {
      "values": [
        "GET",
        "HEAD"
      ]
    }
  }]
  • type: 一致タイプ。リクエストメソッドに一致させるには、これを Method に設定します。

  • methodConfig: 特定のリクエストメソッド。有効な値は GET、POST、PUT、DELETE、HEAD、OPTIONS、および PATCH です。複数のリクエストメソッドを指定した場合、それらは OR 関係になります。

Cookie

Cookie に一致します。一致する Cookie を含むリクエストのみがサービスにアクセスできます。次のコードに例を示します。

alb.ingress.kubernetes.io/conditions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
  [{
    "type": "Cookie",
    "cookieConfig": {
      "values": [
        {
           "key":"cookiekey1",
           "value":"cookievalue2"
        }
      ]
     }
  }]
  • type: 一致タイプ。Cookie に一致させるには、これを Cookie に設定します。

  • cookieConfig: Cookie のキーと値のペア。キーの長さは 1 ~ 100 文字です。値の長さは 1 ~ 100 文字です。キーと値には、小文字、表示可能な文字、ワイルドカード文字のアスタリスク (*) と疑問符 (?) を含めることができます。スペースや次の文字を含めることはできません: #[]{}\|<>&。複数の Cookie を指定した場合、それらは OR 関係になります。

ソース IP

リクエストのソース IP アドレスに一致します。一致するソース IP アドレスからのリクエストのみがサービスにアクセスできます。次のコードに例を示します。

alb.ingress.kubernetes.io/conditions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
  [{
    "type": "SourceIp",
    "sourceIpConfig": {
      "values": [
        "192.168.0.0/16",
        "172.16.0.0/16"
      ]
    }
  }]
  • type: 一致タイプ。リクエストのソース IP アドレスに一致させるには、これを SourceIP に設定します。

  • sourceIpConfig: リクエストの IP アドレス。複数の IP アドレスを指定した場合、それらは OR 関係になります。

ResponseHeader

レスポンスヘッダーに一致します。転送アクションは、一致するヘッダーを持つレスポンスに対してのみ実行されます。これは、レスポンス転送アクションおよび alb.ingress.kubernetes.io/rule-direction.<service-name>: Response アノテーションと共に使用する必要があることに注意してください。次のコードに例を示します。

alb.ingress.kubernetes.io/conditions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
  [{
    "type": "ResponseHeader",
    "headerConfig": {
      "key": "headername",
      "values": [
        "headervalue1",
        "headervalue2"
      ]
     }
  }]
  • type: 一致タイプ。レスポンス内のヘッダーに一致させるには、これを ResponseHeader に設定します。

  • headerConfig: ヘッダーのキーと値のペア。複数のヘッダー値を指定した場合、それらは OR 関係になります。

ResponseStatusCode

レスポンスステータスコードに一致します。一致するステータスコードを返すレスポンスのみがサービスにアクセスできます。これは、レスポンス転送アクションおよび alb.ingress.kubernetes.io/rule-direction.<service-name>: Response アノテーションと共に使用する必要があることに注意してください。次のコードに例を示します。

alb.ingress.kubernetes.io/conditions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
  [{
    "type": "ResponseStatusCode",
    "responseStatusCodeConfig": {
      "values": [
        "statuscode1",
        "statuscode2"
      ]
    }
  }]
  • type: 一致タイプ。レスポンスステータスコードに一致させるには、これを ResponseStatusCode に設定します。

  • responseStatusCodeConfig: 特定のレスポンスステータスコード。複数のレスポンスステータスコードを指定した場合、それらは OR 関係になります。

シナリオ 1: ソース IP とヘッダーに基づいてトラフィックを分散する

重要

転送ルールのカスタム条件には、最大 5 つのソース IP アドレスを指定できます。

次のコードブロックは、リクエストのソース IP、ヘッダー、およびパスが設定に一致する場合にのみ、トラフィックをターゲットに転送するルールを定義します。

リクエストのソース IP アドレスが 192.168.0.0/16 または 172.16.0.0/16 CIDR ブロックにあり、リクエストヘッダーに値が value1 または value2gray-hello が含まれ、リクエストパスが /hello の場合、リクエストは gray-hello-svc サービスに転送されます。それ以外の場合、リクエストは他のサービスに転送されます。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
   alb.ingress.kubernetes.io/order: "1"
   alb.ingress.kubernetes.io/conditions.gray-hello-svc: | # 注: このアノテーションの "gray-hello-svc" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
     [{
       "type": "Header",
       "headerConfig": {
          "key":"gray-hello",
           "values": [
              "value1",
              "value2"
           ]
       }
      },
      {
         "type": "SourceIp",
         "sourceIpConfig": {
           "values": [
             "192.168.0.0/16",
             "172.16.0.0/16"
           ]
         }
     }]
  name: gray-hello-ingress
spec:
  ingressClassName: alb
  rules:
   - http:
      paths:
      - path: /hello
        pathType: ImplementationSpecific
        backend:
          service:
            name: gray-hello-svc # 注: ここで設定されたバックエンドサービス名は、カスタム転送条件アノテーションの "gray-hello-svc" と一致する必要があります。アノテーションで設定された転送条件は、このバックエンドサービスに適用されます。
            port:
              number: 88

alb.ingress.kubernetes.io/order: Ingress の優先順位を指定します。数値が小さいほど優先順位が高くなります。

シナリオ 2: ドメイン名、リクエストメソッド、Cookie に基づいてトラフィックを分散する

次のコードブロックは、リクエストのドメイン名、リクエストメソッド、およびリクエスト Cookie が設定に一致する場合にのみ、トラフィックをターゲットに転送するルールを定義します。

リクエストメソッドが GET または HEAD、リクエストドメイン名が example.com または *.edu、リクエスト Cookie のキーが cookiekey1 で値が cookievalue1、リクエストパスが /test の場合、リクエストは service-a サービスに転送されます。それ以外の場合、リクエストは service-b サービスに転送されます。

説明

ドメイン名に基づく転送ルールは、ワイルドカードドメイン名をサポートしています。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
   alb.ingress.kubernetes.io/conditions.service-a: | # 注: このアノテーションの "service-a" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
     [{
       "type": "Cookie",
       "cookieConfig": {
         "values": [
           {
             "key":"cookiekey1",
             "value":"cookievalue1"
           }
        ]
       }
      },
      {
       "type": "Method",
       "methodConfig": {
         "values": [
           "GET",
           "HEAD"
         ]
       }
      },
     {
       "type": "Host",
       "hostConfig": {
           "values": [
              "example.com",
              "*.edu" 
           ]
       }
      }]
  name: ingress-example
spec:
  ingressClassName: alb
  rules:
   - http:
      paths:
      - path: /test
        pathType: ImplementationSpecific
        backend:
          service:
            name: service-a # 注: ここで設定されたバックエンドサービス名は、カスタム転送条件アノテーションの "service-a" と一致する必要があります。アノテーションで設定された転送条件は、このバックエンドサービスに適用されます。
            port:
              number: 88
      - path: /test
        pathType: ImplementationSpecific
        backend:
          service:
            name: service-b
            port:
              number: 88

シナリオ 3: クエリ文字列、複数のヘッダー、複数のパスに基づいてトラフィックを分散する

次のコードブロックは、リクエストのクエリ文字列、ヘッダー、およびパスが設定に一致する場合にのみ、トラフィックをターゲットに転送するルールを定義します。

リクエストパスが /pathvalue1/pathvalue2、または /test、クエリ文字列のキーが querystringkey1 で値が querystringvalue2、リクエストヘッダーに headerkey1headerkey2 の両方のヘッダーが含まれ、headerkey1 ヘッダーの値が headervalue1 または headervalue2headerkey2 ヘッダーの値が headervalue3 または headervalue4 の場合、リクエストは service-a サービスに転送されます。それ以外の場合、リクエストは service-b サービスに転送されます。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
   alb.ingress.kubernetes.io/conditions.service-a: | # 注: このアノテーションの "service-a" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
     [{
       "type": "Path",
       "pathConfig": {
           "values": [
              "/pathvalue1",
              "/pathvalue2"
           ]
       }
      },
      {
       "type": "QueryString",
       "queryStringConfig": {
         "values": [
           {
             "key":"querystringkey1",
             "value":"querystringvalue2"
           }
        ]
       }
      },
     {
       "type": "Header",
       "headerConfig": {
          "key":"headerkey1",
           "values": [
              "headervalue1",
              "headervalue2"
           ]
       }
     },
     {
       "type": "Header",
       "headerConfig": {
          "key":"headerkey2",
           "values": [
              "headervalue3",
              "headervalue4"
           ]
       }
     }]
  name: ingress-example
spec:
  ingressClassName: alb
  rules:
   - http:
      paths:
      - path: /test
        pathType: ImplementationSpecific
        backend:
          service:
            name: service-a # 注: ここで設定されたバックエンドサービス名は、カスタム転送条件アノテーションの "service-a" と一致する必要があります。アノテーションで設定された転送条件は、このバックエンドサービスに適用されます。
            port:
              number: 88
      - path: /test
        pathType: ImplementationSpecific
        backend:
          service:
            name: service-b
            port:
              number: 88

転送アクション

転送アクションの概要

alb.ingress.kubernetes.io/actions.<service-name> アノテーションを使用して、リクエストとレスポンスの転送アクションを設定できます。サポートされているアクションには、固定レスポンスの返却、リダイレクトの作成、リクエストヘッダーの挿入または削除、トラフィックミラーリング、複数のバックエンドサーバーグループへのリクエストの転送、リクエストの書き換えなどがあります。

重要
  • alb.ingress.kubernetes.io/actions.<service-name> アノテーションの場合、アノテーション内のサービス名が rule フィールドの backend の下のサービス名と一致していることを確認してください。

  • 同じ転送ルールでは、リダイレクト、固定レスポンス、複数のサーバーグループへの転送など、1 つの終端転送アクションのみを使用できます。

  • リダイレクト、固定レスポンス、または複数のサーバーグループへの転送を設定する場合、backend.service.port.nameuse-annotation に設定する必要があります。

リクエスト転送アクション

転送アクション

説明

固定レスポンス

ALB を介してクライアントに固定レスポンスを返します。レスポンスのステータスコード、コンテンツ、およびコンテンツタイプを設定できます。次のコードに例を示します。

alb.ingress.kubernetes.io/actions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
  [{
      "type": "FixedResponse",
      "FixedResponseConfig": {
          "contentType": "text/plain",
          "httpCode": "503",
          "content": "503 error text"
      }
  }]
  • type: 転送アクションのタイプ。固定レスポンスを設定するには、これを FixedResponse に設定します。

  • contentType: レスポンス本文のコンテンツタイプ。

  • httpCode: レスポンスステータスコード。

  • content: レスポンス本文。

リダイレクト

HTTP 3xx ステータスコードを使用して、クライアントを別のアドレスに誘導してサービスにアクセスさせます。次のコードに例を示します。

重要

httpCode を除き、他のリダイレクトパラメーターをすべてデフォルト値に設定することはできません。

alb.ingress.kubernetes.io/actions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
  [{
      "type": "Redirect",
      "RedirectConfig": {
          "host": "${host}",
          "path": "${path}",
          "port": "443",
          "protocol": "${protocol}",
          "query": "${query}",
          "httpCode": "301"
      }
  }]
  • type: 転送アクションのタイプ。リダイレクトを設定するには、これを Redirect に設定します。

  • host: リクエストがリダイレクトされるドメイン名。

  • path: リクエストがリダイレクトされるパス。

  • port: リクエストがリダイレクトされるポート。

  • protocol: リクエストがリダイレクトされるプロトコル。

  • query: リクエストがリダイレクトされるクエリ文字列。

  • httpCode: ステータスコード。

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

トラフィックミラーリング用のサーバーグループの ID を設定します。これにより、リクエストがコピーされ、トラフィックミラーリングサーバーグループに転送されます。次のコードに例を示します。

重要
  • トラフィックミラーリングアクションは、転送、ヘッダーの挿入、ヘッダーの削除、およびトラフィックスロットリングとのみ使用できます。書き換え、固定レスポンス、またはリダイレクトとは使用できません。

  • トラフィックミラーリングサーバーグループは、ServerGroupID を使用してのみアタッチできます。

alb.ingress.kubernetes.io/actions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
      [{
          "type": "TrafficMirror",
          "TrafficMirrorConfig": {
              "TargetType" : "ForwardGroupMirror",
              "MirrorGroupConfig": {
                  "ServerGroupTuples" : [{
                      "ServerGroupID": "sgp-2auud2fxj1r46*****"
                  }]
              }
           }
      }]
  • type: 転送アクションのタイプ。トラフィックミラーリングを設定するには、これを TrafficMirror に設定します。

  • TargetType: ミラーリングのターゲットタイプ。現在、サーバーグループにリクエストをミラーリングする ForwardGroupMirror のみがサポートされています。

  • ServerGroupID: トラフィックミラーリングサーバーグループの ID。

複数のバックエンドサーバーグループへの転送

ALB リクエストを複数のバックエンドサーバーグループに転送します。ServerGroupID を使用してバックエンドサーバーグループを指定するか、ServiceName+ServicePort を使用してサーバーグループを作成またはアタッチできます。各バックエンドサーバーグループへのリクエスト転送の重みを設定し、サーバーグループ間のセッション維持を有効にすることができます。

重要
  • Standard Edition の ALB インスタンスは、最大 5 つのサーバーグループにアタッチできます。

  • ServerGroupIDServiceName+ServicePort の両方を使用してサーバーグループをアタッチする場合、バックエンドサーバーグループは ServerGroupID に基づいて優先的に照合されます。

  • サーバーグループ間のセッション維持を有効にすると、ALB Ingress は同じセッションからのリクエストを同じバックエンドに転送します。

alb.ingress.kubernetes.io/actions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
       [{
           "type": "ForwardGroup",
           "ForwardConfig": {
             "ServerGroups" : [{
               "ServiceName": "tea-svc",
               "Weight": 30,
               "ServicePort": 80
             },
             {
               "ServiceName": "coffee-svc",
               "Weight": 20,
               "ServicePort": 80
             },
             {
               "ServerGroupID": "sgp-71aexb9y93ypo*****",
               "Weight": 20
             },
             {
               "ServerGroupID": "sgp-slygpbvm2cydo*****",
               "Weight": 30
             }],
             "ServerGroupStickySession": {
              "Enabled": true,
              "Timeout": 80
             }
           }
       }]
  • type: 転送アクションのタイプ。複数のバックエンドサーバーグループへの転送を設定するには、これを ForwardGroup に設定します。

  • ForwardConfig: バックエンド転送サーバーグループの特定のパラメーター。複数のサーバーグループを設定した場合、リクエストはそれぞれの重みに基づいて各サーバーグループに転送されます。

  • ServerGroupID: サーバーグループの ID。

  • ServiceName: サービスの名前。

  • ServicePort: サービスのポート。

  • Weight: 各サーバーグループにリクエストを転送するための重み。

  • Enabled: サーバーグループ間のセッション維持を有効にするかどうかを指定します。

  • Timeout: サーバーグループ間のセッション維持のタイムアウト期間。

書き換え

ALB の書き換え機能を有効にします。これにより、リクエストのドメイン名、パス、およびクエリ文字列が上書きされます。次のコードに例を示します。

重要
  • 書き換え転送アクションは rewrite-target アノテーションと競合します。一緒に使用しないでください。

  • 書き換えアクションは、固定レスポンスまたはリダイレクト転送アクションとは使用できません。

alb.ingress.kubernetes.io/actions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
       [{
           "type": "Rewrite",
           "RewriteConfig": {
               "Host": "demo.domain.ingress.top",
               "Path": "/test",
               "Query": "querystring"
           }
       }]
  • type: 転送アクションのタイプ。Rewrite に設定すると、現在の ALB が書き換え機能をサポートしていることを示します。

  • RewriteConfig: 書き換えの特定のパラメーター。

  • Host: 書き換えに一致させる特定のドメイン名。

  • Path: 書き換えに一致させる特定のパス。

  • Query: 書き換えに一致させる特定のクエリ文字列。

書き換えルールの詳細については、「書き換えのサポート」をご参照ください。

リクエストヘッダーの挿入

ヘッダーフィールド名とコンテンツを設定します。これにより、リクエスト内の既存のヘッダー変数が上書きされます。次のコードに例を示します。

alb.ingress.kubernetes.io/actions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
  [{
      "type": "InsertHeader",
      "InsertHeaderConfig": {
          "key": "key",
          "value": "value",
          "valueType": "UserDefined"
      }
  }]
  • type: 転送アクションのタイプ。リクエストヘッダーの挿入を設定するには、これを InsertHeader に設定します。

  • key: リクエストヘッダーのフィールド名。

  • value: リクエストヘッダーのフィールドコンテンツ。

  • valueType: 値のタイプ。

リクエストヘッダーの削除

ヘッダーフィールド名とコンテンツを削除します。次のコードに例を示します。

alb.ingress.kubernetes.io/actions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
     [{
         "type": "RemoveHeader",
         "RemoveHeaderConfig": {
             "key": "key"
         }
     }]

type: 転送アクションのタイプ。リクエストヘッダーの削除を設定するには、これを RemoveHeader に設定します。

key: リクエストヘッダーのフィールド名。

QPS スロットリング

ALB の転送ルールを設定する際に、全体的なリクエストレート制限と、クライアントのソース IP に基づくリクエストレート制限の両方を設定できます。

次のコードに設定例を示します。

重要
  • QPS スロットリング転送アクションは、サーバーグループへの転送と併用する必要があります。

  • X-Forwarded-For リクエストヘッダーに複数の IP アドレス (例: X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, ...) が含まれている場合、一番左のアドレスが実際のクライアント IP です。クライアントのソース IP に基づくスロットリングを使用するには、リスナーで実際のクライアントソース IP を見つける機能を有効にする必要があります。これにより、ALB は X-Forwarded-For ヘッダーフィールドから実際のクライアントソース IP を見つけることができます。詳細については、「XForwardedForConfig」をご参照ください。

 annotations:
    alb.ingress.kubernetes.io/actions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
      [{
          "type": "TrafficLimit",
          "TrafficLimitConfig": {
              "QPS": "1000",
              "QPSPerIp": "100"
          }
      }]
  • type: 転送アクションのタイプを指定します。ここでは、スロットリング設定を示す TrafficLimit に設定されています。

  • QPS: 全体的なリクエストレート制限で、1 秒あたりに処理できるリクエストの数です。値は [1, 1000000] の範囲内である必要があります。リクエストレートが指定された制限を超えると、制限を超える新しい接続リクエストは拒否され、クライアントは HTTP 503 ステータスコードを受け取ります。

  • QPSPerIp: 各クライアントソース IP に基づくリクエストレート制限。値は [1, 1000000] の範囲内である必要があります。QPS (全体的な制限) と QPSPerIp (クライアントソース IP に基づく制限) の両方が設定されている場合、後者の値は前者よりも小さくなければなりません。リクエストレートが指定された制限を超えると、制限を超えるリクエストは拒否され、クライアントは HTTP 503 ステータスコードを受け取ります。

レスポンス転送アクション

転送アクション

説明

リクエストヘッダーの挿入

ヘッダーフィールド名とコンテンツを設定します。これにより、リクエスト内の既存のヘッダー変数が上書きされます。次のコードに例を示します。

alb.ingress.kubernetes.io/actions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
  [{
      "type": "InsertHeader",
      "InsertHeaderConfig": {
          "key": "key",
          "value": "value",
          "valueType": "UserDefined"
      }
  }]
  • type: 転送アクションのタイプ。リクエストヘッダーの挿入を設定するには、これを InsertHeader に設定します。

  • key: リクエストヘッダーのフィールド名。

  • value: リクエストヘッダーのフィールドコンテンツ。

  • valueType: 値のタイプ。

リクエストヘッダーの削除

ヘッダーフィールド名とコンテンツを削除します。次のコードに例を示します。

alb.ingress.kubernetes.io/actions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
     [{
         "type": "RemoveHeader",
         "RemoveHeaderConfig": {
             "key": "key"
         }
     }]

type: 転送アクションのタイプ。リクエストヘッダーの削除を設定するには、これを RemoveHeader に設定します。

key: リクエストヘッダーのフィールド名。

シナリオ 1: 503 ステータスコードとコンテンツで固定レスポンスを設定する

コンソール

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. クラスター ページで、目的のクラスターを見つけてその名前をクリックします。左側のペインで、[ネットワーク] > [Ingress] を選択します。

  3. [Ingress] ページで、[Ingress の作成] をクリックします。[Ingress の作成] ダイアログボックスで、Ingress を設定します。

    設定項目

    説明

    ゲートウェイタイプ

    [ALB Ingress][MSE Ingress]、または [Nginx Ingress] を選択できます。

    これらのゲートウェイタイプの違いの詳細については、「Nginx Ingress、ALB Ingress、および MSE Ingress の比較」をご参照ください。

    ALB

    名前

    Ingress のカスタム名。

    ingress

    Ingress クラス

    alb

    ルール

    • ドメイン名: 空のままにします

    • パスマッピング:

      • パス: /

      • 一致ルール: ImplementationSpecific (プレフィックス)

      • サービス名: response-503

      • ポート: 80

    カスタム転送ルール

    カスタム転送ルールを有効にして、インバウンドトラフィックを詳細に制御します。

    説明

    転送ルールには最大 10 個の条件を設定できます。

    • [転送条件] ドロップダウンリストから、次のいずれかを選択します。

      • [ドメイン名]:

        リクエストドメイン名に一致します。複数のドメイン名を指定した場合、それらは OR 関係になります。これを設定すると、alb.ingress.kubernetes.io/conditions.host-example アノテーションが追加されます。

      • [パス]:

        リクエストパスに一致します。複数のパスを指定した場合、それらは OR 関係になります。これを設定すると、alb.ingress.kubernetes.io/conditions.path-example アノテーションが追加されます。

      • [HTTP ヘッダー]:

        キーと値のペア形式でリクエストヘッダー情報に一致します。たとえば、[キーが次の場合]: headername[値が次の場合]: headervalue1。複数のヘッダー値を指定した場合、それらは OR 関係になります。これを設定すると、alb.ingress.kubernetes.io/conditions.http-header-example アノテーションが追加されます。

    • [転送アクション] ドロップダウンリストから、次を選択します。

      [固定レスポンスを返す]

      ALB を介してクライアントに固定レスポンスを返します。レスポンスのステータスコード、コンテンツ、およびコンテンツタイプを設定できます。必要に応じて、[レスポンスステータスコード][レスポンスコンテンツタイプ (オプション)]、および [レスポンスコンテンツ (オプション)] を設定します。

      レスポンスコンテンツタイプ:

      • [text/plain]: プレーンテキストのコンテンツタイプ。

      • [text/css]: CSS コンテンツを示します。

      • [text/html]: HTML コンテンツタイプ。

      • [application/javascript]: JavaScript コンテンツタイプ。

      • [application/json]: JSON コンテンツタイプ。

    • 転送条件: [パス] を選択します。(デフォルトのまま)

    • 転送アクション: [固定レスポンスを返す]

      • レスポンスステータスコード: 503

      • レスポンスコンテンツタイプ (オプション): [text/plain]

      • レスポンスコンテンツ (オプション): error

    他の設定はデフォルト値のままにします。

  4. 設定が完了したら、[OK] をクリックします。

kubectl

次のコードブロックは、サービスへのリクエストが行われたときに 503 ステータスコードとテキスト 503 error text を返す例を示しています。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: default
  name: ingress
  annotations:
    alb.ingress.kubernetes.io/actions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
      [{
          "type": "FixedResponse",
          "FixedResponseConfig": {
              "contentType": "text/plain",
              "httpCode": "503",
              "content": "503 error text"
          }
      }]
spec:
  ingressClassName: alb
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: service-name  # 注: ここで設定されたバックエンドサービス名は、カスタム転送アクションアノテーション alb.ingress.kubernetes.io/actions.service-name の "service-name" と一致する必要があります。アノテーションで設定された転送アクションは、このバックエンドサービスに適用されます。
                port:
                  name: use-annotation # servicePort の名前は use-annotation である必要があります。

シナリオ 2: HTTP 301 ステータスコードを使用して HTTPS ポートにリダイレクトする

次のコードブロックは、リクエストをサービスの HTTPS ポートにリダイレクトする例を示しています。

リダイレクト

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: default
  name: ingress
  annotations:
    alb.ingress.kubernetes.io/actions.redirect: | # 注: このアノテーションの "redirect" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
      [{
          "type": "Redirect",
          "RedirectConfig": {
              "host": "${host}",
              "path": "${path}",
              "port": "443",
              "protocol": "https",
              "query": "${query}",
              "httpCode": "301"
          }
      }]
spec:
  ingressClassName: alb
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: redirect # 注: ここで設定されたバックエンドサービス名は、カスタム転送アクションアノテーション alb.ingress.kubernetes.io/actions.redirect の "redirect" と一致する必要があります。アノテーションで設定された転送アクションは、このバックエンドサービスに適用されます。
                port:
                  name: use-annotation # servicePort の名前は use-annotation である必要があります。

複数のリダイレクト

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: default
  name: ingress
  annotations:
    alb.ingress.kubernetes.io/actions.redirect-1: |
      [{
          "type": "Redirect",
          "RedirectConfig": {
              "host": "${host}",
              "path": "${path}",
              "port": "443",
              "protocol": "https",
              "query": "${query}",
              "httpCode": "301"
          }
      }]
    alb.ingress.kubernetes.io/actions.redirect-2: |
      [{
          "type": "Redirect",
          "RedirectConfig": {
          "host": "${host}",
          "path": "${path}",
          "port": "443",
          "protocol": "https",
          "httpCode": "301"
          }
      }]
spec:
  ingressClassName: alb
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: redirect
                port:
                  name: use-annotation # servicePort の名前は use-annotation である必要があります。

シナリオ 3: source: alibaba リクエストヘッダーを挿入する

次のコードブロックは、サービスへのリクエストが行われたときに、元のリクエストヘッダーを source: alibaba で上書きする例を示しています。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: default
  name: ingress
  annotations:
    alb.ingress.kubernetes.io/actions.insert-header: | # 注: このアノテーションの "insert-header" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
      [{
          "type": "InsertHeader",
          "InsertHeaderConfig": {
              "key": "source",
              "value": "alibaba",
              "valueType": "UserDefined"
          }
      }]
spec:
  ingressClassName: alb
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: insert-header # 注: ここで設定されたバックエンドサービス名は、カスタム転送アクションアノテーション alb.ingress.kubernetes.io/actions.insert-header の "insert-header" と一致する必要があります。アノテーションで設定された転送アクションは、このバックエンドサービスに適用されます。
                port:
                  number: 80

シナリオ 4: サーバーグループにトラフィックをミラーリングする

次のコードブロックは、リクエストをトラフィックミラーリングサーバーグループにミラーリングする例を示しています。

Application Load Balancer (ALB) コンソールにログインします。左側のナビゲーションウィンドウで、[Application Load Balancer (ALB)] > [サーバーグループ] を選択します。[サーバーグループ] ページで、サーバーグループ ID を取得します。服务器组

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: traffic-mirror-ingress
  annotations:
  # mirror-svc は、以下に入力された backend.services の 1 つである必要があります。
  # ALB Ingress は、mirror-svc に転送されたトラフィックを "ServerGroupID" で指定されたバックエンドサーバーにミラーリングします。
  # 複数のサービスにトラフィックミラーリングを設定するには、各サービスに個別のアノテーションを追加します。
   alb.ingress.kubernetes.io/actions.mirror-svc: | # 注: このアノテーションの "mirror-svc" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
       [{
           "type": "TrafficMirror",
           "TrafficMirrorConfig": {
              "TargetType" : "ForwardGroupMirror",
              "MirrorGroupConfig": {
                  "ServerGroupTuples" : [{
                      "ServerGroupID": "sgp-2auud2fxj1r46*****"
                  }]
              }
           }
       }]
spec:
  ingressClassName: alb
  rules:
   - host: demo.domain.ingress.top
     http:
      paths:
      - path: /test
        pathType: Prefix
        backend:
          service:
            name: mirror-svc # 注: ここで設定されたバックエンドサービス名は、カスタム転送アクションアノテーション alb.ingress.kubernetes.io/actions.mirror-svc の "mirror-svc" と一致する必要があります。アノテーションで設定された転送アクションは、このバックエンドサービスに適用されます。
            port:
              number: 80

シナリオ 5: 複数のバックエンドサーバーグループにリクエストを転送する

コンソール

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. クラスター ページで、目的のクラスターを見つけてその名前をクリックします。左側のペインで、[ネットワーク] > [Ingress] を選択します。

  3. [Ingress] ページで、[Ingress の作成] をクリックします。[Ingress の作成] ダイアログボックスで、Ingress を設定します。

    設定項目

    説明

    ゲートウェイタイプ

    [ALB Ingress][MSE Ingress]、または [Nginx Ingress] を選択できます。

    これらのゲートウェイタイプの違いの詳細については、「Nginx Ingress、ALB Ingress、および MSE Ingress の比較」をご参照ください。

    Application Load Balancer (ALB)

    名前

    Ingress のカスタム名。

    forward-ingress

    Ingress クラス

    alb

    ルール

    • ドメイン名: demo.domain.ingress.top

    • パスマッピング:

      • パス: /path

      • 一致ルール: プレフィックス一致 (デフォルト)

      • サービス名: forward

      • ポート: 80

    カスタム転送ルール

    カスタム転送ルールを有効にして、インバウンドトラフィックを詳細に制御します。

    説明

    転送ルールには最大 10 個の条件を設定できます。

    • [転送条件] ドロップダウンリストから、次のいずれかを選択します。

      • [ドメイン名]:

        リクエストドメイン名に一致します。複数のドメイン名を指定した場合、それらは OR 関係になります。これを設定すると、alb.ingress.kubernetes.io/conditions.host-example アノテーションが追加されます。

      • [パス]:

        リクエストパスに一致します。複数のパスを指定した場合、それらは OR 関係になります。これを設定すると、alb.ingress.kubernetes.io/conditions.path-example アノテーションが追加されます。

      • [HTTP ヘッダー]:

        キーと値のペア形式でリクエストヘッダー情報に一致します。たとえば、[キーが次の場合]: headername[値が次の場合]: headervalue1。複数のヘッダー値を指定した場合、それらは OR 関係になります。これを設定すると、alb.ingress.kubernetes.io/conditions.http-header-example アノテーションが追加されます。

    • [転送アクション] ドロップダウンリストから、次を選択します。

      [転送先]

      複数のバックエンドサーバーグループに転送します。[サービス名] で、ターゲットサービスを選択します。[ポート] で、ターゲットポート番号を選択します。次に、カスタムの重み値を設定します。

      説明
      • Flannel ネットワークプラグインを使用するクラスターでは、ClusterIP サービスはサポートされていません。

      • [転送先] を選択した場合、ルールでパスマッピングを設定する必要はありません。

    • 転送条件: [ドメイン名] を選択します。ドメイン名: demo.domain.ingress.top

    • 転送アクション: [転送先]

      • サービス名: tea-svc

      • ポート: 80

      • 重みを設定: 80

    • サービスを追加

      • サービス名: coffee-svc

      • ポート: 80

      • 重みを設定: 20

    他の設定はデフォルト値のままにします。

kubectl

次のコードブロックは、クラスター内の複数のサービスにリクエストを転送する例を示しています。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: forward-ingress
  annotations:
  # アノテーション内のサービスはクラスター内に存在する必要があり、その名前は rule フィールドの backend の下のサービス名と一致する必要があります。
    alb.ingress.kubernetes.io/actions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
       [{
           "type": "ForwardGroup",
           "ForwardConfig": {
             "ServerGroups" : [{
               "ServiceName": "tea-svc",
               "Weight": 80,
               "ServicePort": 80
             },
             {
               "ServiceName": "coffee-svc",
               "Weight": 20,
               "ServicePort": 80
             }]
           }
       }]
spec:
  ingressClassName: alb
  rules:
   - host: demo.domain.ingress.top
     http:
      paths:
      - path: /path
        pathType: Prefix
        backend:
          service:
            name: service-name # 注: ここで設定されたバックエンドサービス名は、カスタム転送アクションアノテーション alb.ingress.kubernetes.io/actions.service-name の "service-name" と一致する必要があります。アノテーションで設定された転送アクションは、このバックエンドサービスに適用されます。
            port:
              name: use-annotation # servicePort の名前は use-annotation である必要があります。

シナリオ 6: リクエスト設定を書き換える

次のコードブロックは、リクエストのドメイン名、パス、およびクエリ文字列を書き換える例を示しています。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: default
  name: rewrite-ingress
  annotations:
    alb.ingress.kubernetes.io/actions.service-name: | # 注: このアノテーションの "service-name" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
       [{
           "type": "Rewrite",
           "RewriteConfig": {
               "Host": "demo.domain.ingress.top",
               "Path": "/test",
               "Query": "querystring"
           }
       }]
spec:
  ingressClassName: alb
  rules:
    - http:
        paths:
          - path: /path
            pathType: Prefix
            backend:
              service:
                name: service-name # 注: ここで設定されたバックエンドサービス名は、カスタム転送アクションアノテーション alb.ingress.kubernetes.io/actions.service-name の "service-name" と一致する必要があります。アノテーションで設定された転送アクションは、このバックエンドサービスに適用されます。
                port: 
                  number: 80

シナリオ 7: ResponseHeader に基づいてレスポンス内のリクエストヘッダーを変更する

重要
  • デフォルトでは、カスタム ALB Ingress 転送ルールはリクエストに適用されます。レスポンスの転送ルールを作成するには、alb.ingress.kubernetes.io/rule-direction.<service-name> アノテーションを Response に設定する必要があります。デフォルト値は Request です。

  • レスポンスの転送ルールを作成する場合、backend.service.port.nameuse-annotation に設定する必要があります。

次のコードブロックは、ResponseHeader 条件が満たされた場合に、新しいリクエストヘッダー (source: alibaba) を挿入する例を示しています。条件は、ヘッダーに値が value1 または value2response-hello が含まれている場合に満たされます。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
   alb.ingress.kubernetes.io/rule-direction.response-header: Response
   alb.ingress.kubernetes.io/conditions.response-header: | # 注: このアノテーションの "response-header" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
     [{
         "type": "ResponseHeader",
         "responseHeaderConfig": {
            "key": "response-hello",
            "values": [
               "value1",
               "value2"
            ]
         }
     }]
   alb.ingress.kubernetes.io/actions.response-header: | # 注: このアノテーションの "response-header" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
     [{
         "type": "InsertHeader",
         "InsertHeaderConfig": {
             "key": "source",
             "value": "alibaba",
             "valueType": "UserDefined"
         }
     }]
  name: response-header
spec:
  ingressClassName: alb
  rules:
   - http:
      paths:
      - path: /
        pathType: ImplementationSpecific
        backend:
          service:
            name: response-header # 注: ここで設定されたバックエンドサービス名は、カスタム転送条件/アクションアノテーションの "response-header" と一致する必要があります。アノテーションで設定された転送条件/アクションは、このバックエンドサービスに適用されます。
            port:
              name: use-annotation # servicePort の名前は use-annotation である必要があります。

シナリオ 8: レスポンスステータスコードに基づいてレスポンス内のリクエストヘッダーを変更する

重要
  • デフォルトでは、カスタム ALB Ingress 転送ルールはリクエストに適用されます。レスポンスの転送ルールを作成するには、alb.ingress.kubernetes.io/rule-direction.<service-name> アノテーションを Response に設定する必要があります。デフォルト値は Request です。

  • レスポンスの転送ルールを作成する場合、backend.service.port.nameuse-annotation に設定する必要があります。

次のコードブロックは、レスポンスステータスコードが 200 または 300 の場合に、リクエストヘッダーから response-hello ヘッダーを削除する例を示しています。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
   alb.ingress.kubernetes.io/rule-direction.response-hello: Response
   alb.ingress.kubernetes.io/conditions.response-hello: | # 注: このアノテーションの "response-hello" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送条件は、対応するバックエンドサービスに適用されます。
     [{
       "type": "ResponseStatusCode",
       "responseStatusCodeConfig": {
         "values": [
             "200",
             "300"
         ]
       }
     }]
   alb.ingress.kubernetes.io/actions.response-hello: | # 注: このアノテーションの "response-hello" は、spec.rules で設定されたバックエンドサービス名と一致する必要があります。アノテーションで設定された転送アクションは、対応するバックエンドサービスに適用されます。
     [{
         "type": "RemoveHeader",
         "RemoveHeaderConfig": {
             "key": "response-hello"
         }
     }]
  name: response-hello
spec:
  ingressClassName: alb
  rules:
   - http:
      paths:
      - path: /*
        pathType: ImplementationSpecific
        backend:
          service:
            name: response-hello # 注: ここで設定されたバックエンドサービス名は、カスタム転送条件/アクションアノテーションの "response-hello" と一致する必要があります。アノテーションで設定された転送条件/アクションは、このバックエンドサービスに適用されます。
            port:
              name: use-annotation # servicePort の名前は use-annotation である必要があります。

転送条件とアクションの実践

シナリオ 1: ドメイン名条件とアクションに基づいて特定のサービスにトラフィックを転送する

このセクションでは、ACK コンソールでドメイン名ベースの転送条件と対応する転送アクションを設定して、特定のサービスにトラフィックを転送する方法について説明します。

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. クラスター ページで、目的のクラスターを見つけてその名前をクリックします。左側のペインで、[ネットワーク] > [Ingress] を選択します。

  3. [Ingress] ページで、[Ingress の作成] をクリックします。[Ingress の作成] ダイアログボックスで、Ingress を設定します。

    設定項目

    説明

    ゲートウェイタイプ

    [ALB Ingress][MSE Ingress]、または [Nginx Ingress] を選択できます。

    これらのゲートウェイタイプの違いの詳細については、「Nginx Ingress、ALB Ingress、および MSE Ingress の比較」をご参照ください。

    [Application Load Balancer (ALB)]

    名前

    Ingress のカスタム名。

    alb_ingress

    Ingress クラス

    alb

    ルール

    • [ドメイン名]: *.example.com

    • [パスマッピング]:

      • [パス]: /tes

      • [一致ルール]: ImplementationSpecific

      • [サービス名]: tea-svc

      • [ポート]: 80

    カスタム転送ルール

    カスタム転送ルールを有効にして、インバウンドトラフィックを詳細に制御します。

    説明

    転送ルールには最大 10 個の条件を設定できます。

    • [転送条件] ドロップダウンリストから、次のいずれかを選択します。

      • [ドメイン名]:

        リクエストドメイン名に一致します。複数のドメイン名を指定した場合、それらは OR 関係になります。これを設定すると、alb.ingress.kubernetes.io/conditions.host-example アノテーションが追加されます。

      • [パス]:

        リクエストパスに一致します。複数のパスを指定した場合、それらは OR 関係になります。これを設定すると、alb.ingress.kubernetes.io/conditions.path-example アノテーションが追加されます。

        重要

        パス転送条件を設定すると、コンソールは自動的にパス /created-by-<ALB-ID> を持つ転送ルールを Ingress に追加します。

      • [HTTP ヘッダー]:

        キーと値のペア形式でリクエストヘッダー情報に一致します。たとえば、[キーが次の場合]: headername[値が次の場合]: headervalue1。複数のヘッダー値を指定した場合、それらは OR 関係になります。これを設定すると、alb.ingress.kubernetes.io/conditions.http-header-example アノテーションが追加されます。

    • [転送アクション] ドロップダウンリストから、次を選択します。

      • [転送先]

        複数のバックエンドサーバーグループに転送します。[サービス名] で、ターゲットサービスを選択します。[ポート] で、ターゲットポート番号を選択します。次に、カスタムの重み値を設定します。

        説明
        • Flannel ネットワークプラグインを使用するクラスターでは、ClusterIP サービスはサポートされていません。

        • [転送先] を選択した場合、ルールで [パスマッピング] を設定する必要はありません。

    • [転送条件]: [ドメイン名][パス]、および [HTTP ヘッダー] を選択します。

      • [ドメイン名]: is example.com。[ドメイン名を追加] をクリックするか、test.com。

    • [転送アクション]: [転送先] を選択します。

      • [サービス名]: tea-svc

      • [ポート]: 80

      • [重み]: 100

    他の設定はデフォルト値のままにします。