Configuración de red del clúster de Dataproc

En esta página, se explican los requisitos para la configuración de red de clústeres de Dataproc y opciones.

Requisitos de conectividad de Dataproc

Tu clúster de Dataproc debe estar en una red de VPC que cumpla con los requisitos y requisitos de firewall para acceder de forma segura a las APIs de Google y otros recursos.

Requisitos de la ruta

El agente de Dataproc que se ejecuta en las VMs del clúster necesita una ruta a Internet para acceder a la API de control de Dataproc para obtener trabajos e informar sobre el estado. Cuando se crean, las redes de VPC contener una ruta predeterminada generada por el sistema a Internet. No se recomienda borrar la ruta predeterminada a Internet. en su lugar, usa firewalls para controlar el acceso a la red. Ten en cuenta que Los clústeres solo de IP internas también solicitar esta ruta predeterminada a Internet para acceder a las APIs de control de Dataproc y otros servicios de Google, como Cloud Storage, pero su tráfico no abandonan los centros de datos de Google.

Requisitos del firewall

Máquinas virtuales (VMs) del clúster de Dataproc deben poder comunicarse entre sí mediante ICMP, TCP (todos los puertos) y UDP (todos los puertos).

La red de VPC de default Firewall de default-allow-internal regla cumple con los requisitos de conectividad del clúster de Dataproc y permite la entrada desde el rango de origen 10.128.0.0/9 desde todas las VMs en la red de VPC de la siguiente manera:

Regla Red Dirección Prioridad Rango de origen Protocolos:Puertos
default-allow-internal default ingress 65534 10.128.0.0/9 tcp:0-65535, udp:0-65535 y icmp
  • Si borras la regla de firewall default-allow-internal, el tráfico de entrada la red default está bloqueada por regla implícita de denegación de entrada.

  • Si borras la regla de firewall default-allow-internal o no uses la red de VPC default, debes crear tu propia regla cumpla con los requisitos de conectividad de Dataproc y, luego, lo aplicará la red de VPC de tu clúster.

Práctica recomendada: Crea una regla de firewall de entrada para la red de VPC del clúster que permita la conectividad de entrada las VMs del clúster usando un rango de IP de origen o identificando las VMs del clúster por etiqueta de red o cuenta de servicio.

Crea una regla de firewall de entrada

Si tú, tu administrador de red o seguridad crean una regla de firewall de entrada para aplicar a una red de VPC del clúster de Dataproc, debe tener la las siguientes características:

  • El parámetro sources especifica los orígenes de los paquetes. Todas las VMs del clúster de Dataproc deben poder comunicarse entre sí. Puedes identificar las VMs en el clúster por rango de direcciones IP, etiquetas de origen o cuentas de servicio asociadas las VMs.

  • El objetivo de la regla debe identificar las VMs del clúster. El destino puede ser todas las VMs en la red de VPC o puedes identificar las VMs por rango de direcciones IP, etiqueta o servicio de destino de servicio predeterminada.

  • La regla debe incluir lo siguiente: protocolos y puertos:

    • TCP (todos los puertos, de 0 a 65535)
    • UDP (todos los puertos, del 0 al 65535)
    • ICMP

    Dataproc usa servicios que se ejecutan en varios puertos. Especificando todos los puertos ayuda a que los servicios se ejecuten correctamente.

Diagnostica reglas de firewall de VPC

Para auditar los paquetes que no procesaron las reglas de firewall de mayor prioridad, puedes crear dos reglas de firewall de prioridad baja (65534). A diferencia de las reglas de firewall implícitas, puedes habilitar el registro de reglas de firewall en cada una de estas reglas de prioridad baja:

  1. Una regla de denegación de entrada (orígenes 0.0.0.0/0, todos los protocolos, todos los destinos de la red de VPC)

  2. Una regla de denegación de salida (destinos 0.0.0.0/0, todos los protocolos, todos los destinos de la red de VPC)

  • Con estas reglas de prioridad baja y el registro de reglas de firewall, puedes registrar no procesados por mayor prioridad, y potencialmente más específicos, reglas de firewall. Estas dos reglas de prioridad baja también se alinean con las prácticas recomendadas de seguridad mediante la implementación de una estrategia de “paquetes de descarte final”.

  • Examina los registros de reglas de firewall de estas reglas para determinar si necesitas crear o modificar reglas de mayor prioridad para permitir en paquetes. Por ejemplo, si los paquetes enviados entre clústeres de Dataproc se descartan, esto puede indicar que las reglas de firewall ajustado.

