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.10-asm asm
Como instalar o gateway east-west
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-1106-2 | \ istioctl --context="${CTX_CLUSTER1}" install -y -f -
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.
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
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
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}"
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}"