Prepárate para configurar Traffic Director con servicios de gRPC sin proxy
La configuración de Traffic Director incluye varias fases. En este documento, se describe la primera fase: instrucciones para preparar la configuración de Traffic Director con aplicaciones de gRPC sin proxy. Este documento se aplica si usas las API anteriores o las API de enrutamiento de servicio nuevas, que se encuentran en vista previa. Las otras fases se tratan 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 los siguientes documentos, que proporcionan una descripción general del uso de Traffic Director con aplicaciones de gRPC sin proxy:
- Descripción general de Traffic Director
- Descripción general de Traffic Director con servicios de gRPC sin proxy
- Descripción general de las API de enrutamiento de Services nuevos de Traffic Director
Requisitos previos
Completa las siguientes tareas para preparar tu entorno local:
- Habilita la facturación.
- Otorga los permisos necesarios.
- Habilita la API de Traffic Director para tu proyecto.
- Asegúrate de que la cuenta de servicio tenga 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.
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 todos los roles de IAM 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 ) |
Crea y modifica un clúster de GKE, si se usan Pods | Administrador de clústeres
( roles/container.clusterAdmin ) |
Permite el acceso a las cuentas de servicio. | Usuario de la cuenta de servicio
( roles/iam.serviceAccountUser |
Además, 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 gRPC sin proxy.
Habilita la API de Traffic Director
Consola
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
Ejecuta el siguiente comando:
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 de xDS 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.
Necesitas los siguientes permisos, según la versión del protocolo xDS que use tu aplicación de gRPC. La versión del protocolo xDS se especifica en el archivo de arranque. Te recomendamos configurar tu aplicación 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 aplicaciones de gRPC deben 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 aplicaciones de gRPC debe tener el permiso de IAM
compute.globalForwardingRules.get
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.
Consola
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
A continuación, sigue este procedimiento general para configurar aplicaciones de gRPC sin proxy en una malla:
- Actualiza tus clientes de gRPC a la última versión de gRPC con el parche más reciente.
- Actualiza el esquema del agente de resolución de nombres de gRPC de los clientes cuando crees un canal y especifiques un archivo de arranque de Traffic Director.
- Configura los recursos de Traffic Director y Cloud Load Balancing.
En esta guía, se proporciona información para completar los dos primeros pasos. El proceso de configuración que uses en el paso 3 dependerá de si tu implementación usa VM de Compute Engine o GKE grupos de extremos de red (NEG) de GKE..
Idiomas y versiones compatibles de gRPC
gRPC es un proyecto de código abierto y la compatibilidad de sus versiones se describe en las Preguntas frecuentes de gRPC. Te recomendamos que uses la versión más reciente de gRPC para asegurarte de que se mitiguen las vulnerabilidades de seguridad conocidas. Esto también garantiza que tus aplicaciones tengan acceso a las funciones más recientes compatibles con Traffic Director. Las funciones de la malla de servicios compatibles con varias implementaciones y versiones de gRPC se enumeran en GitHub. Para obtener una lista de los lenguajes y las funciones de gRPC compatibles con Traffic Director y los servicios de gRPC sin proxy, consulta Funciones de Traffic Director.
Traffic Director mantiene la compatibilidad con las versiones actuales y compatibles de gRPC y busca ser compatible con versiones de gRPC inferiores a un año, sujeto las Condiciones del Servicio de Google Cloud Platform.
Actualiza tus clientes de gRPC
Actualiza la biblioteca de gRPC en tu aplicación a la versión que admita las funciones que necesitas. Para obtener más información, consulta la sección anterior.
Agrega el agente de resolución de nombres xDS como una dependencia a tus aplicaciones de gRPC. Los requisitos por lenguaje para Java y Go se muestran en las siguientes secciones. Otros lenguajes no tienen requisitos adicionales.
Requisitos para Java
En Java, si usas Gradle, agrega la dependencia grpc-xds
al archivo build.gradle
. Reemplaza LATEST_GRPC_VERSION
por la versión más reciente de gRPC.
dependencies { runtimeOnly 'io.grpc:grpc-xds:LATEST_GRPC_VERSION' }
Si usas Maven, agrega lo siguiente a la sección <dependencies>
de pom.xml. Reemplaza LATEST_GRPC_VERSION
por la versión más reciente de gRPC.
<dependency> <groupId>io.grpc</groupId> <artifactId>grpc-xds</artifactId> <version>LATEST_GRPC_VERSION</version> <scope>runtime</scope> </dependency>
Requisitos para Go
Si usas Go, importa el paquete xds de Go.
Configura el agente de resolución de nombres de gRPC para que use xds
Establece o cambia tus aplicaciones de gRPC para que usen el esquema de resolución de nombres de xds
en el URI de destino, en lugar del de DNS o cualquier otro esquema de agente de resolución. Para ello, usa el prefijo xds:///
en el nombre de destino cuando crees un canal de gRPC.
El balanceo de cargas para clientes de gRPC se configura por canal.
Incluye el nombre del servicio que se usa en el URI de destino en la configuración de Traffic Director. Por ejemplo, en Java, creas el canal mediante esta estructura, en la que el nombre del servicio es helloworld
:
ManagedChannelBuilder.forTarget("xds:///helloworld[:PORT_NUMBER]")
Crea y configura un archivo de arranque
El esquema de agente de resolución de xds
indica a la aplicación de gRPC que se conecte a Traffic Director a fin de obtener información de configuración para el servicio de destino. Por lo tanto, haz lo siguiente:
- Crea un archivo de arranque, como se muestra en el siguiente ejemplo. Este archivo le indica a gRPC que se conecte a un servidor xDS (Traffic Director) a fin de obtener la configuración para servicios específicos.
- Define una variable de entorno llamada
GRPC_XDS_BOOTSTRAP
, con el nombre del archivo de arranque como el valor de la variable de entorno.
Las instrucciones de configuración contienen ejemplos que muestran cómo generar el archivo de arranque. Para tu comodidad, puedes usar la última versión del generador de arranque de gRPC de Traffic Director.
Con la aplicación, se debe incluir un archivo de arranque que contenga la información necesaria para conectarse a Traffic Director. Un archivo de arranque de muestra se ve de la siguiente manera:
{ "xds_servers": [ { "server_uri": "trafficdirector.googleapis.com:443", "channel_creds": [ { "type": "google_default" } ], "server_features": ["xds_v3"] } ], "node": { "id": "projects/123456789012/networks/default/nodes/b7f9c818-fb46-43ca-8662-d3bdbcf7ec18", "metadata": { "TRAFFICDIRECTOR_NETWORK_NAME": "default" }, "locality": { "zone": "us-central1-a" } } }
En la siguiente tabla, se explican los campos del archivo de arranque.
Campo | Valor y descripción |
---|---|
xds_servers |
Una lista de servidores xDS. gRPC usa solo el primero de la lista. |
server_uri |
Especifica al menos una. gRPC intenta conectarse solo al primer servidor xDS de la lista xds_servers . El valor predeterminado es trafficdirector.googleapis.com:443 . |
channel_creds |
Credenciales para usar con el servidor xDS. |
type |
Usa el valor google_default . Para obtener más información sobre cómo se obtienen las credenciales, consulta Comienza a usar la autenticación. |
server_features |
Una lista de funciones admitidas por el servidor, como la asistencia de xDS v3. El valor predeterminado es vacío. |
node |
Información sobre el cliente que se conecta al servidor xDS. |
id |
El projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID Proporciona una string única como el valor de |
metadata |
Información específica del servidor xDS. |
TRAFFICDIRECTOR_NETWORK_NAME |
Si el campo está vacío o no se especifica, el valor se establece en default . |
locality |
La zona de Google Cloud en la que se ejecuta el cliente de gRPC. |
Continúa el proceso de configuración
Después de completar la preparación que se describe en este documento, sigue las instrucciones en uno de estos documentos:
- Configura VM de Compute Engine y servicios de gRPC sin proxy
- Configura GKE y servicios de gRPC sin proxy
- Si implementas Traffic Director con las nuevas API de enrutamiento de servicio, que están en vista previa, lee las Guías de configuración de enrutamiento de servicios de Traffic Director.