Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Connect to Consul service registries

Última atualização: Jun 28, 2026

O Service Mesh ASM oferece integração com um registro de serviço do Consul para facilitar a migração de microsserviços para o ASM. Este tópico descreve como integrar um registro de serviço do Consul ao ASM.

Pré-requisitos

  • A instância do ASM deve executar a versão v1.7.5.31-g28ec7490-aliyun ou posterior.

  • O Consul deve estar implantado como registro de serviço. Para mais informações, consulte Installing Consul on Kubernetes.

  • Os pods no cluster Kubernetes adicionado ao Service Mesh precisam acessar o endpoint do servidor Consul. Por exemplo, o servidor Consul pode estar instalado no mesmo cluster Kubernetes e expor um endpoint público ou fornecer um endpoint interno acessível.

  • Serviços de exemplo, incluindo Web, Web2 e o serviço integrado do Consul, devem estar registrados no Consul. Para mais informações, consulte Services.

Contexto

O ASM fornece um recurso para conexão a um registro de serviço do Consul. Isso facilita a migração de microsserviços para o ASM, pois permite que serviços dentro do Service Mesh chamem serviços fora do Service Mesh. O ASM não registra automaticamente os serviços internos do Service Mesh no registro de serviço do Consul. Para permitir que serviços externos ao Service Mesh chamem serviços internos da malha de serviço, registre manualmente os serviços do Service Mesh no registro de serviço do Consul.

Etapa 1: Obter a configuração do ASM-se-syncer

  1. Obtenha o ID da instância do ASM.

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

    2. Na página Mesh Management, localize o ID da instância desejada na coluna Name/ID.

  2. Obtenha o ID da região do cluster.

    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 Cluster Information.

    3. Na seção Basic Information, visualize a região do cluster. Por exemplo, se a região for China (Beijing), o ID da região será cn-beijing. Para mais informações sobre regiões, consulte Regiões suportadas.

  3. Obtenha um AccessKey ID e um AccessKey secret. Para mais informações, consulte Criar um par de AccessKey.

Etapa 2: Instalar o ASM-se-syncer

  1. Conecte-se ao seu cluster usando kubectl. Para mais informações, consulte Obter o arquivo kubeconfig de um cluster e usar kubectl para conectar-se ao cluster.

  2. Instale o Helm na sua máquina local. Para mais informações, consulte a documentação do Helm.

    Nota

    Após conectar-se ao cluster com kubectl, o cliente Helm usa automaticamente o arquivo KubeConfig para estabelecer a conexão com o cluster.

  3. Baixe e descompacte o chart Helm asm-se-syncer na sua máquina local.

  4. Acesse a pasta asm-se-syncer e localize o arquivo values.yaml. No arquivo values.yaml, adicione o ID do ASM, o ID da região do cluster, o AccessKey ID e o AccessKey secret. Em seguida, modifique as seguintes informações do serviço Consul e salve o arquivo values.yaml.

    [
      {
        "name": "consul-test",
        "prefix": "consul-",
        "type": "consul",
        "endpoint": "http://consul-server.consul:8500",
        "toNamespace": "default"
      }
    ]

    Parâmetro

    Descrição

    name

    Nome exclusivo para o registro de serviço.

    prefix

    Prefixo para os nomes dos recursos de service entry gerados.

    type

    Tipo do registro de serviço. O único valor suportado é consul.

    endpoint

    Endereço do endpoint do registro de serviço.

    toNamespace

    Namespace onde os recursos de service entry gerados são criados. Se o namespace não existir, ele será criado automaticamente.

    Para conectar-se a vários registros de serviço do Consul, adicione a configuração de cada registro ao arquivo values.yaml. Depois, salve o arquivo values.yaml.

    [
      {
        "name": "consul-test01",
        "prefix": "consul01-",
        "type": "consul",
        "endpoint": "http://consul-server01.consul:8500",
        "toNamespace": "default"
      },
      {
        "name": "consul-test02",
        "prefix": "consul02-",
        "type": "consul",
        "endpoint": "http://consul-server02.consul:8500",
        "toNamespace": "default"
      }
    ]
  5. Execute o seguinte comando para instalar o ASM-se-syncer.

    helm install -f values.yaml se-syncer ./

    Após a instalação do ASM-se-syncer, o ASM conecta-se automaticamente ao registro de serviço do Consul, instala o componente asm-serviceregistry-syncer no cluster ACK e sincroniza os serviços do Consul com o Service Mesh.

