Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Personalizar regras de encaminhamento do ALB Ingress

Última atualização: Jul 02, 2026

O ALB Ingress oferece suporte a regras de encaminhamento personalizadas. Uma regra de encaminhamento consiste em condições e ações de encaminhamento. Você pode definir condições personalizadas com base no nome de domínio, caminho, cabeçalho da solicitação, string de consulta, método de solicitação, cookie ou IP de origem. Também é possível configurar ações específicas, como retornar uma resposta fixa, criar um redirecionamento, inserir ou excluir um cabeçalho de solicitação, espelhar tráfego, encaminhar solicitações para vários grupos de servidores de backend ou reescrever solicitações. Configure essas regras personalizadas diretamente no console ou adicione anotações a um recurso Ingress.

Pré-requisitos

Instale o componente ALB Ingress Controller na versão v2.5.0 ou posterior. Para mais informações, consulte Gerenciar componentes.

Condições de encaminhamento

Importante
  • Uma regra de encaminhamento pode conter no máximo 10 condições.

  • As condições de encaminhamento ResponseHeader e ResponseStatusCode são válidas apenas para regras baseadas em resposta.

Condições de encaminhamento

O ALB Ingress permite configurar condições de encaminhamento na anotação alb.ingress.kubernetes.io/conditions.<service-name>. Blocos de regras de roteamento diferentes mantêm uma relação lógica AND entre si, enquanto os valores dentro do mesmo bloco seguem uma relação lógica OR. Por exemplo, dois blocos de regras Header distintos operam com lógica AND, mas os valores definidos dentro de um único bloco Header usam lógica OR. As descrições detalhadas das regras de roteamento estão listadas abaixo.

Condição de encaminhamento

Descrição

Nome de domínio

Roteia solicitações com base em um nome de domínio correspondente. Veja o exemplo abaixo.

alb.ingress.kubernetes.io/conditions.service-name: | # The service name must match a backend service name in spec.rules. These conditions apply to that service.
  [{
      "type": "Host",
      "hostConfig": {
        "values": [
          "anno.example.com"
        ]
      }
  }]
  • type: O tipo de correspondência. Defina o valor como Host para corresponder por nome de domínio.

  • hostConfig: O nome de domínio a ser correspondido. Se você especificar vários nomes de domínio, eles serão avaliados usando a lógica OR.

Caminho

Roteia solicitações com base em um caminho correspondente. Veja o exemplo abaixo.

alb.ingress.kubernetes.io/conditions.service-name: | # The service name must match a backend service name in spec.rules. These conditions apply to that service.
  [{
    "type": "Path",
    "pathConfig": {
      "values": [
        "/pathvalue1",
        "/pathvalue2"
      ]
    }
  }]
  • type: O tipo de correspondência. Defina o valor como Path para corresponder ao caminho da solicitação.

  • pathConfig: O caminho a ser correspondido. Se você especificar vários caminhos, eles serão avaliados usando a lógica OR.

Cabeçalho

Roteia solicitações com base em um cabeçalho de solicitação correspondente. Veja o exemplo abaixo.

alb.ingress.kubernetes.io/conditions.service-name: | # The service name must match a backend service name in spec.rules. These conditions apply to that service.
  [{
    "type": "Header",
    "headerConfig": {
      "key": "headername",
      "values": [
        "headervalue1",
        "headervalue2"
      ]
     }
  }]
  • type: O tipo de correspondência. Defina como Header para corresponder a um cabeçalho de solicitação.

  • headerConfig: A chave e os valores do cabeçalho. Se você especificar vários valores de cabeçalho, eles serão avaliados usando a lógica OR.

String de consulta

Roteia solicitações com base em uma string de consulta correspondente. Veja o exemplo abaixo.

alb.ingress.kubernetes.io/conditions.service-name: | # The service name must match a backend service name in spec.rules. These conditions apply to that service.
  [{
    "type": "QueryString",
    "queryStringConfig": {
      "values": [
        {
           "key":"querystringkey1",
           "value":"querystringvalue2"
        }
      ]
    }
  }]
  • type: O tipo de correspondência. Defina o valor como QueryString para corresponder à string de consulta da solicitação.

  • queryStringConfig: Os pares chave-valor da string de consulta. O comprimento da chave e do valor deve ser de 1 a 100 caracteres. A chave e o valor podem conter letras minúsculas, caracteres visíveis e os curingas asterisco (*) e ponto de interrogação (?). Espaços e os caracteres #[]{}\|<>& não são suportados. Se você especificar várias strings de consulta, elas serão avaliadas com uma lógica OR.

Para um caso de uso e exemplo, consulte Caso de uso 3: Roteamento de tráfego baseado em string de consulta, múltiplos cabeçalhos e múltiplos caminhos.

Método de solicitação

Roteia solicitações com base em um método de solicitação correspondente. Veja o exemplo abaixo.

alb.ingress.kubernetes.io/conditions.service-name: | # The service name must match a backend service name in spec.rules. These conditions apply to that service.
  [{
    "type": "Method",
    "methodConfig": {
      "values": [
        "GET",
        "HEAD"
      ]
    }
  }]
  • type: O tipo de correspondência. Defina como Method para corresponder ao método de solicitação.

  • methodConfig: O método de solicitação. Valores suportados: GET, POST, PUT, DELETE, HEAD, OPTIONS e PATCH. Se você especificar vários métodos, eles serão avaliados usando a lógica OR.

Cookie

Roteia solicitações com base em um cookie correspondente. Veja o exemplo abaixo.

