En esta guía, se explica cómo configurar Anthos Service Mesh con varios GKE en VMware y en Bare Metal. Puedes ampliar este proceso para incorporar cualquier cantidad de clústeres en la malla.
Una configuración de Anthos Service Mesh de varios clústeres puede resolver varias situaciones empresariales fundamentales, como el escalamiento, la ubicación y el aislamiento. Para obtener más información, consulta Casos de uso de varios clústeres. Además, debes optimizar las aplicaciones para aprovechar la malla de servicios al máximo. Si deseas obtener más información, consulta Prepara una aplicación para Anthos Service Mesh.
Requisitos
Antes de comenzar, en esta guía se supone que usas clústeres nuevos o existentes que se crearon con los pasos descritos en Instala Anthos Service Mesh de forma local.
Los requisitos de esta guía se agregan a los que se describen en Instala Anthos Service Mesh de manera local.
Necesitarás el paquete de configuración que se usó antes para instalar Anthos Service Mesh en tu clúster. Si necesitas otra copia, puedes descargarla usando el siguiente comando:
kpt pkg get \ https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm
Instala la puerta de enlace este-oeste
Instala una puerta de enlace en cluster1 que esté dedicada al tráfico este-oeste. De forma predeterminada, esta puerta de enlace será pública en Internet. Los sistemas de producción pueden requerir restricciones de acceso adicionales, por ejemplo, reglas de firewall, para evitar ataques externos.
asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh mesh1 --cluster cluster1 --network network1 --revision asm-198-6 | \ istioctl --context="${CTX_CLUSTER1}" install -y -f -
Instala una puerta de enlace en el cluster2 que esté dedicada al tráfico este-oeste para el cluster1.
/asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh mesh1 --cluster cluster2 --network network2 | \ istioctl --context="${CTX_CLUSTER2}" install -y -f -
Servicios expuestos
Como los clústeres se encuentran en redes separadas, deberás exponer todos los servicios (*.local
) en la puerta de enlace este-oeste en ambos clústeres. Aunque esta puerta de enlace es pública en Internet, solo los servicios que tengan un certificado mTLS y un ID de carga de trabajo de confianza podrán acceder a los servicios subyacentes, como si estuvieran en la misma red.
Expón servicios a través de la puerta de enlace este-oeste para el cluster1.
kubectl --context="${CTX_CLUSTER1}" apply -n istio-system -f \ asm/istio/expansion/expose-services.yaml
Expón servicios a través de la puerta de enlace este-oeste para el cluster2.
kubectl --context="${CTX_CLUSTER2}" apply -n istio-system -f \ asm/istio/expansion/expose-services.yaml
Habilita la detección de extremos
Instala un secreto remoto en el cluster2 que proporcione acceso al servidor de API del cluster1.
istioctl x create-remote-secret \ --context="${CTX_CLUSTER1}" \ --name=cluster1 | \ kubectl apply -f - --context="${CTX_CLUSTER2}"
Instala un secreto remoto en el cluster2 que proporcione acceso al servidor de API del cluster2.
istioctl x create-remote-secret \ --context="${CTX_CLUSTER2}" \ --name=cluster2 | \ kubectl apply -f - --context="${CTX_CLUSTER1}"