Como configurar uma malha de vários clusters no local

Neste guia, explicamos como configurar o Anthos Service Mesh com vários clusters do GKE no VMware e em bare metal. É possível ampliar esse processo para incorporar qualquer quantidade de clusters na malha.

Importante: este guia pressupõe que você já tenha clusters do GKE no VMware ou em bare metal usando as etapas fornecidas em Como instalar o Anthos Service Mesh no local. Se você tiver uma versão anterior do Anthos Service Mesh instalada, consulte Como fazer upgrade do Anthos Service Mesh no local. Este guia se refere aos clusters como cluster1 em network1 e cluster2 em network2. Ele também usa variáveis de ambiente para definir os contextos do cluster como CTX_CLUSTER1 e CTX_CLUSTER2.

Uma configuração do Anthos Service Mesh de vários clusters pode resolver várias situações corporativas cruciais, como escala, local e isolamento. Para mais informações, consulte Casos de uso de vários clusters. Além disso, otimize seus aplicativos para aproveitar ao máximo uma malha de serviço. Para mais informações, consulte Como preparar um aplicativo para o Anthos Service Mesh.

Requisitos

Antes de começar, este guia presume que você esteja usando clusters novos ou atuais criados com as etapas descritas em Como instalar o Anthos Service Mesh no local.

  • Os requisitos deste guia são além daqueles listados em Como instalar o Anthos Service Mesh no local.

  • Você precisará do pacote de configuração usado anteriormente para instalar o Anthos Service Mesh no cluster. Se você precisar de outra cópia, faça o download usando o comando:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.11 asm
    

Como instalar o gateway east-west

  1. Instale um gateway no cluster1 que seja dedicado ao tráfego leste-oeste. Por padrão, esse gateway será público na Internet. Os sistemas de produção podem exigir outras restrições de acesso, como regras de firewall, para evitar ataques externos.

    asm/istio/expansion/gen-eastwest-gateway.sh \
    --mesh mesh1 --cluster cluster1 --network network1 --revision asm-1118-4 | \
    istioctl --context="${CTX_CLUSTER1}" install -y -f -
    
  2. Instale um gateway no cluster2 que seja dedicado ao tráfego leste-oeste para o cluster1.

    /asm/istio/expansion/gen-eastwest-gateway.sh \
    --mesh mesh1 --cluster cluster2 --network network2 | \
    istioctl --context="${CTX_CLUSTER2}" install -y -f -
    

Como expor serviços

Como os clusters estão em redes separadas, é necessário expor todos os serviços (*.local) no gateway leste-oeste em ambos os clusters. Embora este gateway seja público na Internet, os serviços por trás dele só poderão ser acessados por serviços com um certificado mTLS confiável e um ID de carga de trabalho, como se estivessem na mesma rede.

  1. Exponha os serviços por meio do gateway leste-oeste para o cluster1.

    kubectl --context="${CTX_CLUSTER1}" apply -n istio-system -f \
    asm/istio/expansion/expose-services.yaml
    
  2. Exponha serviços por meio do gateway leste-oeste para o cluster2.

    kubectl --context="${CTX_CLUSTER2}" apply -n istio-system -f \
    asm/istio/expansion/expose-services.yaml
    

Como ativar a descoberta de endpoints

  1. Instale um secret remoto no cluster2 que fornece acesso ao servidor da API do cluster1.

    istioctl x create-remote-secret \
    --context="${CTX_CLUSTER1}" \
    --name=cluster1 | \
    kubectl apply -f - --context="${CTX_CLUSTER2}"
    
  2. Instale um segredo remoto no cluster1 que fornece acesso ao servidor da API do cluster2.

    istioctl x create-remote-secret \
    --context="${CTX_CLUSTER2}" \
    --name=cluster2 | \
    kubectl apply -f - --context="${CTX_CLUSTER1}"
    

A seguir