O gateway do ASM oferece suporte à implantação em vários clusters para aumentar a disponibilidade do serviço. Implante seus serviços em múltiplos clusters e configure um gateway de entrada unificado para atuar como proxy de todo o tráfego de entrada. Este tópico descreve como configurar um gateway de entrada unificado para múltiplos clusters.
Pré-requisitos
Implante aplicações em dois clusters associados à sua instância do ASM. Para mais informações, consulte Adicionar clusters a uma instância do ASM e Implantar aplicações em clusters associados a uma instância do ASM.
Injete proxies Sidecar no namespace. Para mais informações, consulte Configurar políticas de injeção de Sidecar.
Visão geral da configuração
Ao implantar um gateway do ASM em múltiplos clusters, o sistema cria pods de gateway e Services correspondentes em cada cluster e anexa uma instância CLB a cada Service. Consequentemente, um gateway multicluste possui vários endereços IP.
O gateway do ASM permite reutilizar instâncias CLB existentes, mas não utilize a mesma instância CLB para múltiplos Services.
Este tópico aborda os métodos de configuração para os dois cenários a seguir:
Cenário 1: As configurações de recursos relacionados ao gateway são idênticas em todos os clusters.
Cenário 2: As configurações de recursos relacionados ao gateway diferem entre os clusters, como diferenças nas especificações do CLB ou no número de réplicas do gateway.
Cenário 1: As configurações de recursos relacionados ao gateway são idênticas em todos os clusters
Quando os recursos relacionados ao gateway são idênticos em todos os clusters, crie um gateway multicluste pelo console do ASM ou converta um gateway de cluster único existente em um gateway multicluste. O ASM cria gateways com configurações idênticas em todos os clusters especificados, com base na sua configuração.
Método 1: Criar um gateway multicluste
Crie um gateway multicluste pelo console do ASM utilizando as opções de configuração da interface ou um arquivo YAML.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em nome da instância do ASM. No painel de navegação à esquerda, escolha .
-
Crie um gateway multicluste.
-
Método 1: Criar um gateway multicluste usando as opções de configuração da interface
Na página Ingress Gateway, clique em Create.
-
Na página Create, selecione vários clusters de destino em Cluster, defina as outras configurações conforme necessário e clique em Create.
Para obter detalhes sobre outras opções de configuração, consulte Criar um gateway de entrada.

-
Método 2: Criar um gateway multicluste usando um arquivo YAML
Na página Ingress Gateway, clique em Create from YAML.
-
Na página Create, configure o seguinte YAML e clique em Create.
apiVersion: istio.alibabacloud.com/v1beta1 kind: IstioGateway metadata: name: ingressgateway-multi-cluster namespace: istio-system spec: affinity: {} autoCreateGatewayYaml: false clusterIds: - c87e370627c3f4e62ac77a7********* - c877e9b78610a419e833f22********* compression: {} cpu: {} dnsPolicy: ClusterFirst externalTrafficPolicy: Local gatewayType: ingress hostNetwork: false kernel: parameters: {} memory: {} ports: - name: http-0 port: 80 protocol: HTTP targetPort: 80 - name: https-1 port: 443 protocol: HTTPS targetPort: 443 readinessProbe: {} replicaCount: 2 resources: limits: cpu: '2' memory: 4G requests: cpu: 200m memory: 256Mi runAsRoot: true sds: {} serviceAnnotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: slb.s1.small service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet serviceType: LoadBalancer
-
Método 2: Converter um gateway de cluster único em um gateway multicluste
Caso já possua um gateway de cluster único, adicione os IDs dos clusters necessários ao array spec.clusterIds no YAML do gateway para convertê-lo em um gateway multicluste.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em nome da instância do ASM. No painel de navegação à esquerda, escolha .
Na página Ingress Gateway, clique em View YAML ao lado do gateway de destino.
-
Na caixa de diálogo Edit, adicione o ID do cluster de destino ao campo spec.clusterIds e clique em OK.

Verificar se o gateway multicluste foi criado com sucesso
Verifique os recursos relacionados ao gateway, como Services e Deployments, no namespace istio-system de ambos os clusters do plano de dados. Se ambos os clusters contiverem recursos configurados de forma idêntica, o gateway multicluste foi criado com sucesso.
Cenário 2: As configurações de recursos relacionados ao gateway diferem entre os clusters
Talvez seja necessário ter configurações de gateway diferentes para cada um dos dois clusters onde o gateway está implantado. Por exemplo, um cluster pode exigir um CLB criado automaticamente, enquanto o outro reutiliza um CLB existente. Ou um cluster precisa de três réplicas de gateway, enquanto o outro requer cinco. Para personalizar as configurações do gateway multicluste, modifique o arquivo YAML correspondente. O exemplo a seguir mostra como configurar tipos diferentes de CLB para um novo gateway multicluste: um cluster usa um CLB criado automaticamente e o outro reutiliza um CLB existente.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, clique em nome da instância do ASM. No painel de navegação à esquerda, escolha .
Na página Ingress Gateway, clique em Create from YAML.
-
Na página Create, configure o seguinte YAML e clique em Create.
apiVersion: istio.alibabacloud.com/v1beta1 kind: IstioGateway metadata: name: ingressgateway2 namespace: istio-system spec: autoCreateGatewayYaml: false clusterIds: - c0ed16dbd6c5e429faca464********** - c7d5fba8f3c974353b56522********** compression: {} cpu: {} dnsPolicy: ClusterFirst externalTrafficPolicy: Local gatewayType: ingress hostNetwork: false kernel: parameters: {} memory: {} overrides: c0ed16dbd6c5e429faca464***********: serviceAnnotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: slb.s1.small service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet c7d5fba8f3c974353b56522**********: serviceAnnotations: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: lb-bp1lv01rlga******** ports: - name: http-0 port: 80 protocol: HTTP targetPort: 80 - name: https-2 port: 443 protocol: HTTPS targetPort: 443 readinessProbe: {} replicaCount: 1 resources: limits: cpu: '2' memory: 4G requests: cpu: 200m memory: 256Mi rollingMaxSurge: 25% rollingMaxUnavailable: 25% runAsRoot: true sds: {} serviceType: LoadBalancerO campo overrides utiliza uma estrutura de mapa. As chaves são os IDs dos clusters e os valores usam os mesmos nomes de campos presentes no spec do gateway. É possível definir parâmetros relacionados ao CLB, o número de réplicas do gateway, especificações de recursos do gateway e outras configurações individualmente para cada cluster no campo overrides. As definições neste campo têm precedência sobre as configurações de nível superior do gateway. Para mais informações sobre esses campos, consulte Referência de CRD do gateway do ASM.
-
Verifique se o gateway multicluste foi criado com sucesso.
Confira o Service relacionado ao gateway no namespace istio-system de cada cluster. Se o Service de um cluster utilizar o IP de um CLB criado automaticamente e o outro usar o IP de um CLB especificado, o gateway multicluste foi criado com sucesso.