alb.ingress.kubernetes.io/conditions.service-name: | # The service name must match a backend service name in spec.rules. These conditions apply to that service.
  [{
    "type": "Cookie",
    "cookieConfig": {
      "values": [
        {
           "key":"cookiekey1",
           "value":"cookievalue2"
        }
      ]
     }
  }]
  • type: O tipo de correspondência. Defina o valor como Cookie para corresponder a um cookie.

  • cookieConfig: O par chave-valor de um cookie. O comprimento da chave e do valor deve ser de 1 a 100 caracteres. A chave e o valor podem conter letras minúsculas, caracteres visíveis, o curinga asterisco (*) e o ponto de interrogação (?). Espaços e os seguintes caracteres não são suportados: #[]{}\|<>&. Se você configurar vários cookies, eles serão avaliados com uma lógica OR.

Para um caso de uso e exemplo, consulte Caso de uso 2: Roteamento de tráfego baseado em nome de domínio, método de solicitação e cookie.

IP de origem

Roteia solicitações com base em um endereço IP de origem correspondente. Veja o exemplo abaixo.

alb.ingress.kubernetes.io/conditions.service-name: | # The service name must match a backend service name in spec.rules. These conditions apply to that service.
  [{
    "type": "SourceIp",
    "sourceIpConfig": {
      "values": [
        "192.168.0.0/16",
        "172.16.0.0/16"
      ]
    }
  }]
  • type: O tipo de correspondência. Defina o valor como SourceIP para corresponder ao IP de origem da solicitação.

  • sourceIpConfig: O endereço IP de origem ou bloco CIDR. Se você especificar vários endereços IP ou blocos CIDR, eles serão avaliados usando a lógica OR.

Para um caso de uso e exemplo, consulte Caso de uso 1: Roteamento de tráfego baseado em IP de origem e cabeçalho.

cabeçalho de resposta

Corresponde ao cabeçalho de resposta e executa a ação de encaminhamento apenas nas respostas que contêm o cabeçalho correto. Observe que isso deve ser usado em conjunto com a anotação alb.ingress.kubernetes.io/rule-direction.<service-name>: Response. Veja o exemplo abaixo.

alb.ingress.kubernetes.io/conditions.service-name: | # The service name must match a backend service name in spec.rules. These conditions apply to that service.
      [{
        "type": "ResponseHeader",
        "headerConfig": {
          "key": "headername",
          "values": [
            "headervalue1",
            "headervalue2"
          ]
         }
      }]
  • type: O tipo de condição. Defina como ResponseHeader para corresponder a um cabeçalho na resposta.

  • headerConfig: A chave e os valores do cabeçalho. Se você especificar vários valores de cabeçalho, eles serão avaliados usando a lógica OR.

código de status de resposta

Corresponde ao código de status da resposta. O serviço só pode ser acessado se o código de status correto for retornado. Note que este recurso deve ser usado com uma ação de encaminhamento de direção de resposta e a anotação de regra de encaminhamento de direção de resposta alb.ingress.kubernetes.io/rule-direction.<service-name>: Response. Veja o exemplo abaixo.

alb.ingress.kubernetes.io/conditions.service-name: | # The service name must match a backend service name in spec.rules. These conditions apply to that service.
      [{
        "type": "ResponseStatusCode",
        "responseStatusCodeConfig": {
          "values": [
            "statuscode1",
            "statuscode2"
          ]
        }
      }]
  • type: O tipo de correspondência. Defina como ResponseStatusCode para corresponder ao código de status da resposta.

  • responseStatusCodeConfig: O código de status da resposta. Se você especificar vários códigos de status, eles serão avaliados usando a lógica OR.

Caso de uso 1: Roteamento por IP de origem e cabeçalho

Importante

Você pode especificar no máximo cinco condições de source IP em uma única regra de encaminhamento.

Este YAML define um Ingress que roteia solicitações somente quando o IP de origem, o cabeçalho e o caminho correspondem às condições especificadas.