Crear red de VPC

En lugar de usar la red de VPC default, puedes crear una modo automático o VPC personalizada en cada red. Cuando creas el clúster, asocias tu red con el clúster.

Entorno de Assured Workloads: Cuando usas un Entorno de Assured Workloads de el cumplimiento reglamentario, el clúster, su red de VPC y su Cloud Storage Los buckets deben estar contenidos en el entorno de Assured Workloads.

Crea un clúster que use tu red de VPC

Google Cloud CLI

Usa gcloud dataproc clusters create con ‑‑network o ‑‑subnet marca para crear un clúster en una subred de tu red. Si usas la marca --network, el clúster usará una subred con que el de la red especificada en la región en la que se crea el clúster.

--network example. Dado que las redes automáticas se crean con subredes en cada región y a cada subred con el nombre de red, puedes pasa el nombre de la red de VPC de modo automático a la marca ‑‑network. El clúster usará la subred de VPC de modo automático en el región especificada con la marca ‐‐region.

gcloud dataproc clusters create CLUSTER_NAME \
    --network NETWORK_NAME \
    --region=REGION \
    ... other args ...

--subnet example. Puedes usar ‑‑subnet marca para crear un clúster que use una subred de red de VPC en modo automático o personalizado en la región del clúster. Especifica la ruta de acceso completa del recurso de la subred.

gcloud dataproc clusters create CLUSTER_NAMEW \
    --subnet projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
    --region=REGION \
    ... other args ...

API de REST

Puedes especificar el campo networkUri o subnetworkUri GceClusterConfig como parte de una solicitud clusters.create.

Ejemplo

POST /v1/projects/my-project-id/regions/us-central1/clusters/
{
  "projectId": "PROJECT_ID",
  "clusterName": CLUSTER_NAME,
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": SUBNET_NAME,
    },
    ...

Console

Selecciona tu red en la red. de configuración del clúster en el panel Customize cluster. Luego de elegir de red, el selector Subred muestra las subredes disponibles en la región que seleccionaste para el clúster.

Crea un clúster que use una red de VPC en otro proyecto

Un clúster de Dataproc puede usar una red de VPC compartida que se define en un proyecto host. El proyecto en el que se crea el clúster de Dataproc es denominado proyecto de servicio.

  1. Busca el número de proyecto del clúster de Dataproc:

    1. Abre la carpeta IAM y Administrador en la página de configuración Consola de Google Cloud Selecciona el proyecto en el que crearás la clúster de Dataproc. Copia el ID del proyecto.
  2. Un principal con la función de administrador de la VPC compartida debe realizar los siguientes pasos. Consulta las instrucciones para configurar la VPC compartida a fin de obtener información de referencia.

    1. Asegúrate de que el proyecto host de la VPC compartida está habilitado.

    2. Adjuntar el proyecto con el clúster de Dataproc al proyecto host.

    3. Sigue las instrucciones de este paso secundario para configurar las siguientes opciones: cuentas de servicio tengan el rol Usuario de red para el proyecto host:

      1. Abre IAM y Administrador en la consola de Google Cloud.

      2. Usa el selector de proyectos para elegir el proyecto host nuevo.

      3. Haz clic en Otorgar acceso.

      4. Completa el formulario para otorgar acceso. Repite estos pasos para agregar ambas cuentas de servicio:

        1. Agregar principales: Ingresa la cuenta de servicio.

        2. Asignar roles: Inserta “Red de Compute”. En el cuadro de filtros, selecciona el rol de usuario de la red de Compute.

        3. Haz clic en Guardar.

  3. Después de que ambas cuentas de servicio tengan el rol Network User para el proyecto host, crear un clúster que usa la red de VPC compartida.

Crear un clúster que use una subred de VPC en otro proyecto

