Instalación de varios proyectos en GKE

En esta guía, se explica cómo instalar Anthos Service Mesh en una malla que contiene varios clústeres de Google Kubernetes Engine (GKE) que se encuentran en diferentes proyectos de Google Cloud.

Puedes usar esta guía para los siguientes casos de uso de integración:

  • Instalaciones nuevas de Anthos Service Mesh 1.10.6.

  • Actualiza de 1.9 or a 1.10 patch release a Anthos Service Mesh 1.10.6. No se admiten las actualizaciones a versiones anteriores.

  • Migraciones de Istio de código abierto  a Anthos Service Mesh 1.10.6. Si tienes una versión anterior de Istio, debes realizar una actualización antes de migrar a Anthos Service Mesh. Si necesitas realizar una actualización, ve a la página Actualiza Istio en la versión de Istio aplicable. Ten en cuenta que no se prueba ni se recomienda de forma oficial la actualización de Istio en más de una versión secundaria (por ejemplo, de 1.6.x a 1.8.x) en un paso. Asegúrate de revisar la sección Prepárate para la migración desde Istio a fin de planificar tu migración.

No todas las funciones están disponibles para una malla de servicios con clústeres en proyectos diferentes. En particular, los paneles de Anthos Service Mesh en la consola de Google Cloud no están disponibles en este momento. Sin embargo, aún puedes ver registros en Cloud Logging y métricas en Cloud Monitoring para cada proyecto.

Antes de comenzar

En esta guía, suponemos que ya tienes lo siguiente:

Si realizas la migración desde Istio, asegúrate de revisar Prepárate para la migración desde Istio.

Diferencias entre Anthos Service Mesh y Anthos

Anthos Service Mesh está disponible con GKE Enterprise o como servicio independiente. Las API de Google se utilizan para determinar cómo se te factura. Para usar Anthos Service Mesh como un servicio independiente, no habilites la API de GKE Enterprise en tu proyecto. Para obtener información sobre los precios de Anthos Service Mesh, consulta la página Precios.

  • Si eres suscriptor de GKE Enterprise, asegúrate de habilitar la API de GKE Enterprise.

    Habilitar la API

  • Si no eres suscriptor de GKE Enterprise, aún puedes instalar Anthos Service Mesh, pero ciertos elementos y funciones de la IU en la consola de Google Cloud solo están disponibles para los suscriptores de GKE Enterprise. Si deseas obtener información sobre lo que está disponible para suscriptores y no suscriptores, consulta Diferencias entre la IU de GKE Enterprise y Anthos Service Mesh.

  • Si habilitaste la API de GKE Enterprise, pero deseas usar Anthos Service Mesh como servicio independiente, inhabilita la API de GKE Enterprise.

