Configura una malla de varios clústeres de forma local

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.

En esta guía, se supone que ya tienes instalado GKE en VMware o Bare Metal mediante los pasos que se proporcionan en Instala Anthos Service Mesh de forma local. Si tienes instalada una versión anterior de Anthos Service Mesh, consulta Actualiza Anthos Service Mesh local. En esta guía, se hace referencia a los clústeres como cluster1 en network1 y cluster2 en network2. También, se usan variables de entorno para definir los contextos del clúster como CTX_CLUSTER1 y CTX_CLUSTER2.

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.10-asm asm
    

Instala la puerta de enlace este-oeste

  1. 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-1106-2 | \
    istioctl --context="${CTX_CLUSTER1}" install -y -f -
    
  2. 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.

  1. 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
    
  2. 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

  1. 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}"
    
  2. 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}"
    

Próximos pasos