Un clúster de Dataproc puede usar una subred de VPC compartida que se define en un proyecto host. El proyecto en el que se crea el clúster de Dataproc es denominado proyecto de servicio.

  1. Busca el número de proyecto del clúster de Dataproc:

    1. Abre la carpeta IAM y Administrador en la página de configuración Consola de Google Cloud Selecciona el proyecto en el que crearás la clúster de Dataproc. Copia el ID del proyecto.
  2. Un principal con la función de administrador de la VPC compartida debe realizar los siguientes pasos. Consulta las instrucciones para configurar la VPC compartida a fin de obtener información de referencia.

    1. Asegúrate de que el proyecto host de la VPC compartida está habilitado.

    2. Adjuntar el proyecto con el clúster de Dataproc al proyecto host.

    3. Sigue las instrucciones de este paso para configurar las siguientes opciones: cuentas de servicio tengan el rol Usuario de red para el proyecto host:

      1. Abre las Redes de VPC. en la consola de Google Cloud.

      2. Usa el selector de proyectos para seleccionar el proyecto host.

      3. Haz clic en la red que contiene la subred a la que que usará el clúster de Dataproc.

      4. En la página Detalles de la red de VPC, haz clic en la casilla de verificación junto al nombre de la subred que usará tu clúster.

      5. Si el Panel de información no está abierto, haz clic en Mostrar panel de información.

      6. Realiza los siguientes pasos para cada cuenta de servicio:

        1. En el panel de información, haz clic en Agregar principal.

        2. Completa el formulario para otorgar acceso:

          1. Agregar principales: Ingresa la cuenta de servicio.

          2. Asignar roles: Inserta “Red de Compute”. En el cuadro de filtros, selecciona el rol de usuario de la red de Compute.

          3. Haz clic en Guardar.

  3. Después de que ambas cuentas de servicio tengan el rol Network User para el proyecto host, crear un clúster que usa la subred de VPC compartida.

Crea un clúster de Dataproc solo con direcciones IP internas

Puedes crear un clúster de Dataproc que esté aislado del Internet pública cuyas instancias de VM se comunican a través de una subred de IP privada (a las VMs del clúster no se les asignan direcciones IP públicas). Para ello, el la subred debe tener Se habilitó el Acceso privado a Google para permitir que los nodos del clúster accedan a las APIs y a los servicios de Google, como Cloud Storage, desde IP internas.

gcloud CLI

Puedes crear un clúster de Dataproc solo con direcciones IP internas mediante gcloud dataproc clusters create con la marca ‑‑no-address.

Usa las marcas ‐‐no-address y ‐‐network: Usa la marca ‑‑no-address con el ‑‑network para crear un clúster que usará una subred con el mismo nombre que la red en la región en la que se crea el clúster.

gcloud dataproc clusters create CLUSTER_NAME \
    --no-address \
    --network NETWORK_NAME \
    --region=REGION \
    ... other args ...

Por ejemplo, dado que las redes automáticas se crean con subredes en cada región con el mismo nombre que la red automática, puedes pasar esta el nombre de la empresa a ‑‑network flag para crear un clúster que usará la subred automática en la región del clúster.

Usa las marcas ‐‐no-address y ‐‐subnet: Usa la marca ‑‑no-address con el ‑‑subnet para crear un que usará una subred automática o personalizada en la región en la que se creará el clúster. Pasa la marca ‑‑subnet la ruta de acceso completa a los recursos de la subred.

gcloud dataproc clusters create cluster-name \
    --no-address \
    --subnet projects/project-id/regions/region/subnetworks/subnetwork-name \
    --region=region \
    ... other args ...

API de REST

Puedes establecer el GceClusterConfig internalIpOnly en true como parte de una clusters.create para habilitar solo direcciones IP internas.

Ejemplo:

POST /v1/projects/my-project-id/regions/us-central1/clusters/
{
  "projectId": "my-project-id",
  "clusterName": "example-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "custom-subnet-1",
      "zoneUri": "us-central1-b",
      "internalIpOnly": true
    },
    ...

Console

Puedes crear un clúster de Dataproc con Acceso privado a Google habilitado desde la API de Dataproc Crea un clúster en la consola de Google Cloud. Haz clic en Solo IP interna en la sección Personalizar clúster para habilitar esta función en tu clúster.

De forma predeterminada, los clústeres de solo IP interna no tienen acceso a Internet trabajos que descargan dependencias de Internet, como los trabajos que descargan Los paquetes de dependencia de Spark de Maven Central fallarán. Hay varias soluciones para evitar el problema:

  1. Usa Cloud NAT para habilitar el acceso del clúster a Internet.

  2. Crea una imagen personalizada que incluya las dependencias (por ejemplo, paquetes de dependencia de Spark en /usr/lib/spark/jars/).

  3. Sube las dependencias a un bucket de Cloud Storage y, luego, usa una acción de inicialización para descargar las dependencias del bucket durante la creación del clúster.

Redes de Dataproc y de Controles del servicio de VPC

Los Controles del servicio de VPC permiten a los administradores definir un perímetro de seguridad alrededor de los recursos de los servicios administrados por Google para controlar la comunicación entre esos servicios.

Ten en cuenta las siguientes limitaciones y estrategias cuando uses redes de Controles del servicio de VPC con Clústeres de Dataproc: