Prepararse para configurar Cloud Service Mesh con Envoy
La configuración de Cloud Service Mesh incluye las siguientes fases:
- Conceder permisos, habilitar la API Traffic Director y, si usas Compute Engine, configurar Cloud DNS.
- Desplegar aplicaciones con proxies de Envoy.
- Crear servicios y reglas de enrutamiento que determinen cómo se desplaza el tráfico por tu malla de servicios.
En este documento se describe la primera fase y se aplica cuando se usan las APIs antiguas. Las fases segunda y tercera se describen en las guías específicas de la plataforma que se indican en la sección Continuar con el proceso de configuración de este documento.
Antes de leer esta guía, familiarízate con la información general de Cloud Service Mesh. Si usas las APIs de enrutamiento de servicios, consulta la visión general de las APIs de enrutamiento de servicios.
Requisitos previos
Tanto si tienes previsto usar Cloud Service Mesh para configurar proxies de Envoy que se ejecuten junto con aplicaciones en instancias de máquinas virtuales (VM), contenedores o una combinación de ambos, primero debes completar las siguientes tareas:
- Habilita la facturación.
- Decide cómo quieres instalar Envoy.
- Concede los permisos necesarios.
- Habilita la API de Traffic Director en tu proyecto.
- Si usas Compute Engine, habilita la API Cloud DNS y configura Cloud DNS.
- Asegúrate de que la cuenta de servicio que usan los proxies Envoy tenga permisos suficientes para acceder a la API Traffic Director.
En las siguientes secciones se proporcionan instrucciones para cada tarea.
Habilita la facturación
Comprueba que la facturación esté habilitada en tu Google Cloud proyecto. Para obtener más información, consulta el artículo sobre cómo habilitar, inhabilitar o cambiar la facturación de un proyecto.
Decidir cómo instalar Envoy
Cloud Service Mesh te permite instalar proxies de Envoy y gestionar esta capa de infraestructura:
En Compute Engine, puedes añadir automáticamente Envoy a las aplicaciones que se ejecutan en tus máquinas virtuales. Usas una plantilla de VM que instala Envoy, lo conecta a Cloud Service Mesh y configura la red de tu VM.
En Google Kubernetes Engine (GKE), puedes añadir automáticamente proxies sidecar de Envoy a los pods de tus servicios. Instalas un inyector de sidecar de Envoy en tu clúster, que añade proxies de sidecar de Envoy, los conecta a Cloud Service Mesh y configura la red de tu contenedor.
Por último, también puedes usar soluciones de implementación de Envoy de proveedores externos con Cloud Service Mesh. Un ejemplo de este tipo de oferta es GetEnvoy, que proporciona un método basado en gestores de paquetes para instalar y actualizar tus proxies de Envoy.
Acerca de las versiones de Envoy
Para que Envoy funcione con Cloud Service Mesh, debe tener la versión 1.9.1 o una posterior. Te recomendamos que utilices siempre la versión más reciente de Envoy para asegurarte de que se mitiguen las vulnerabilidades de seguridad conocidas.
Si decides implementar Envoy con uno de nuestros métodos automatizados, nosotros nos encargaremos de esta tarea de la siguiente manera:
Cuando usas el despliegue automático de Envoy con máquinas virtuales de Compute Engine, la versión de Envoy instalada es una que hemos validado para que funcione con Cloud Service Mesh. Cuando se crea una VM con la plantilla de instancia, la VM recibe la última versión que hemos validado. Si tienes una máquina virtual que se ejecuta durante mucho tiempo, puedes usar una actualización continua para sustituir las máquinas virtuales que tengas y obtener la versión más reciente.
Cuando usas el inyector de sidecar de Envoy con GKE, el inyector se configura para usar una versión reciente de Envoy que hemos validado para que funcione con Cloud Service Mesh. Cuando se inserta un sidecar junto al Pod de tu carga de trabajo, recibe esta versión de Envoy. Si quieres usar una versión más reciente de Envoy, actualiza el inyector de sidecar de Envoy.
Para obtener información sobre versiones específicas de Envoy, consulta el historial de versiones. Para obtener información sobre las vulnerabilidades de seguridad, consulta Avisos de seguridad.
Conceder los permisos de gestión de identidades y accesos necesarios
Debes tener permisos de gestión de identidades y accesos (IAM) suficientes para crear instancias de VM y modificar una red para configurar Cloud Service Mesh. Si tienes el rol de propietario o editor (roles/owner
o roles/editor
) del proyecto en el que vas a habilitar Cloud Service Mesh, tienes los permisos correctos automáticamente.
De lo contrario, debes tener todos los roles de gestión de identidades y accesos de Compute Engine que se muestran en la siguiente tabla. Si tienes estos roles, también tendrás los permisos asociados, tal como se describe en la documentación de gestión de identidades y accesos de Compute Engine.
Tarea | Rol necesario |
---|---|
Defina la política de gestión de identidades y accesos de una cuenta de servicio. | Administrador de cuentas de servicio
( roles/iam.serviceAccountAdmin ) |
Habilita Cloud Service Mesh. | Administrador de uso de servicios
( roles/serviceusage.serviceUsageAdmin ) |
Crea redes, subredes y componentes de balanceador de carga. | Administrador de red de Compute
( roles/compute.networkAdmin ) |
Añadir y quitar reglas de cortafuegos. | Administrador de seguridad de Compute
( roles/compute.securityAdmin ) |
Crear instancias. | Administrador de instancias de Compute
( roles/compute.instanceAdmin ) |
El grupo de nodos de GKE o las VMs de Compute Engine deben tener el ámbito https://www.googleapis.com/auth/cloud-platform
. Para obtener más información, consulta Solucionar problemas de despliegues que utilizan Envoy.
Con xDS v3, asigna el rol roles/trafficdirector.client
a la cuenta de servicio que usan los clientes de Envoy de Cloud Service Mesh.
Habilitar la API de Traffic Director
Consola
En la Google Cloud consola, ve a la página Biblioteca de APIs de tu proyecto.
En el campo Buscar APIs y servicios, introduce
Traffic Director
.En la lista de resultados de búsqueda, haz clic en API Traffic Director. Si no ves la API de Traffic Director en la lista, significa que no tienes los permisos necesarios para habilitarla.
En la página API de Traffic Director, haz clic en Habilitar.
gcloud
Ejecuta el siguiente comando:
gcloud services enable trafficdirector.googleapis.com
Habilita la API Cloud DNS y configura Cloud DNS
Sigue estas instrucciones si vas a configurar Cloud Service Mesh en Compute Engine. Debes habilitar la API Cloud DNS y configurar Cloud DNS para la resolución de nombres DNS.
Para obtener información general sobre Cloud Service Mesh y la resolución de DNS, consulta Cloud Service Mesh y la resolución de nombres DNS.
Primero, sigue estas instrucciones para habilitar la API Cloud DNS.
Consola
En la Google Cloud consola, ve a la página Biblioteca de APIs de tu proyecto.
En el campo Buscar APIs y servicios, introduce
DNS
.En la lista de resultados de búsqueda, haz clic en API de Cloud DNS. Si no ves la API Cloud DNS en la lista, significa que no tienes los permisos necesarios para habilitarla.
En la página API de Cloud DNS, haz clic en Habilitar.
gcloud
Ejecuta el siguiente comando:
gcloud services enable dns.googleapis.com
A continuación, configura una zona privada gestionada de Cloud DNS. Sigue las instrucciones de Crear una zona privada.
Habilita la cuenta de servicio para acceder a la API de Traffic Director
Cuando configuras tu plano de datos y lo conectas a Cloud Service Mesh, tus clientes xDS (por ejemplo, proxies Envoy) se conectan al trafficdirector.googleapis.com
servidor xDS. Estos clientes xDS presentan una identidad de cuenta de servicio al servidor xDS para asegurarse de que las comunicaciones entre el plano de datos y el plano de control estén debidamente autorizadas:
- En el caso de una VM de Compute Engine, el cliente xDS usa la cuenta de servicio asignada a la VM.
- En GKE, si
Workload Identity
no está habilitado, el cliente de xDS usa la cuenta de servicio asignada al nodo de GKE subyacente. - Si
Workload Identity
está habilitado, el cliente xDS usa la cuenta de servicio de Google que está vinculada a la cuenta de servicio de Kubernetes asignada al pod.
Necesitas los siguientes permisos. Solo se admite xDS v3. Si usas xDS v2, debes migrar a xDS v3. Para obtener información sobre cómo migrar, consulta Migrar de xDS v2 a xDS v3.
Cuando usas xDS v3, la cuenta de servicio que usan tus clientes debe tener los permisos trafficdirector.networks.reportMetrics
, trafficdirector.rateLimitDomains.reportMetrics
y trafficdirector.networks.getConfigs
. Puedes usar el rol de cliente de Cloud Service Mesh
(roles/trafficdirector.client
) de gestión de identidades y accesos, que incluye estos permisos.
Consola
En la Google Cloud consola, ve a la página Gestión de identidades y accesos.
Selecciona el proyecto.
Identifica la cuenta de servicio a la que quieres añadir un rol:
- Si la cuenta de servicio aún no está en la lista Miembros, no tiene ningún rol asignado. Haz clic en Añadir e introduce la dirección de correo de la cuenta de servicio.
- Si la cuenta de servicio ya está en la lista Miembros, tiene roles asignados. Selecciona la cuenta de servicio y, a continuación, haz clic en la pestaña Roles.
Despliega el rol. En la cuenta de servicio que quieras editar, haz clic en
Editar.Selecciona el rol Otro > Cliente de Cloud Service Mesh.
Para aplicar el rol a la cuenta de servicio, haz clic en Guardar.
gcloud
Ejecuta el siguiente comando:
gcloud projects add-iam-policy-binding PROJECT \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL \ --role=roles/trafficdirector.client
Haz los cambios siguientes:
PROJECT
: introducegcloud config get-value project
SERVICE_ACCOUNT_EMAIL
: el correo asociado a la cuenta de servicio
Continuar el proceso de configuración
Ahora que has completado los pasos previos, puedes empezar a configurar tu malla de servicios.
- Opciones de configuración avanzada de Cloud Service Mesh
- Configura los atributos de arranque de Envoy.