Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Roteamento de tráfego baseado em versão com Istio

Última atualização: Jun 28, 2026

O roteamento de tráfego baseado em versão permite dividir o tráfego entre diferentes versões de serviço conforme pesos especificados. Essa técnica é ideal para lançamentos canário e testes A/B. Este tópico demonstra como usar recursos do Istio para essa finalidade.

Pré-requisitos

Etapa 1: Criar um Gateway

Um Gateway define um balanceador de carga na borda da malha de serviços para conexões HTTP/TCP de entrada ou saída. Esta etapa mostra como criar um Gateway e vinculá-lo ao gateway de entrada.

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha ASM Gateways > Gateway. Na página exibida, clique em Create.

  3. Na página Create, configure os parâmetros a seguir e clique em Create.

    Para obter mais informações sobre os parâmetros, consulte Gateway.

    Parâmetro

    Descrição

    Basic Information

    Defina Namespaces como default e Name como bookinfo-gateway.

    Gateway Pod Selector

    Defina Key como istio e Value como ingressgateway.

    Exposed Service

    Defina Name como http, Port como 80, Protocol como HTTP e Hosts como *.

    A configuração YAML do Gateway é a seguinte.

    O arquivo YAML a seguir mostra o Gateway correspondente às configurações anteriores.

    YAML do Gateway

    apiVersion: networking.istio.io/v1beta1
    kind: Gateway
    metadata:
      name: bookinfo-gateway
      namespace: default
    spec:
      selector:
        istio: ingressgateway
      servers:
        - port:
            number: 80
            name: http
            protocol: HTTP
          hosts:
            - '*'
    

Etapa 2: Criar um VirtualService

O VirtualService roteia solicitações para a aplicação Bookinfo pelos seguintes caminhos: /productpage, /static, /login, /logout e /api/v1/products.

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Traffic Management Center > VirtualService. Na página exibida, clique em Create.

  3. Na página Create, configure os parâmetros a seguir e clique em Create.

    Para obter mais informações sobre os parâmetros, consulte Virtual Service.

    Parâmetro

    Descrição

    Basic Information

    Namespaces

    Neste exemplo, selecione default.

    Name

    Insira um nome personalizado para o VirtualService.

    Gateways

    1. Ative Apply To specific Gateways e clique em Select the name of the Gateway.

    2. Na caixa de diálogo Select the name of the Gateway, selecione bookinfo-gateway, clique no ícone 添加 e clique em OK.

    3. Desative Apply To All Sidecars.

    Hosts

    Clique em Select the gateway domain name which VirtualService belongs to. Na caixa de diálogo Select the gateway domain name which VirtualService belongs to, selecione *, clique no ícone 添加 e clique em OK.

    HTTP Route

    Name

    Clique em HTTP Route, clique em Add Route e insira um Name personalizado.

    Request matching rules

    Clique repetidamente em Add Request Matching Rule para configurar as cinco regras a seguir:

    • Ative Matching request URI, defina Method como Exact e defina Content como /productpage.

    • Ative Matching request URI, defina Method como Prefix e defina Content como /static.

    • Ative Matching request URI, defina Method como Exact e defina Content como /login.

    • Ative Matching request URI, defina Method como Exact e defina Content como /logout.

    • Ative Matching request URI, defina Method como Prefix e defina Content como /api/v1/products.

    Route destination

    Clique em Add Route Destination, defina Host como productpage e defina Port como 9080.

    O arquivo YAML a seguir mostra o VirtualService correspondente às configurações anteriores.

    YAML do VirtualService

    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: vs-demo
      namespace: default
    spec:
      hosts:
        - '*'
      http:
        - name: gw-to-productage
          match:
            - uri:
                exact: /productpage
            - uri:
                prefix: /static
            - uri:
                exact: /login
            - uri:
                exact: /logout
            - uri:
                prefix: /api/v1/products
          route:
            - destination:
                host: productpage
                port:
                  number: 9080
      gateways:
        - bookinfo-gateway
    

