Neste guia, explicamos como configurar uma malha de vários clusters para as seguintes plataformas:
- GKE no VMware
- Google Distributed Cloud Virtual para Bare Metal
- GKE na AWS
- Amazon EKS
Neste guia, mostramos como configurar dois clusters, mas é possível ampliar esse processo para incorporar vários clusters à malha.
Antes de começar
Neste guia, presume-se que o Anthos Service Mesh tenha sido instalado usando
asmcli install
. Você precisa do asmcli
e do pacote de configuração que o asmcli
faz o download para o diretório especificado em --output_dir
quando você executou asmcli install
.
Se precisar de configuração, siga as etapas em Primeiros passos para:
- Instale as ferramentas necessárias
- Fazer o download de
asmcli
- Conceder permissões de administrador de cluster
- Validar o projeto e o cluster
Você precisa ter acesso aos arquivos kubeconfig de todos os clusters que está configurando na malha.
Configurar variáveis de ambiente e marcadores
Você precisa das seguintes variáveis de ambiente ao instalar o gateway leste-oeste.
Crie uma variável de ambiente para o número do projeto. No comando a seguir, substitua FLEET_PROJECT_ID pelo ID do projeto host da frota.
export PROJECT_NUMBER=$(gcloud projects describe FLEET_PROJECT_ID --format="value(projectNumber)")
Crie uma variável de ambiente para o identificador da malha.
export MESH_ID="proj-${PROJECT_NUMBER}"
Crie variáveis de ambiente para os nomes dos clusters no formato exigido por
asmcli
:export CLUSTER_1="cn-FLEET_PROJECT_ID-global-CLUSTER_NAME_1" export CLUSTER_2="cn-FLEET_PROJECT_ID-global-CLUSTER_NAME_2"
Instalar o gateway leste-oeste
Nos comandos a seguir:
Substitua
CLUSTER_NAME_1
eCLUSTER_NAME_2
pelos nomes dos clusters.Substitua
PATH_TO_KUBECONFIG_1
ePATH_TO_KUBECONFIG_2
pelos arquivos kubeconfig dos clusters.
CA da malha
Instale um gateway no cluster1 que seja dedicado ao tráfego leste-oeste.
$CLUSTER_2
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 ${MESH_ID} \ --cluster ${CLUSTER_1} \ --network default \ --revision asm-1118-4 | \ istioctl --kubeconfig=PATH_TO_KUBECONFIG_1 install -y --set spec.values.global.pilotCertProvider=kubernetes -f -
Instale um gateway em
$CLUSTER_2
dedicado ao tráfego leste a oeste para$CLUSTER_1
.asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh ${MESH_ID} \ --cluster ${CLUSTER_2} \ --network default \ --revision asm-1118-4 | \ istioctl install --kubeconfig=PATH_TO_KUBECONFIG_2 -y --set spec.values.global.pilotCertProvider=kubernetes -f -
CA do Istio
Instale um gateway no cluster1 que seja dedicado ao tráfego leste-oeste.
$CLUSTER_2
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 ${MESH_ID} \ --cluster ${CLUSTER_1} \ --network default \ --revision asm-1118-4 | \ istioctl --kubeconfig=PATH_TO_KUBECONFIG_1 install -y -f -
Instale um gateway em
$CLUSTER_2
dedicado ao tráfego leste a oeste para$CLUSTER_1
.asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh ${MESH_ID} \ --cluster ${CLUSTER_2} \ --network default \ --revision asm-1118-4 | \ istioctl --kubeconfig=PATH_TO_KUBECONFIG_2 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
CLUSTER_NAME_1
.kubectl --kubeconfig=PATH_TO_KUBECONFIG_1 apply -n istio-system -f \ asm/istio/expansion/expose-services.yaml
Exponha os serviços por meio do gateway leste-oeste para o
CLUSTER_NAME_2
.kubectl --kubeconfig=PATH_TO_KUBECONFIG_2 apply -n istio-system -f \ asm/istio/expansion/expose-services.yaml
Ativar descoberta de endpoints
Execute o comando asmcli create-mesh
para ativar a descoberta de endpoints. Este
exemplo mostra apenas dois clusters, mas é possível executar o comando para ativar
a descoberta de endpoints em clusters adicionais, sujeito ao
número máximo permitido de clusters que podem ser adicionados à sua frota.
./asmcli create-mesh \
FLEET_PROJECT_ID \
PATH_TO_KUBECONFIG_1 \
PATH_TO_KUBECONFIG_2