Se o endereço IP de origem de uma solicitação for de 192.168.0.0/16 ou 172.16.0.0/16, o cabeçalho da solicitação contiver gray-hello com um valor de value1 ou value2, e o caminho da solicitação for /hello, a solicitação será roteada para o serviço gray-hello-svc. Caso contrário, a solicitação será roteada para outros serviços.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
   alb.ingress.kubernetes.io/order: "1"
   alb.ingress.kubernetes.io/conditions.gray-hello-svc: | # The service name must match a backend service name in spec.rules. These conditions apply to that service.
     [{
       "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 # This backend service name must match the name in the `conditions` annotation for those conditions to apply.
            port:
              number: 88

alb.ingress.kubernetes.io/order: Especifica a prioridade do Ingress. Quanto menor o número, maior a prioridade.

Caso de uso 2: Roteamento por domínio, método e cookie

Este YAML define um Ingress que roteia solicitações somente quando o nome de domínio, o método de solicitação e o cookie correspondem às condições especificadas.

Isso significa que uma solicitação é roteada para service-a apenas se o método de solicitação for GET ou HEAD, o host da solicitação for example.com ou *.edu, o cookie da solicitação tiver uma chave cookiekey1 e um valor cookievalue1, e o caminho da solicitação for /test. Caso contrário, a solicitação é roteada para service-b.

Nota

As regras de encaminhamento para nomes de domínio suportam curingas.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
   alb.ingress.kubernetes.io/conditions.service-a: | # The service name must match a backend service name in spec.rules. These conditions apply to that service.
     [{
       "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 # This backend service name must match the name in the `conditions` annotation for those conditions to apply.
            port:
              number: 88
      - path: /test
        pathType: ImplementationSpecific
        backend:
          service:
            name: service-b
            port:
              number: 88

Caso de uso 3: Roteamento por string de consulta, cabeçalho e caminho

Este YAML define um Ingress que roteia solicitações somente quando a string de consulta, os cabeçalhos e o caminho correspondem às condições especificadas.

Isso significa que uma solicitação é roteada para o serviço service-a se o caminho da solicitação for /pathvalue1, /pathvalue2 ou /test, a string de consulta tiver a chave querystringkey1 e o valor querystringvalue2, e o cabeçalho da solicitação contiver headerkey1 e headerkey2. Além disso, para o cabeçalho que contém headerkey1, o valor deve ser headervalue1 ou headervalue2, e para o cabeçalho que contém headerkey2, o valor deve ser headervalue3 ou headervalue4. Caso contrário, a solicitação é roteada para o serviço service-b.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
   alb.ingress.kubernetes.io/conditions.service-a: | # The service name must match a backend service name in spec.rules. These conditions apply to that service.
     [{
       "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 # This backend service name must match the name in the `conditions` annotation for those conditions to apply.
            port:
              number: 88
      - path: /test
        pathType: ImplementationSpecific
        backend:
          service:
            name: service-b
            port:
              number: 88

Ações de encaminhamento

Ações de encaminhamento

O ALB Ingress permite configurar ações de encaminhamento para solicitações e respostas com a anotação alb.ingress.kubernetes.io/actions.<service-name>. As ações suportadas incluem retornar uma resposta fixa, redirecionamento, inserção ou remoção de cabeçalho, espelhamento de tráfego, encaminhamento para vários grupos de servidores de backend e reescrita de solicitações. Ao definir essas ações de encaminhamento, você gerencia com flexibilidade como as solicitações e respostas são tratadas no seu ALB Ingress.

Importante
  • Para a anotação alb.ingress.kubernetes.io/actions.<service-name>, garanta que o nome do serviço na anotação corresponda ao nome do serviço sob backend no campo rule.

  • Use apenas uma ação de encaminhamento terminal, como redirecionamento, resposta fixa ou encaminhamento para vários grupos de servidores, na mesma regra de encaminhamento.

  • Ao configurar um redirecionamento, uma resposta fixa ou encaminhamento para vários grupos de servidores, defina backend.service.port.name como use-annotation.

Ações de encaminhamento de solicitação

Ação

Descrição

Resposta fixa

Envia uma resposta fixa ao cliente a partir do Application Load Balancer (ALB). Você pode definir o código de status da resposta, o conteúdo e o tipo de conteúdo. O código a seguir fornece um exemplo.

alb.ingress.kubernetes.io/actions.service-name: | # Note: The "service-name" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
  [{
      "type": "FixedResponse",
      "FixedResponseConfig": {
          "contentType": "text/plain",
          "httpCode": "503",
          "content": "503 error text"
      }
  }]
  • type: O tipo de ação de encaminhamento. Defina como FixedResponse para esta ação.

  • contentType: O tipo de conteúdo do corpo da resposta.

  • httpCode: O código de status da resposta.

  • content: O corpo da resposta.

Para um caso de uso e exemplo, consulte Caso de uso 1: Definir uma resposta fixa.

Redirecionamento

Redireciona o cliente para um endereço diferente usando um código de status HTTP 3xx. O código a seguir fornece um exemplo.

alb.ingress.kubernetes.io/actions.service-name: | # Note: The "service-name" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
  [{
      "type": "Redirect",
      "RedirectConfig": {
          "host": "${host}",
          "path": "/test",
          "port": "443",
          "protocol": "https",
          "query": "querystring",
          "httpCode": "301"
      }
  }]
  • type: O tipo de ação de encaminhamento. Defina como Redirect para esta ação.

  • host: O host para o qual a solicitação é redirecionada.

  • path: O caminho para o qual a solicitação é redirecionada.

  • port: A porta para a qual a solicitação é redirecionada.

  • protocol: O protocolo para o qual a solicitação é redirecionada.

  • query: A string de consulta da solicitação redirecionada.

  • httpCode: O código de status retornado após o redirecionamento.

Importante

Você pode configurar os parâmetros host, path, port, protocol e query para usar valores da solicitação original, mas pelo menos um deve ser definido com um valor não padrão. Por exemplo, se você definir host como ${host}, deixá-lo vazio ("host": "") ou não incluir o parâmetro, o valor da solicitação original será usado.

Para um caso de uso e exemplo, consulte Caso de uso 2: Usar um redirecionamento 301.

Espelhamento de tráfego

Copia a solicitação e a encaminha para um grupo de servidores de espelhamento de tráfego. Você deve especificar o ID do grupo de servidores. O código a seguir fornece um exemplo.

Importante
  • A ação de encaminhamento de espelhamento de tráfego só pode ser usada com encaminhamento, inserção de cabeçalho, remoção de cabeçalho e limitação de QPS. Não pode ser usada com reescrita, resposta fixa ou redirecionamento.

  • Você pode anexar um grupo de servidores de espelhamento de tráfego apenas especificando seu ServerGroupID.

alb.ingress.kubernetes.io/actions.service-name: | # Note: The "service-name" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
      [{
          "type": "TrafficMirror",
          "TrafficMirrorConfig": {
              "TargetType" : "ForwardGroupMirror",
              "MirrorGroupConfig": {
                  "ServerGroupTuples" : [{
                      "ServerGroupID": "sgp-2auud2fxj1r46*****"
                  }]
              }
           }
      }]
  • type: O tipo de ação de encaminhamento. Defina como TrafficMirror para configurar o espelhamento de tráfego.

  • TargetType: O tipo de alvo para espelhamento. Atualmente, apenas ForwardGroupMirror é suportado, o que espelha solicitações para um grupo de servidores.

  • ServerGroupID: O ID do grupo de servidores de espelhamento de tráfego.

Para um caso de uso e exemplo, consulte Caso de uso 4: Espelhar tráfego.

Encaminhar para vários grupos de servidores de backend

Encaminha solicitações do ALB para vários grupos de servidores de backend. Você pode especificar grupos de servidores de backend usando ServerGroupID, ou criar/anexar grupos de servidores usando ServiceName+ServicePort. Também é possível definir um peso de encaminhamento para cada grupo de servidores de backend e ativar a persistência de sessão entre os grupos.

Importante
  • Uma instância ALB padrão pode ser anexada a no máximo cinco grupos de servidores.

  • Se você anexar grupos de servidores usando tanto ServerGroupID quanto ServiceName+ServicePort, a correspondência prioriza o ServerGroupID.

  • Quando a persistência de sessão está ativada, o ALB Ingress encaminha solicitações da mesma sessão para o mesmo backend.

alb.ingress.kubernetes.io/actions.service-name: | # Note: The "service-name" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
       [{
           "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: O tipo de ação de encaminhamento. Defina como ForwardGroup para configurar o encaminhamento para vários grupos de servidores de backend.

  • ForwardConfig: Os parâmetros para os grupos de servidores de backend. Se você configurar vários grupos de servidores, as solicitações serão encaminhadas para cada grupo com base em seu peso.

  • ServerGroupID: O ID do grupo de servidores.

  • ServiceName: O nome do serviço.

  • ServicePort: A porta do serviço.

  • Weight: O peso para encaminhamento de solicitações para cada grupo de servidores.

  • Enabled: Especifica se deve ativar a persistência de sessão entre grupos de servidores.

  • Timeout: O período de tempo limite para persistência de sessão entre grupos de servidores.

Para um caso de uso e exemplo, consulte Caso de uso 5: Encaminhar para vários grupos de servidores.

Reescrita

Reescreve a solicitação antes de encaminhá-la para o backend. O Application Load Balancer (ALB) pode modificar o host, o caminho e a string de consulta da solicitação.

Importante
  • A ação de reescrita entra em conflito com a anotação rewrite-target. Não as use juntas.

  • A ação de reescrita não pode ser usada com ações de resposta fixa ou redirecionamento.

alb.ingress.kubernetes.io/actions.service-name: | # Note: The "service-name" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
           [{
               "type": "Rewrite",
               "RewriteConfig": {
                   "Host": "demo.domain.ingress.top",
                   "Path": "/test",
                   "Query": "querystring"
               }
           }]
  • type: O tipo de ação de encaminhamento. Defina como Rewrite para usar o recurso de reescrita.

  • host: O host usado na solicitação reescrita. Se você definir isso como ${host}, deixar vazio ("host": "") ou não incluir o parâmetro, o valor da solicitação original será usado.

  • path: O caminho usado na solicitação reescrita. Se você definir isso como ${path}, deixar vazio ("path": "") ou não incluir o parâmetro, o valor da solicitação original será usado.

  • query: A string de consulta da solicitação reescrita. Se você definir isso como ${query}, deixar vazio ("query": "") ou não incluir o parâmetro, o valor da solicitação original será usado.

Importante

Os parâmetros host, path e query podem ser configurados para usar os valores da solicitação original. No entanto, pelo menos um desses parâmetros deve ser definido com um valor diferente do padrão. Por exemplo, se você definir host como ${host}, deixar vazio ("host": "") ou não incluir o parâmetro, o valor da solicitação original será usado.

Para um caso de uso e exemplo, consulte Caso de uso 6: Reescrever uma solicitação.

Inserir cabeçalho

Define o nome e o conteúdo do campo de cabeçalho. Isso sobrescreve qualquer cabeçalho existente com o mesmo nome na solicitação. O código a seguir fornece um exemplo.

alb.ingress.kubernetes.io/actions.service-name: | # Note: The "service-name" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
  [{
      "type": "InsertHeader",
      "InsertHeaderConfig": {
          "key": "key",
          "value": "value",
          "valueType": "UserDefined"
      }
  }]
  • type: O tipo de ação de encaminhamento. Defina como InsertHeader para inserir um cabeçalho de solicitação.

  • key: O nome do campo de cabeçalho.

  • value: O conteúdo do campo de cabeçalho.

  • valueType: O tipo do valor.

Para um caso de uso e exemplo, consulte Caso de uso 3: Inserir um cabeçalho de solicitação.

Remover cabeçalho

Remove um cabeçalho da solicitação. O código a seguir fornece um exemplo.

alb.ingress.kubernetes.io/actions.service-name: | # Note: The "service-name" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
     [{
         "type": "RemoveHeader",
         "RemoveHeaderConfig": {
             "key": "key"
         }
     }]

type: O tipo de ação de encaminhamento. Defina como RemoveHeader para remover um cabeçalho de solicitação.

key: O nome do campo de cabeçalho a ser removido.

Limitação de QPS

Esta ação limita a taxa de solicitações em consultas por segundo (QPS). Você pode configurar um limite geral e um limite separado para cada IP de origem do cliente.

O código a seguir fornece um exemplo de configuração:

Importante
  • A ação de encaminhamento de limitação de QPS deve ser usada junto com o encaminhamento para um grupo de servidores.

  • Quando o cabeçalho de solicitação X-Forwarded-For contém vários endereços IP, como X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …, o endereço mais à esquerda é o IP real do cliente. Para usar a limitação baseada no IP de origem do cliente, você deve ativar a recuperação de endereço IP do cliente no listener. Isso permite que a instância ALB extraia o endereço IP do cliente do cabeçalho X-Forwarded-For. Para mais informações, consulte XForwardedForConfig.

 annotations:
        alb.ingress.kubernetes.io/actions.service-name: | # Note: The "service-name" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
          [{
              "type": "TrafficLimit",
              "TrafficLimitConfig": {
                  "QPS": "1000",
                  "QPSPerIp": "100"
              }
          }]
  • type: Especifica o tipo de ação de encaminhamento. Defina como TrafficLimit para configurar a limitação de taxa.

  • QPS: O limite geral de taxa de solicitação em consultas por segundo (QPS). O valor deve estar no intervalo de 1 a 1.000.000. Se a taxa de solicitação exceder o limite especificado, as solicitações excedentes serão rejeitadas e o cliente receberá um código de status HTTP 503.

  • QPSPerIp: O limite de taxa de solicitação para cada IP de origem do cliente, em QPS. O valor deve estar no intervalo de 1 a 1.000.000. Se tanto QPS (limite geral) quanto QPSPerIp (limite por IP) estiverem definidos, o valor de QPSPerIp deve ser menor que o valor de QPS. Se a taxa de solicitação de um único endereço IP exceder o limite especificado, as solicitações excedentes serão rejeitadas e o cliente receberá um código de status HTTP 503.

Ações de encaminhamento de resposta

Ação

Descrição

Inserir cabeçalho

Quando aplicada a uma regra de resposta, esta ação define um campo de cabeçalho e seu valor na resposta. Isso sobrescreve qualquer cabeçalho de resposta existente com o mesmo nome. O código a seguir fornece um exemplo.

alb.ingress.kubernetes.io/actions.service-name: | # Note: The "service-name" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
  [{
      "type": "InsertHeader",
      "InsertHeaderConfig": {
          "key": "key",
          "value": "value",
          "valueType": "UserDefined"
      }
  }]
  • type: O tipo de ação de encaminhamento. Defina como InsertHeader para inserir um cabeçalho de resposta.

  • key: O nome do campo de cabeçalho.

  • value: O conteúdo do campo de cabeçalho.

  • valueType: O tipo do valor.

Para casos de uso e exemplos de modificação de cabeçalhos de resposta, consulte Caso de uso 7: Modificar cabeçalhos de resposta e Caso de uso 8: Modificar cabeçalhos de resposta por código de status.

Remover cabeçalho

Quando aplicada a uma regra de resposta, esta ação remove um cabeçalho da resposta. O código a seguir fornece um exemplo.

alb.ingress.kubernetes.io/actions.service-name: | # Note: The "service-name" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
     [{
         "type": "RemoveHeader",
         "RemoveHeaderConfig": {
             "key": "key"
         }
     }]

type: O tipo de ação de encaminhamento. Defina como RemoveHeader para remover um cabeçalho de resposta.

key: O nome do campo de cabeçalho a ser removido.

Caso de uso 1: Definir uma resposta fixa

Console

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Network > Ingresses.

  3. Na página Ingresses, clique em Create Ingress. Na caixa de diálogo Create Ingress, configure o Ingress.

    Parâmetro

    Descrição

    Exemplo

    Gateway Type

    Você pode selecionar ALB Ingress, MSE Ingress ou Nginx Ingress conforme necessário.

    Para mais informações sobre as diferenças entre esses tipos de gateway, consulte Comparação entre Nginx Ingress, ALB Ingress e MSE Ingress.

    ALB Ingress

    Name

    Um nome personalizado para o Ingress.

    ingress

    Ingress Class

    O nome da Ingress Class associada.

    alb

    Rules

    Clique em + Add Rule para adicionar regras de roteamento.

    • Host: Um host personalizado.

    • Mappings: Configure os seguintes parâmetros.

      • Path: roteia solicitações com base no caminho da URL.

      • Match type:

        • Prefix match: corresponde ao prefixo do caminho da URL da solicitação.

        • Exact match: realiza uma correspondência exata no caminho da URL da solicitação.

        • ImplementationSpecific (Default Value): O comportamento depende da implementação do controlador Ingress. Para ALB Ingress, o padrão é uma correspondência exata.

      • Service: Selecione o serviço alvo, que é um Kubernetes Service.

      • Port: Selecione a porta que o serviço expõe.

    • Um Ingress suporta vários caminhos sob o mesmo host. Clique em + Add para adicionar um caminho.

    • Host: Deixe vazio.

    • Mappings:

      • Path: /

      • Match type: Prefix match

      • Service: response-503

      • Port: 80

    Custom Forwarding Rules

    Configure regras de encaminhamento personalizadas para gerenciamento granular de tráfego.

    Nota

    Uma regra de encaminhamento pode ter no máximo 10 condições.

    • Na lista suspensa Add Condition, selecione uma opção.

      • Host:

        Corresponde ao host da solicitação. Se você especificar vários hosts, eles serão avaliados usando a lógica OR. Após essa configuração, a anotação alb.ingress.kubernetes.io/conditions.host-example é adicionada.

      • Path:

        Corresponde ao caminho da solicitação. Se você especificar vários caminhos, eles serão avaliados usando a lógica OR. Após essa configuração, a anotação alb.ingress.kubernetes.io/conditions.path-example é adicionada.

      • HTTP Header:

        Corresponde às informações do cabeçalho da solicitação como um par chave-valor. Por exemplo, defina Key como headername e Value como headervalue1. Se você especificar vários valores de cabeçalho, eles serão avaliados usando a lógica OR. Após essa configuração, a anotação alb.ingress.kubernetes.io/conditions.http-header-example é adicionada.

    • Na lista suspensa Action, selecione uma opção.

      Return Fixed Response

      Retorna uma resposta fixa ao cliente através do ALB. Você pode configurar o código de status da resposta, o conteúdo e o tipo de conteúdo. Configure Response Status Code, Response Content Type (Optional) e Response Content (Optional) conforme necessário.

      Response Content Type:

      • text/plain: um tipo de conteúdo de texto simples.

      • text/css: um tipo de conteúdo CSS.

      • text/html: um tipo de conteúdo HTML.

      • application/javascript: um tipo de conteúdo JavaScript.

      • application/json: um tipo de conteúdo JSON.

    • Add Condition: Selecione Path. (Mantenha o valor padrão)

    • Action: Return Fixed Response

      • Response Status Code: 503

      • Response Content Type (Optional): text/plain

      • Response Content (Optional): error

    Mantenha os valores padrão para os outros parâmetros.

  4. Após concluir as configurações, clique em OK.

Kubectl

O YAML a seguir mostra um exemplo de como retornar um código de status 503 e o texto 503 error text quando uma solicitação é feita ao serviço.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: default
  name: ingress
  annotations:
    alb.ingress.kubernetes.io/actions.service-name: | # Note: The "service-name" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
      [{
          "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  # Note: The name of the backend service must match "service-name" in the custom forwarding action annotation. The forwarding action applies to this backend service.
                port:
                  name: use-annotation # The service port name must be set to use-annotation.

Caso de uso 2: Usar um redirecionamento 301

Este exemplo YAML mostra como redirecionar solicitações para a porta HTTPS do serviço.

Redirection

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: default
  name: ingress
  annotations:
    alb.ingress.kubernetes.io/actions.redirect: | # Note: The "redirect" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
      [{
          "type": "Redirect",
          "RedirectConfig": {
              "host": "demo.domain.ingress.top",
              "path": "/test",
              "port": "443",
              "protocol": "https",
              "query": "querystring",
              "httpCode": "301"
          }
      }]
spec:
  ingressClassName: alb
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: redirect # Note: The name of the backend service must match "redirect" in the custom forwarding action annotation. The forwarding action applies to this backend service.
                port:
                  name: use-annotation # The service port name must be set to use-annotation.

Multiple redirections

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: default
  name: ingress
  annotations:
    alb.ingress.kubernetes.io/listen-ports: |
     [{"HTTP": 8001}]
    alb.ingress.kubernetes.io/actions.redirect-1: |
      [{
          "type": "Redirect",
          "RedirectConfig": {
              "host": "demo.domain.ingress.top",
              "path": "/test",
              "port": "443",
              "protocol": "https",
              "query": "querystring",
              "httpCode": "301"
          }
      }]
    alb.ingress.kubernetes.io/actions.redirect-2: |
      [{
          "type": "Redirect",
          "RedirectConfig": {
              "host": "demo.domain.ingress.top",
              "path": "/test",
              "port": "443",
              "protocol": "https",
              "httpCode": "301"
          }
      }]
spec:
  ingressClassName: ml-test-ingressclass-rolechain-2
  rules:
    - http:
        paths:
          - path: /foo
            pathType: Prefix
            backend:
              service:
                name: redirect-1
                port:
                  name: use-annotation 
          - path: /bar
            pathType: Prefix
            backend:
              service:
                name: redirect-2
                port:
                  name: use-annotation

Caso de uso 3: Inserir um cabeçalho de solicitação

Este exemplo YAML mostra como adicionar ou sobrescrever o cabeçalho de solicitação para source: alibaba.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: default
  name: ingress
  annotations:
    alb.ingress.kubernetes.io/actions.insert-header: | # Note: The "insert-header" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
      [{
          "type": "InsertHeader",
          "InsertHeaderConfig": {
              "key": "source",
              "value": "alibaba",
              "valueType": "UserDefined"
          }
      }]
spec:
  ingressClassName: alb
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: insert-header # Note: The name of the backend service must match "insert-header" in the custom forwarding action annotation. The forwarding action applies to this backend service.
                port:
                  number: 80

Caso de uso 4: Espelhar tráfego

O YAML a seguir mostra um exemplo de como espelhar tráfego para um grupo de servidores.

Faça login no console do Application Load Balancer (ALB). No painel de navegação à esquerda, escolha Application Load Balancer > Server Groups. Na página Server Groups, obtenha o ID do grupo de servidores.服务器组

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: traffic-mirror-ingress
  annotations:
  # The mirror-svc must be one of the backend.service names specified below.
  # ALB Ingress mirrors traffic that is forwarded to mirror-svc to the backend server specified by "ServerGroupID".
  # To configure traffic mirroring for multiple services, add a separate annotation for each service.
   alb.ingress.kubernetes.io/actions.mirror-svc: | # Note: The "mirror-svc" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
       [{
           "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 # Note: The name of the backend service must match "mirror-svc" in the custom forwarding action annotation. The forwarding action applies to this backend service.
            port:
              number: 80

Caso de uso 5: Encaminhar para vários grupos de servidores

Console

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Network > Ingresses.

  3. Na página Ingresses, clique em Create Ingress. Na caixa de diálogo Create Ingress, configure o Ingress.

    Parâmetro

    Descrição

    Exemplo

    Gateway Type

    Você pode selecionar ALB Ingress, MSE Ingress ou Nginx Ingress conforme necessário.

    Para mais informações sobre as diferenças entre esses tipos de gateway, consulte Comparação entre Nginx Ingress, ALB Ingress e MSE Ingress.

    ALB Ingress

    Name

    Um nome personalizado para o Ingress.

    forward-ingress

    Ingress Class

    O nome da Ingress Class associada.

    alb

    Rules

    Clique em + Add Rule para adicionar regras de roteamento.

    • Host: Um host personalizado.

    • Mappings: Configure os seguintes parâmetros.

      • Path: roteia solicitações com base no caminho da URL.

      • Match type:

        • Prefix match: corresponde ao prefixo do caminho da URL da solicitação.

        • Exact match: realiza uma correspondência exata no caminho da URL da solicitação.

        • ImplementationSpecific (Default Value): depende da lógica implementada pelo controlador Ingress. O ALB Ingress usa lógica de correspondência exata.

      • Service: Selecione o serviço alvo, que é um Kubernetes Service.

      • Port: Selecione a porta que o serviço expõe.

    • Um Ingress suporta vários caminhos sob o mesmo host. Clique em + Add para adicionar um caminho.

    • Host: demo.domain.ingress.top

    • Mappings:

      • Path: /path

      • Match type: Prefix match

      • Service: forward

      • Port: 80

    Custom Forwarding Rules

    Ative regras de encaminhamento personalizadas para gerenciar o tráfego de entrada com controle granular.

    Nota

    Uma regra de encaminhamento pode ter no máximo 10 condições.

    • Na lista suspensa Add Condition, selecione uma opção.

      • Host:

        Corresponde ao host da solicitação. Se você especificar vários hosts, eles serão avaliados usando a lógica OR. Após essa configuração, a anotação alb.ingress.kubernetes.io/conditions.host-example é adicionada.

      • Path:

        Corresponde ao caminho da solicitação. Se você especificar vários caminhos, eles serão avaliados usando a lógica OR. Após essa configuração, a anotação alb.ingress.kubernetes.io/conditions.path-example é adicionada.

      • HTTP Header:

        Corresponde às informações do cabeçalho da solicitação como um par chave-valor. Por exemplo, defina Key como headername e Value como headervalue1. Se você especificar vários valores de cabeçalho, eles serão avaliados usando a lógica OR. Após essa configuração, a anotação alb.ingress.kubernetes.io/conditions.http-header-example é adicionada.

    • Na lista suspensa Action, selecione uma opção.

      Forward To

      Encaminha solicitações para vários grupos de servidores de backend. No campo Service Name, selecione o serviço alvo. No campo Port, selecione o número da porta alvo. Em seguida, configure um valor de peso personalizado.

      Nota
      • Serviços ClusterIP não são suportados para clusters que usam o plug-in de rede Flannel.

      • Ao selecionar Forward To, você não precisa configurar mapeamentos de caminho na regra.

    • Add Condition: Selecione Host. Host: demo.domain.ingress.top

    • Action: Forward To

      • Service Name: tea-svc

      • Port: 80

      • Configurar peso: 80

    • Add Service

      • Service Name: coffee-svc

      • Port: 80

      • Configurar peso: 20

    Mantenha os valores padrão para os outros parâmetros.

  4. Após concluir as configurações, clique em OK no canto inferior esquerdo da página Create Ingress.

Kubectl

O YAML a seguir mostra um exemplo de como encaminhar uma solicitação para vários serviços dentro do cluster.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: forward-ingress
  annotations:
  # The service in the annotation must exist in the cluster, and its name must match the service name under backend in the rule field.
    alb.ingress.kubernetes.io/actions.service-name: | # Note: The "service-name" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
       [{
           "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 # Note: The name of the backend service must match "service-name" in the custom forwarding action annotation. The forwarding action applies to this backend service.
            port:
              name: use-annotation # The service port name must be set to use-annotation.

Caso de uso 6: Reescrever uma solicitação

Uma reescrita modifica a URL de uma solicitação antes que ela seja encaminhada para um backend. O ALB Ingress pode alterar o host, o caminho e a string de consulta, o que é útil para simplificar URLs, realizar redirecionamentos transparentes para o cliente e ocultar detalhes de implementação do backend. No exemplo a seguir, uma reescrita é configurada usando a anotação alb.ingress.kubernetes.io/actions.service-name.

Por exemplo, se um cliente acessar https://example.com/api/users, a reescrita altera a URL para https://example.org/users, mas preserva a string de consulta original.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: default
  name: rewrite-ingress
  annotations:
    alb.ingress.kubernetes.io/actions.service-name: | # The "service-name" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
       [{
           "type": "Rewrite",
           "RewriteConfig": {
               "Host": "example.org", 
               "Path": "/users", 
               "Query": "${query}" # ${query} indicates that the original request query string is used. 
           }
       }]
spec:
  ingressClassName: alb
  rules:
    - host: example.com
      http:
        paths:
          - path: /api/users
            pathType: ImplementationSpecific
            backend:
              service:
                name: service-name # The name of the backend service must match "service-name" in the custom forwarding action annotation. The forwarding action applies to this backend service.
                port: 
                  number: 80

Caso de uso 7: Modificar cabeçalhos de resposta

Importante
  • Por padrão, as regras de encaminhamento do ALB Ingress aplicam-se a solicitações. Para aplicar uma regra a uma resposta, defina a anotação alb.ingress.kubernetes.io/rule-direction.<service-name> como Response.

  • Ao criar uma regra de encaminhamento para respostas, defina backend.service.port.name como use-annotation.

O bloco de código a seguir define que, quando ResponseHeader for correspondido, ou seja, o cabeçalho contiver response-hello com um valor de value1 ou value2, um novo cabeçalho de solicitação source: alibaba será inserido.

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: | # Note: The "response-header" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding condition applies to that backend service.
     [{
         "type": "ResponseHeader",
         "responseHeaderConfig": {
            "key": "response-hello",
            "values": [
               "value1",
               "value2"
            ]
         }
     }]
   alb.ingress.kubernetes.io/actions.response-header: | # Note: The "response-header" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
     [{
         "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 # Note: The name of the backend service must match "response-header" in the custom forwarding condition and action annotations. The configured conditions and actions apply to this backend service.
            port:
              name: use-annotation # The service port name must be set to use-annotation.

Caso de uso 8: Modificar cabeçalhos de resposta por código de status

Importante
  • Por padrão, as regras de encaminhamento do ALB Ingress aplicam-se a solicitações. Para aplicar uma regra a uma resposta, defina a anotação alb.ingress.kubernetes.io/rule-direction.<service-name> como Response.

  • Ao criar uma regra de encaminhamento para respostas, defina backend.service.port.name como use-annotation.

Este exemplo YAML remove o cabeçalho response-hello da resposta se o código de status da resposta for 200 ou 300.

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: | # Note: The "response-hello" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding condition applies to that backend service.
     [{
       "type": "ResponseStatusCode",
       "responseStatusCodeConfig": {
         "values": [
             "200",
             "300"
         ]
       }
     }]
   alb.ingress.kubernetes.io/actions.response-hello: | # Note: The "response-hello" in this annotation must match the name of the backend service that is configured in spec.rules. The forwarding action applies to that backend service.
     [{
         "type": "RemoveHeader",
         "RemoveHeaderConfig": {
             "key": "response-hello"
         }
     }]
  name: response-hello
spec:
  ingressClassName: alb
  rules:
   - http:
      paths:
      - path: /*
        pathType: ImplementationSpecific
        backend:
          service:
            name: response-hello # Note: The name of the backend service must match "response-hello" in the custom forwarding condition and action annotations. The configured conditions and actions apply to this backend service.
            port:
              name: use-annotation # The service port name must be set to use-annotation.

Condições e ações de encaminhamento

Caso de uso 1: Encaminhar tráfego com base em um nome de domínio

Esta seção mostra como configurar condições e ações de encaminhamento com base em um nome de domínio no ACK console para rotear tráfego para um serviço específico.

  1. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Network > Ingresses.

  3. Na página Ingresses, clique em Create Ingress. Na caixa de diálogo Create Ingress, configure o Ingress.

    Parâmetro

    Descrição

    Exemplo

    Gateway type

    Você pode selecionar ALB Ingress, MSE Ingress ou Nginx Ingress conforme necessário.

    Para mais informações sobre as diferenças entre esses tipos de gateway, consulte Comparação entre Nginx Ingress, ALB Ingress e MSE Ingress.

    ALB Ingress

    Name

    Um nome personalizado para o Ingress.

    alb_ingress

    Ingress Class

    O nome da IngressClass associada.

    alb

    Rules

    Clique em + Add Rule para adicionar uma ou mais regras de roteamento.

    • Domain name: Um nome de domínio personalizado.

    • Mappings: Configure os seguintes parâmetros.

      • Path: O caminho da URL para correspondência de solicitação.

      • Rule:

        • Prefix (prefix match): Corresponde ao prefixo do caminho da URL da solicitação.

        • Exact (exact match): Corresponde exatamente ao caminho da URL da solicitação.

        • ImplementationSpecific (Default): O comportamento depende da implementação do controlador Ingress. Para ALB Ingress, esta opção funciona como uma correspondência exata.

      • Service name: Selecione o serviço alvo, que é um Kubernetes Service.

      • Port: Selecione a porta que o serviço expõe.

    • Um Ingress suporta vários caminhos sob o mesmo nome de domínio. Clique em + Add Path para adicionar mais caminhos.

    • Domain name: *.example.com

    • Mappings:

      • Path: /tes

      • Rule: ImplementationSpecific

      • Service name: tea-svc

      • Port: 80

    Custom forwarding rules

    Defina regras de encaminhamento personalizadas para controle granular sobre o tráfego de entrada.

    Nota

    Uma regra de encaminhamento pode ter no máximo 10 condições.

    • Na lista suspensa Condition, selecione uma opção.

      • Domain name:

        Corresponde ao nome de domínio da solicitação. Se você especificar vários nomes de domínio, eles serão avaliados usando a lógica OR. Quando esta condição é definida, a anotaçãoalb.ingress.kubernetes.io/conditions.host-example é adicionada.

      • Path:

        Corresponde ao caminho da solicitação. Se você especificar vários caminhos, eles serão avaliados usando a lógica OR. Quando esta condição é definida, a anotaçãoalb.ingress.kubernetes.io/conditions.path-example é adicionada.

        Importante

        Ao configurar uma condição de encaminhamento de caminho, o console adiciona automaticamente uma regra de encaminhamento com o caminho/created-by-<ALB-ID> ao Ingress.

      • HTTP header:

        Corresponde a um par chave-valor especificado no cabeçalho da solicitação. Por exemplo, defina Key comoheadername e Value comoheadervalue1. Se você especificar vários valores de cabeçalho, eles serão avaliados usando a lógica OR. Quando esta condição é definida, a anotaçãoalb.ingress.kubernetes.io/conditions.http-header-example é adicionada.

    • Na lista suspensa Action, selecione uma opção.

      • Forward to

        Encaminha solicitações para vários grupos de servidores de backend. No campo Service name, selecione o serviço alvo. No campo Port, selecione a porta alvo. Em seguida, configure um peso.

        Nota

    • Condition: Selecione Domain Name, Path e HTTP Header.

      • Domain name: example.com. Clique em Add domain name para adicionar outro nome de domínio, como test.com.

    • Action: Selecione Forward to.

      • Service name: tea-svc

      • Port: 80

      • Weight: 100

    Mantenha os valores padrão para os outros parâmetros.

  4. A configuração está concluída. No canto inferior esquerdo da página Create Ingress, clique em OK.