Etapa 3: Acessar a aplicação Bookinfo

  1. Obtenha o endereço de serviço do gateway de entrada.

    Console do ASM

    1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

    2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha ASM Gateways > Ingress Gateway.

    3. Na página Ingress Gateway, localize o Service address.

    Console do ACK

    1. Faça login no console do ACK. 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 > Services.

    3. No topo da página Hosts, selecione Namespaces na lista suspensa Namespace. Na coluna External IP, localize o endereço IP associado à porta 80 do serviço istio-ingressgateway.

  2. Na barra de endereços do navegador, insira http://{endereço IP do gateway de entrada}/productpage e atualize a página várias vezes para observar o roteamento round-robin padrão.

    A cada atualização da página, você acessa uma das versões v1, v2 ou v3 do serviço reviews. O tráfego para as três versões do serviço reviews é distribuído em uma proporção aproximada de 1:1:1.

    A página reviews-v1 exibe apenas avaliações em texto, sem classificação por estrelas. A página reviews-v2 exibe classificações com estrelas pretas, e a página reviews-v3 exibe classificações com estrelas vermelhas.

Etapa 4: Criar regras de roteamento baseadas em versão

  1. Crie um DestinationRule para definir subconjuntos baseados em versão (v1, v2 e v3) para o serviço reviews.

    1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

    2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Traffic Management Center > DestinationRule. Na página exibida, clique em Create.

    3. Na página Create, configure os parâmetros a seguir e clique em Create.

      Para obter mais informações sobre os parâmetros, consulte Destination Rule.

      Parâmetro

      Descrição

      Basic Information

      Defina Namespaces como default, insira um Name personalizado para o DestinationRule e defina Host como reviews.

      Service Version (Subset)

      Clique em Service Version (Subset). Clique repetidamente em Add Service Version (Subset) para configurar os três subconjuntos a seguir.

      • Subconjunto 1: Defina Name como v1. Clique em Add Label, defina Key como version e defina Value como v1.

      • Subconjunto 2: Defina Name como v2. Clique em Add Label, defina Key como version e defina Value como v2.

      • Subconjunto 3: Defina Name como v3. Clique em Add Label, defina Key como version e defina Value como v3.

        O arquivo YAML a seguir mostra o DestinationRule correspondente às configurações anteriores.

      YAML do DestinationRule

      apiVersion: networking.istio.io/v1beta1
      kind: DestinationRule
      metadata:
        name: reviews
        namespace: default
        labels: {}
      spec:
        host: reviews
        subsets:
          - name: v1
            labels:
              version: v1
          - name: v2
            labels:
              version: v2
          - name: v3
            labels:
              version: v3
      
  2. Crie um VirtualService para rotear o tráfego para o serviço reviews com base nos seguintes pesos: 10% para v1, 40% para v2 e 50% para v3.

    1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

    2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Traffic Management Center > VirtualService. Na página exibida, clique em Create.

    3. Na página Create, configure os parâmetros a seguir e clique em Create.

      Parâmetro

      Descrição

      Basic Information

      Namespaces

      Neste exemplo, selecione default.

      Name

      Insira um nome personalizado para o VirtualService.

      Gateways

      Ative Apply To All Sidecars.

      Hosts

      Clique em Add Host. Na caixa de diálogo Add Host, defina Namespaces como default. Na seção Add Host, selecione o serviço reviews, clique no ícone 添加 e clique em OK.

      HTTP Route

      Name

      Clique em HTTP Route, clique em Add Route e insira um Name personalizado.

      Route destination

      Clique repetidamente em Add Route Destination para configurar os três destinos de rota a seguir.

      • Defina Host como reviews, a versão como v1 e o peso como 10.

      • Defina Host como reviews, Subset como v2 e Weight como 40.

      • Defina Host como reviews, Subset como v3 e Weight como 50.

        O arquivo YAML a seguir mostra o VirtualService correspondente às configurações anteriores.

      O YAML do VirtualService é o seguinte.

      YAML do VirtualService

      apiVersion: networking.istio.io/v1beta1
      kind: VirtualService
      metadata:
        name: reviews
        namespace: default
      spec:
        hosts:
          - reviews.default.svc.cluster.local
        http:
          - name: route
            route:
              - destination:
                  host: reviews
                  subset: v1
                weight: 10
              - destination:
                  host: reviews
                  subset: v2
                weight: 40
              - destination:
                  host: reviews
                  subset: v3
                weight: 50

Etapa 5: Verificar o roteamento baseado em versão

Na barra de endereços do navegador, insira http://{endereço IP do gateway de entrada}/productpage e atualize a página cerca de 10 vezes.

Se o tráfego for distribuído para as versões de serviço v1, v2 e v3 em uma proporção aproximada de 1:4:5, as regras de roteamento ponderado estarão funcionando corretamente.