Prepararse para configurar Traffic Director con Envoy
La configuración de Traffic Director incluye las siguientes fases:
- Otorgar permisos, habilitar la API de Traffic Director y, si usas Compute Engine, configurar Cloud DNS.
- Implementar tus aplicaciones con proxies Envoy
- Crear servicios y reglas de enrutamiento que determinan cómo viaja el tráfico a través de la malla de servicios.
En este documento, se describe la primera fase y se aplica si usas las API más antiguas o las API de enrutamiento de servicios nuevos, que están en vista previa. Las fases segunda y tercera se abordan en las guías específicas de la plataforma que se enumeran en Continúa el proceso de configuración más adelante en este documento.
Antes de leer esta guía, familiarízate con la descripción general conceptual de Traffic Director. Si usas las API nuevas, revisa la descripción general de las API de enrutamiento de servicios nuevos.
Requisitos previos
Si planeas usar Traffic Director para configurar los proxies de Envoy que se ejecutan junto con las aplicaciones en máquinas virtuales (VM), contenedores o una combinación de ambos, primero debes completar las siguientes tareas:
- Habilita la facturación.
- Decide cómo deseas instalar Envoy.
- Otorga los permisos necesarios.
- Habilita la API de Traffic Director para tu proyecto.
- Si usas Compute Engine, habilita la API de Cloud DNS y configura Cloud DNS.
- Asegúrate de que la cuenta de servicio que usan los proxies de Envoy tenga los permisos suficientes para acceder a la API de Traffic Director.
En las siguientes secciones, se proporcionan instrucciones para cada tarea.
Habilitar facturación
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Para obtener más información, consulta Habilita, inhabilita o cambia la facturación de un proyecto.
Decide cómo instalar Envoy
Traffic Director facilita la instalación de proxies de Envoy y la administración de esta capa de infraestructura.
En Compute Engine, puedes agregar Envoy de forma automática a las aplicaciones que se ejecutan en las VM. Debes usar una plantilla de VM que instale Envoy, la conecte a Traffic Director y configure las redes de tu VM.
En Google Kubernetes Engine (GKE), puedes agregar de forma automática proxies de sidecar de Envoy a los Pods de tus Services. Instalarás un inyector de sidecar de Envoy en tu clúster, que agrega proxies de sidecar de Envoy, los conecta al Traffic Director y configura las redes de tu contenedor.
Por último, también puedes usar las soluciones de implementación de Envoy de proveedores externos con Traffic Director. Un ejemplo de esta oferta es GetEnvoy, que proporciona un enfoque basado en administrador de paquetes para instalar y actualizar los proxies de Envoy.
Acerca del control de versiones de Envoy
Se debe contar con la versión 1.9.1 de Envoy o una posterior para que funcione con Traffic Director. Recomendamos usar siempre la versión más reciente de Envoy para garantizar que se mitiguen las vulnerabilidades de seguridad conocidas.
Si decides implementar Envoy con uno de nuestros métodos automatizados, nosotros nos encargamos de esta tarea de la siguiente manera:
Cuando usas la implementación automatizada de Envoy con las VM de Compute Engine, la versión instalada de Envoy es la que validamos para que funcione con Traffic Director. Cuando se crea una VM nueva mediante la plantilla de instancias, esta recibe la versión más reciente que validamos. Si tienes una VM de larga duración, puedes usar una actualización progresiva para reemplazar las VM existentes y elegir la versión más reciente.
Cuando usas el inyector de sidecar de Envoy con GKE, el inyector de configuración está configurado para usar una versión reciente de Envoy que hemos validado para trabajar con Traffic Director. Cuando se inserta un sidecar junto con el Pod de carga de trabajo, recibe esta versión de Envoy. Si deseas elegir una versión más reciente de Envoy, actualiza el inyector de sidecar de Envoy.
Para obtener información sobre las versiones específicas de Envoy, consulta Historial de versiones. Para obtener información sobre las vulnerabilidades de seguridad, consulta Asesorías de seguridad.
Otorga los permisos de IAM necesarios
Debes tener suficientes permisos de administración de identidades y accesos (IAM) a fin de crear instancias de VM y modificar una red para configurar Traffic Director. Si tienes la función de propietario o editor (roles/owner
o roles/editor
) en el proyecto en el que habilitarás Traffic Director, obtendrás todos los permisos correctos automáticamente.
De lo contrario, debes tener todas las funciones de IAM de Compute Engine que se muestran en la siguiente tabla. Si tienes estas funciones, también tienes sus permisos asociados, como se describe en la documentación de IAM de Compute Engine.
Tarea | Función requerida |
---|---|
Configurar políticas de IAM para una cuenta de servicio | Administrador de cuenta de servicio
( roles/iam.serviceAccountAdmin ) |
Obtener el recurso de regla de reenvío global | Visualizador de la red de Compute
( roles/compute.networkViewer ) |
Habilitar Traffic Director | Administrador de Service Usage
( roles/serviceusage.serviceUsageAdmin ) |
Crear redes, subredes y componentes del balanceador de cargas | Administrador de red de Compute
( roles/compute.networkAdmin ) |
Agregar y quitar reglas de firewall | Administrador de seguridad de Compute
( roles/compute.securityAdmin ) |
Crea instancias | Administrador de instancias de Compute
( roles/compute.instanceAdmin ) |
Además, el grupo de nodos de GKE o las VM de Compute Engine deben tener el permiso https://www.googleapis.com/auth/cloud-platform
. Para obtener más información, consulta Soluciona problemas de implementaciones que usan Envoy.
Habilita la API de Traffic Director
Console
En Google Cloud Console, ve a la página Biblioteca de la API de tu proyecto.
En el campo Buscar API y servicios, ingresa
Traffic Director
.En la lista de resultados de la búsqueda, haz clic en API de Traffic Director. Si no ves la API de Traffic Director, significa que no tienes los permisos necesarios para habilitarla.
En la página API de Traffic Director, haz clic en Habilitar.
gcloud
Ejecute el siguiente comando:
gcloud services enable trafficdirector.googleapis.com
Habilita la API de Cloud DNS y configura Cloud DNS
Usa estas instrucciones si configuras Traffic Director en Compute Engine. Debes habilitar la API de Cloud DNS y configurar Cloud DNS para la resolución de nombres de DNS.
Para obtener información general sobre Traffic Director y la resolución de DNS, consulta Traffic Director y resolución de nombres de DNS.
Primero, usa las siguientes instrucciones para habilitar la API de Cloud DNS.
Console
En Google Cloud Console, ve a la página Biblioteca de la API de tu proyecto.
En el campo Buscar API y servicios, ingresa
DNS
.En la lista de resultados, haz clic en API de Cloud DNS. Si no ves la API de Cloud DNS en la lista, significa que no tienes los permisos necesarios para habilitar la API de Cloud DNS.
En la página API de Cloud DNS, haz clic en Habilitar.
gcloud
Ejecute el siguiente comando:
gcloud services enable dns.googleapis.com
A continuación, configura una zona privada administrada de Cloud DNS. Usa las instrucciones que aparecen en Crea una zona privada.
Habilita la cuenta de servicio para acceder a la API de Traffic Director
Cuando configuras el plano de datos y lo conectas a Traffic Director, los clientes xDS (por ejemplo, los proxies de Envoy) se conectan al servidor trafficdirector.googleapis.com
de xDS. Estos clientes de xDS presentan una identidad de cuenta de servicio al servidor de xDS a fin de garantizar que la comunicación entre el plano de datos y el plano de control estén autorizadas de manera adecuada.
- Para una VM de Compute Engine, el cliente de xDS usa la cuenta de servicio asignada a la VM.
- Para GKE, si
Workload Identity
no está habilitada, el cliente xDS usa la cuenta de servicio asignada al nodo de GKE subyacente. - Si
Workload Identity
está habilitada, el cliente xDS usa la cuenta de servicio de Google vinculada a la cuenta de servicio de Kubernetes asignada al Pod.
Necesitas los siguientes permisos, según la versión del cliente de xDS que uses para configurar Envoy. Te recomendamos configurar tus nuevas implementaciones de Envoy mediante xDS v3 o migrar a xDS v3 si tienes una implementación existente que usa xDS v2. Además, las nuevas API de enrutamiento de servicios requieren xDS v3.
Cuando usas xDS v3, la cuenta de servicio que usan tus clientes debe tener los permisos
trafficdirector.networks.reportMetrics
ytrafficdirector.networks.getConfigs
. Puedes usar el rol Traffic Director Client (roles/trafficdirector.client
) de IAM, que une ambos permisos.Cuando uses xDS v2, la cuenta de servicio que usan tus clientes debe tener el permiso
compute.globalForwardingRules.get
de IAM a nivel de proyecto. También puedes asignar el rol Compute Network Viewer (roles/compute.networkViewer
) a la cuenta de servicio para otorgar este permiso.
Console
En la consola de Google Cloud, ve a la página IAM y administración.
Selecciona tu proyecto.
Identifica la cuenta de servicio a la que le quieres agregar una función.
- Si la cuenta de servicio no se encuentra aún en la lista de miembros, no tiene ninguna función asignada. Haz clic en Agregar y, luego, ingresa la dirección de correo electrónico de la cuenta de servicio.
- Si la cuenta de servicio ya se encuentra en la lista de miembros, es porque tiene funciones existentes. Selecciona la cuenta de servicio y haz clic en la pestaña Funciones.
Expande el rol. En la cuenta de servicio que deseas editar, haz clic en
Editar.Selecciona Otro > Traffic Director Client.
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
Reemplaza lo siguiente:
PROJECT
: ingresagcloud config get-value project
SERVICE_ACCOUNT_EMAIL
: el correo electrónico asociado con la cuenta de servicio
Continúa el proceso de configuración
Ahora que completaste los pasos de requisitos previos, puedes comenzar a configurar la malla de servicios. En las siguientes guías, se proporcionan instrucciones específicas de la plataforma para las API anteriores con Compute Engine y GKE:
- Configura las VM de Compute Engine con la implementación automática de Envoy
- Configura Pods de GKE con la inyección automática de Envoy
- Configura las VM de Compute Engine con la implementación manual de Envoy
- Configura Pods de GKE con la inyección manual de Envoy
- Configura el tráfico de TCP
- Opciones avanzadas de configuración de Traffic Director
- Configurar atributos de inicio de Envoy
Si bien estas guías se enfocan en implementar proxies de sidecar de Envoy en una sola plataforma (Compute Engine o GKE), Traffic Director es flexible y admite implementaciones que abarcan Compute Engine y GKE.
Si implementas Traffic Director con las nuevas API de enrutamiento de servicio, que están en vista previa, consulta las Guías de configuración de enrutamiento de servicios de Traffic Director.