Prepara la configuración de Traffic Director

La configuración de Traffic Director tiene estas fases:

  1. Otorgar permisos y habilitar la API de Traffic Director
  2. Implementar proxies de sidecar de Envoy junto con las aplicaciones y conectar los proxies a Traffic Director
  3. Configurar Traffic Director para que pueda configurar el plano de datos

En este documento, se describe cómo realizar la primera fase. La segunda y tercera fase se proporcionan en las guías específicas de cada plataforma para lo siguiente:

Antes de leer esta guía, familiarízate con la descripción general conceptual de Traffic Director.

Requisitos previos

Si planeas usar Traffic Director para configurar los proxies de Envoy que se ejecutan junto con las aplicaciones en máquinas virtuales, contenedores o una combinación de ambos, primero debes completar las siguientes tareas:

En las siguientes secciones, se proporcionan instrucciones para cada tarea.

Decide cómo instalar Envoy

En el caso de las cargas de trabajo basadas en VM y contenedores, Traffic Director ofrece métodos automatizados de implementación de Envoy para configurar la malla de servicios.

  • En Compute Engine, puedes usar una plantilla de VM que implementa de forma automática una versión compatible del objeto binario de Envoy en las máquinas virtuales. Envoy se inicia de forma automática para conectarse a Traffic Director.

  • En GKE, puedes instalar un inyector de sidecar de Envoy para implementar de manera automática proxies de sidecar junto con los Pods recién creados y conectarlos a Traffic Director.

Si deseas implementar Envoy de forma manual, puedes implementar Envoy como un objeto binario (solo Compute Engine) o como un contenedor (Compute Engine o GKE). También debes proporcionar un archivo de configuración de arranque de Envoy para conectar el proxy a Traffic Director y recibir la configuración. Consulta Configura los atributos de arranque de Envoy para Traffic Director a fin de obtener más información sobre el arranque.

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.

Instala Envoy de forma automática

Asegúrate de habilitar la API de configuración del SO de Cloud. Si no lo haces, no podrás instalar los componentes obligatorios en las VM.

Para ello, haz lo siguiente:

Console

  1. En Cloud Console, ve a API y servicios.
    Ir a la página Biblioteca de API
  2. Selecciona el proyecto correcto.
  3. En el cuadro de búsqueda, ingresa Cloud OS Config API y presiona Intro.
  4. Selecciona Cloud OS Config API.
  5. Haz clic en Habilitar.

gcloud

gcloud services enable osconfig.googleapis.com

Instala Envoy de forma manual

Traffic Director es compatible con Envoy 1.9.1 o versiones posteriores. Recomendamos usar la versión de Envoy más reciente para garantizar que se mitiguen todas las vulnerabilidades de seguridad conocidas.

En las instrucciones de esta guía, se explica cómo obtener un objeto binario de Envoy a partir de una imagen de Docker. Si decides usar los pasos de configuración manual de esta guía, necesitas Docker para descomprimir el objeto binario del proxy de Envoy. También necesitas permisos de Docker para extraer la imagen de Docker. Si ejecutas las herramientas de Docker como un usuario no raíz, sigue las instrucciones posteriores a la instalación de Docker.

Otorga los permisos de IAM necesarios

Debes tener permisos suficientes para crear instancias de VM y modificar una red a fin de configurar Traffic Director. Si tienes la función de propietario o editor en el proyecto en el que habilitas Traffic Director, automáticamente tienes los permisos correctos.

De lo contrario, debes tener todas las siguientes funciones de IAM de Compute Engine. 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 la política de administración de identidades y accesos (IAM) para una cuenta de servicio Administrador de cuenta de servicio
Obtener el recurso de regla de reenvío global Visualizador de la red de Compute
Habilitar Traffic Director Administrador de Service Usage
Crear redes, subredes y componentes del balanceador de cargas Administrador de redes
Agregar y quitar reglas de firewall Administrador de seguridad
Crear instancias Administrador de instancias de Compute

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.

Habilita la API de Traffic Director

Console

  1. En Cloud Console, ve a API y servicios del proyecto.
    Ir a la página Biblioteca de API
  2. Para buscar la API de Traffic Director, usa el campo de búsqueda. Si no ves la API de Traffic Director, significa que no tienes los permisos necesarios para habilitarla.
  3. Haz clic en la API de Traffic Director.
  4. En la página que muestra la información de la API, haz clic en Habilitar.

gcloud

gcloud services enable trafficdirector.googleapis.com

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

En el caso de una VM de Compute Engine, el cliente xDS usa la cuenta de servicio asignada a la VM. En el caso de 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.

La cuenta de servicio que usan los clientes xDS debe tener el permiso de IAM compute.globalForwardingRules.get a nivel de proyecto. También puedes asignar la función compute.networkViewer a la cuenta de servicio para otorgar este permiso.

Console

  1. Abre la página IAM y administración en Cloud Console.

    Abrir la página IAM y administración

  2. Selecciona tu proyecto.

  3. 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.
  4. Haz clic en el botón Editar de la cuenta de servicio que deseas editar.

  5. Selecciona la función Compute Engine > Visualizador de la red de Compute.

  6. Haz clic en Guardar para aplicar la función a la cuenta de servicio.

gcloud

Reemplaza la variable ${SERVICE_ACCOUNT_EMAIL} con el valor correcto.

PROJECT=`gcloud config get-value project`
gcloud projects add-iam-policy-binding ${PROJECT} \
   --member serviceAccount:${SERVICE_ACCOUNT_EMAIL} \
   --role roles/compute.networkViewer

Continúa el proceso de configuración

Ahora que completaste los pasos de requisitos previos, puedes implementar los proxies de sidecar y configurar Traffic Director. En las siguientes guías, se proporcionan instrucciones específicas de la plataforma para Compute Engine y GKE:

Ten en cuenta que, aunque estas guías se enfocan en implementar proxies de sidecar de Envoy en un solo entorno (Compute Engine o GKE), Traffic Director es flexible y admite implementaciones que abarcan entornos.

Puedes configurar Traffic Director mediante el SDK de balanceo de cargas de Compute Engine o las API de REST. Consulta las referencias de gcloud y la API de balanceo de cargas.