Etapa 3: Verificar a integração com o Consul

  1. Verifique o status de instalação do componente do ASM.

    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 Workloads > Deployments.

    3. Na página Deployments, localize o componente chamado asm-serviceregistry-syncer.

      Se o componente estiver no estado pronto 1/1, ele está executando corretamente.

  2. Verifique o status de sincronização dos recursos de service entry.

    1. Faça login no ASM console. 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 Cluster & Workload Management > External Service(ServiceEntry).

    3. Na página External Service(ServiceEntry), verifique se os serviços registrados no Consul foram sincronizados com o Service Mesh.

      Nota
      • Na página External Service(ServiceEntry), os nomes dos serviços do Consul seguem o formato: [prefix]-[service name in Consul]. O prefixo corresponde ao valor especificado para o parâmetro prefix.

      • Na página External Service(ServiceEntry), o namespace dos serviços do Consul corresponde ao valor do parâmetro toNamespace especificado.

Perguntas frequentes

Como chamo um serviço sincronizado?

Depois que o cluster do serviço chamador fizer parte do plano de dados da malha de serviço, chame o serviço sincronizado de uma das seguintes maneiras:

  • Método 1: Ative o proxy DNS e chame o serviço usando o hostname e a porta do campo hosts do service entry.

    1. Ative o proxy DNS. Para mais informações, consulte Usar o recurso de proxy DNS em uma instância do ASM.

    2. Obtenha o hostname e a porta para chamar o serviço.

      1. Faça login no ASM console. 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 Cluster & Workload Management > External Service(ServiceEntry).

      3. Na página External Service(ServiceEntry), localize o service entry desejado e clique em View YAML na coluna Operator.

        Na caixa de diálogo Edit, obtenha o hostname e a porta, e use http://<hostname>:<port> para chamar o serviço. No arquivo YAML do ServiceEntry, o item de configuração chave hosts está definido como pro-qf-test, e o número da porta (number) está definido como 80.

        - apiVersion: istio.alibabacloud.com,
              controller: true
              kind: ASMServiceRegistry
              name: default
              uid: 5d301b4e-39bc-46b5-xxx
              resourceVersion: '432158678'
              selfLink: >-
                /apis/networking.istio.io/v1beta1/naxxx
              uid: e446b651-be82-4e13-99xxx
          spec:
            addresses:
              - 172.30.xxx
            endpoints:
              - address: 172.xxx
                ports:
                  http: 80
            hosts:
              - pro-qf-test
            ports:
              - name: http
                number: 80
                protocol: HTTP
            resolution: STATIC
  • Método 2: Chame o serviço usando o endereço do campo endpoints do External Service(ServiceEntry).

    1. Faça login no ASM console. 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 Cluster & Workload Management > External Service(ServiceEntry).

    3. Na página External Service(ServiceEntry), localize o service entry desejado e clique em View YAML na coluna Operator.

      Na caixa de diálogo Edit, localize o endereço. Chame o serviço usando o formato http://<address>. No YAML, o item de configuração chave é o campo address em spec.endpoints.

      - apiVersion: istio.alibacloud.com
            controller: true
            kind: ASMServiceRegistry
            name: default
            uid: 5d301b4e-39bc-46b5-xxx
            resourceVersion: '432158678'
            selfLink: >-
              /apis/networking.istio.io/v1beta1/naxxx
            uid: e446b651-be82-4e13-99xxx
        spec:
          addresses:
            - 172.30.xxx
          endpoints:
            - address: 172.xxx
              ports:
                http: 80
          hosts:
            - pro-qf-test
          ports:
            - name: http
              number: 80
              protocol: HTTP
          resolution: STATIC

Como funciona a sincronização de serviços?

Os serviços registrados no Consul são sincronizados automaticamente com o Istio como recursos de service entry. Quando um serviço é excluído ou atualizado no Consul, a alteração é sincronizada automaticamente com o service entry correspondente no Istio.

Como desativar a integração com o Consul?

Execute o seguinte comando para excluir os recursos de sincronização do Consul.

helm uninstall se-syncer