Requisitos

  • Debido a que tus clústeres están en proyectos diferentes, deben estar en una Nube privada virtual compartida (VPC). Para obtener información sobre la configuración de los clústeres, consulta Configura clústeres con VPC compartida.

  • El clúster de GKE debe cumplir con los siguientes requisitos:

    • El clúster de GKE debe ser estándar, ya que los clústeres de Autopilot tienen limitaciones de webhooks que no permiten el MutatingWebhookConfiguration para istio-sidecar-injector.

    • Su tipo de máquina debe tener, al menos, cuatro CPU virtuales, como e2-standard-4. Si el tipo de máquina del clúster no tiene al menos cuatro CPU virtuales, cámbialo como se describe en Migra cargas de trabajo a diferentes tipos de máquina.

    • La cantidad mínima de nodos depende del tipo de máquina. Anthos Service Mesh requiere al menos ocho CPU virtuales. Si el tipo de máquina tiene cuatro CPU virtuales, el clúster debe tener al menos dos nodos. Si el tipo de máquina tiene ocho CPU virtuales, el clúster solo necesita un nodo. Si necesitas agregar nodos, consulta Cambia el tamaño de un clúster.

    • Para preparar tu clúster antes de instalar Anthos Service Mesh, habilita Workload Identity. Workload Identity es el método recomendado para llamar a las API de Google. Habilitar Workload Identity cambia la forma en que se protegen las llamadas de tus cargas de trabajo a las API de Google, como se describe en Limitaciones de Workload Identity.

    • De manera opcional, puedes inscribir el clúster en un canal de versiones. Te recomendamos que te inscribas en el canal de versiones regular, ya que otros podrían basarse en una versión de GKE que no es compatible con Anthos Service Mesh 1.10.6. Para obtener más información, consulta Entornos compatibles. Sigue las instrucciones en Inscribe un clúster existente en un canal de versiones si tienes una versión estática de GKE.

  • Para que se los incluya en la malla de servicios, los puertos de servicio deben tener un nombre, y ese nombre debe incluir el protocolo del puerto en la siguiente sintaxis: name: protocol[-suffix], en la que los corchetes indican un sufijo opcional que debe comenzar con un guion. Para obtener más información, consulta Asigna nombres a puertos de servicio.

  • Si instalas Anthos Service Mesh en un clúster privado, debes abrir el puerto 15017 en el firewall para que el webhook se use con la incorporación automática de sidecar y funcione de manera correcta. Para obtener más información, consulta Abre un puerto en un clúster privado.

  • Si creaste un perímetro de servicio en tu organización, es posible que debas agregar el servicio de CA de Mesh al perímetro. Para obtener más información, consulta Agrega la CA de Mesh a un perímetro de servicio.

  • Un proyecto de Google Cloud solo puede tener una malla asociada.

  • Si deseas reducir los límites de recursos predeterminados para el contenedor de archivo adicional istio-proxy, los límites nuevos deben permitir que la memoria suficiente para evitar los eventos con falta de memoria (OOM)..

Elige una autoridad certificada

Para las instalaciones y las migraciones nuevas desde Istio, puedes usar la autoridad certificadora de Anthos Service Mesh (CA de Mesh) oCitadel de Istio como autoridad certificadora (CA) para la emisión de certificados de TLS mutua (mTLS).

A menos que necesites una CA personalizada, como HashiCorp Vault, te recomendamos que uses la CA de Mesh por los siguientes motivos:

  • La CA de Mesh es un servicio altamente confiable y escalable que está optimizado para cargas de trabajo escaladas de forma dinámica en Google Cloud.
  • Con la CA de Mesh, Google administra la seguridad y la disponibilidad del backend de CA.
  • La CA de Mesh te permite tener una sola raíz de confianza entre clústeres.

Si migras desde Istio, puedes elegir migrar a la CA de Mesh o seguir usando la CA de Citadel de Istio. Si eliges Citadel, hay poco tiempo de inactividad porque el tráfico de mTLS no se interrumpe durante la migración. Si eliges CA de Mesh, debes programar el tiempo de inactividad para la migración, ya que la raíz de confianza cambia de Citadel a la CA de Mesh. Para completar la migración a la raíz de confianza de la CA de Mesh, debes reiniciar todos los Pods en todos los espacios de nombres. Durante este proceso, los Pods antiguos no pueden establecer conexiones mTLS con los Pods nuevos.

En los certificados de CA de Mesh, se incluyen los siguientes datos sobre los servicios de tu aplicación:

  • El ID del proyecto de Google Cloud
  • El espacio de nombres de GKE
  • El nombre de la cuenta de servicio de GKE

Registra tu clúster

Aunque no es obligatorio actualmente, te recomendamos que registres el clúster en la flota de tu proyecto (antes conocido como Environ). Una flota te permite organizar clústeres para facilitar la administración de varios clústeres. Mediante el registro de tus clústeres en una flota, puedes agrupar servicios y otras infraestructuras según sea necesario para aplicar políticas coherentes. Si tienes clústeres en diferentes proyectos, deberás registrarlos con el proyecto host de entorno en lugar de hacerlo con el proyecto en el que se creó el clúster. Si deseas obtener más información para registrar tu clúster, consulta Registra clústeres en la flota.

El concepto de un proyecto host de flota es importante cuando configuras tu clúster para habilitar las opciones que requiere Anthos Service Mesh. La malla de servicios del clúster se identifica con un valor basado en un número de proyecto. Cuando configuras clústeres de diferentes proyectos, tienes que usar el número del proyecto host de flota.