Configuration du réseau du cluster Dataproc

Cette page décrit les exigences de configuration réseau des clusters Dataproc et options.

Connectivité requise pour Dataproc

Votre cluster Dataproc doit se trouver dans un réseau VPC respectant la route et les exigences de pare-feu pour accéder en toute sécurité aux API Google et aux autres ressources.

Exigences de routage

Agent Dataproc exécuté sur les VM de cluster a besoin d'une route vers Internet pour accéder à l'API de contrôle Dataproc pour obtenir des jobs et des rapports sur leur état. Une fois créés, les réseaux VPC contenir une route par défaut générée par le système ; à Internet. Il n'est pas recommandé de supprimer la route par défaut vers Internet. utilisez plutôt des pare-feu pour contrôler l'accès au réseau. Notez que Les clusters réservés aux adresses IP internes ont besoin de cette route par défaut vers Internet pour accéder aux API de contrôle Dataproc et d'autres services Google tels que Cloud Storage, mais son trafic quittent les centres de données Google.

Exigences de pare-feu

Machines virtuelles (VM) du cluster Dataproc doivent pouvoir communiquer entre eux via ICMP, TCP (tous les ports) et UDP (tous les ports).

Le réseau VPC default Pare-feu default-allow-internal respecte les exigences de connectivité des clusters Dataproc et autorise le trafic d'entrée provenant de la plage source 10.128.0.0/9 toutes les VM du réseau VPC, comme suit:

Règle Réseau Direction Priorité Plage source Protocoles:Ports
default-allow-internal default entrée 65534 10.128.0.0/9 tcp:0-65535, udp:0-65535 et icmp
  • Si vous supprimez la règle de pare-feu default-allow-internal, le trafic entrant sur le réseau default est bloqué par règle implicite d'entrée interdite.

  • Si vous supprimez la règle de pare-feu default-allow-internal ou n'utilisez pas le réseau VPC default, vous devez créer votre propre règle répond aux exigences de connectivité de Dataproc, puis l'applique le réseau VPC de votre cluster.

Bonne pratique:Créer une règle de pare-feu d'entrée pour le réseau VPC de votre cluster, qui autorise uniquement la connectivité d'entrée des VM de cluster à l'aide d'une plage d'adresses IP sources ou en identifiant les VM de cluster un tag réseau ou un compte de service.

Créer une règle de pare-feu d'entrée

Si vous ou votre administrateur réseau ou de sécurité créez une règle de pare-feu d'entrée ; à un réseau VPC de cluster Dataproc, il doit disposer les caractéristiques suivantes:

  • Le paramètre sources spécifie les sources des paquets. Toutes les VM de cluster Dataproc doivent pouvoir communiquer entre eux. Vous pouvez identifier les VM par plage d'adresses IP, tags sources ou comptes de service associés les VM.

  • La cible de la règle doit identifier les VM du cluster. La cible peut être toutes les VM du réseau VPC, ou vous pouvez identifier les VM par plage d'adresses IP, tag cible ou service cible Google Cloud.

  • La règle doit inclure les éléments suivants : protocoles et ports:

    • TCP (tous les ports, de 0 à 65535)
    • UDP (tous les ports, de 0 à 65535)
    • ICMP

    Dataproc utilise des services qui s'exécutent sur plusieurs ports. Spécifier sur tous les ports contribue au bon exécution des services.

Diagnostiquer les règles de pare-feu VPC

Pour auditer les paquets non traités par des règles de pare-feu de priorité supérieure, vous pouvez créer deux règles de pare-feu de refus avec une faible priorité (65534). Contrairement aux règles de pare-feu implicites, vous pouvez activer la journalisation des règles de pare-feu pour chacune de ces règles de faible priorité :

  1. Une règle de refus d'entrée (sources 0.0.0.0/0, tous les protocoles, toutes les cibles du réseau VPC)

  2. Une règle de refus de sortie (destinations 0.0.0.0/0, tous les protocoles, toutes les cibles du réseau VPC)

  • Grâce à ces règles de faible priorité et à la journalisation des règles de pare-feu, paquets non traités par une priorité plus élevée et potentiellement plus spécifique, règles de pare-feu. Ces deux règles de faible priorité respectent également les bonnes pratiques de sécurité en mettant en œuvre une stratégie de "paquets supprimés" finale.

  • Recherchez ces règles dans les journaux des règles de pare-feu déterminez si vous devez créer ou modifier des règles de priorité supérieure paquets. Par exemple, si des paquets envoyés entre un cluster Dataproc Les VM sont abandonnées, cela peut indiquer que vos règles de pare-feu doivent être ajusté.

Créer un réseau VPC

Au lieu d'utiliser le réseau VPC default, vous pouvez créer le vôtre mode automatique ou un VPC personnalisé réseau. Lorsque vous créez le cluster, vous associez votre réseau cluster.

Environnement Assured Workloads:lorsque vous utilisez un l'environnement Assured Workloads pour la conformité réglementaire, le cluster, son réseau VPC et son doivent être contenus dans l'environnement Assured Workloads.

Créer un cluster utilisant votre réseau VPC

Google Cloud CLI

Utilisez gcloud dataproc clusters create avec l'élément ‑‑network ou ‑‑subnet pour créer un cluster sur un sous-réseau de votre réseau. Si vous utilisez l'option "‐‐network", le cluster utilisera un sous-réseau avec le même nom que le réseau spécifié dans la région où le cluster est créé.

--network example Puisque les réseaux automatiques sont créés avec des sous-réseaux dans chaque région, chaque sous-réseau étant donné le nom du réseau, vous pouvez transmettez le nom du réseau VPC en mode automatique à l'option ‑‑network. Le cluster utilisera le sous-réseau VPC en mode automatique région spécifiée avec l'indicateur "‐‐region".

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

--subnet example Vous pouvez utiliser le ‑‑subnet pour créer un cluster qui utilise un sous-réseau de réseau VPC en mode automatique ou personnalisé dans la région du cluster. Spécifiez le chemin d'accès complet à la ressource du sous-réseau.

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

API REST

Vous pouvez spécifier le champ networkUri ou subnetworkUri de la propriété GceClusterConfig dans le cadre d'une requête clusters.create.

Exemple

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

Console

Sélectionnez votre réseau dans le menu de configuration du panneau Personnaliser le cluster. Après avoir choisi le sélecteur de Sous-réseau affiche le ou les sous-réseaux disponibles que vous avez sélectionnée pour le cluster.

Créer un cluster utilisant un réseau VPC dans un autre projet

Un cluster Dataproc peut utiliser réseau VPC partagé défini dans un projet hôte. Le projet dans lequel le cluster Dataproc est créé appelé projet de service.

  1. Recherchez le numéro de projet du cluster Dataproc:

    1. Ouvrez le tableau de bord IAM & Administrateur la page Paramètres de console Google Cloud. Sélectionnez le projet dans lequel vous allez créer le cluster Dataproc. Copiez l'ID du projet.
  2. Un compte principal doté du rôle Administrateur de VPC partagé doit procéder comme suit. Consultez les instructions de configuration du VPC partagé pour obtenir des informations générales.

    1. Assurez-vous que le projet hôte du VPC partagé est activé.

    2. Associer le projet au cluster Dataproc au projet hôte.

    3. Suivez les instructions de cette sous-étape pour configurer les deux éléments suivants : des comptes de service doivent disposer de l'autorisation Network User pour le projet hôte:

      1. Ouvrez le tableau de bord IAM et Administrateur de la console Google Cloud.

      2. Utilisez le sélecteur de projet pour choisir le nouveau projet hôte.

      3. Cliquez sur Accorder l'accès.

      4. Remplissez le formulaire "Accorder l'accès". Répétez ces étapes pour ajouter les deux comptes de service:

        1. Ajouter des comptes principaux: saisissez le compte de service.

        2. Attribuer des rôles: insérez "Compute Network" Dans la zone de filtre, sélectionnez le rôle Utilisateur de réseau de Compute.

        3. Cliquez sur Enregistrer.

  3. Une fois que les deux comptes de service disposent du rôle Network User pour le projet hôte, créer un cluster qui utilise le réseau VPC partagé.

Créer un cluster qui utilise un sous-réseau VPC dans un autre projet

Un cluster Dataproc peut utiliser Sous-réseau VPC partagé défini dans un projet hôte. Le projet dans lequel le cluster Dataproc est créé appelé projet de service.

  1. Recherchez le numéro de projet du cluster Dataproc:

    1. Ouvrez le tableau de bord IAM & Administrateur la page Paramètres de console Google Cloud. Sélectionnez le projet dans lequel vous allez créer le cluster Dataproc. Copiez l'ID du projet.
  2. Un compte principal doté du rôle Administrateur de VPC partagé doit procéder comme suit. Consultez les instructions de configuration du VPC partagé pour obtenir des informations générales.

    1. Assurez-vous que le projet hôte du VPC partagé est activé.

    2. Associer le projet au cluster Dataproc au projet hôte.

    3. Suivez les instructions de cette étape pour configurer les deux éléments suivants : des comptes de service doivent disposer de l'autorisation Network User pour le projet hôte:

      1. Ouvrez la page Réseaux VPC de la console Google Cloud.

      2. Sélectionnez le projet hôte à l'aide du sélecteur de projet.

      3. Cliquez sur le réseau contenant le sous-réseau auquel que le cluster Dataproc utilisera.

      4. Sur la page Détails du réseau VPC, cochez la case à côté du du sous-réseau que votre cluster utilisera.

      5. Si le panneau d'informations n'est pas ouvert, cliquez sur Afficher le panneau d'informations.

      6. Procédez comme suit pour chaque compte de service:

        1. Dans le panneau d'informations, cliquez sur Ajouter un compte principal.

        2. Remplissez le formulaire "Accorder l'accès" :

          1. Ajouter des comptes principaux: saisissez le compte de service.

          2. Attribuer des rôles: insérez "Compute Network" Dans la zone de filtre, sélectionnez le rôle Utilisateur de réseau de Compute.

          3. Cliquez sur Enregistrer.

  3. Une fois que les deux comptes de service disposent du rôle Network User pour le projet hôte, créer un cluster qui utilise le sous-réseau VPC partagé.

Créer un cluster Dataproc avec des adresses IP internes uniquement

Vous pouvez créer un cluster Dataproc isolé du l'Internet public dont les instances de VM communiquent via un sous-réseau IP privé (les VM de cluster ne reçoivent pas d'adresses IP publiques). Pour ce faire, le sous-réseau doit comporter Accès privé à Google activé permettant aux nœuds du cluster d'accéder aux API et services Google, Cloud Storage, à partir d'adresses IP internes.

CLI gcloud

Vous pouvez créer un cluster Dataproc avec des adresses IP internes uniquement à l'aide de la commande gcloud dataproc clusters create avec l'option ‑‑no-address.

Utilisez les options ‐‐no-address et ‐‐network : Utilisez l'indicateur ‑‑no-address avec ‑‑network pour créer un cluster qui utilisera un sous-réseau portant le même nom que le réseau de la région où le cluster est créé.

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

Par exemple, comme les réseaux automatiques sont créés avec des sous-réseaux dans chaque région portant le même nom que le réseau automatique, vous pouvez lui transmettre à ‑‑network flag pour créer un cluster qui utilisera le sous-réseau automatique dans la région du cluster.

Utilisez les options "‐‐no-address" et "‐‐subnet" : Utilisez l'indicateur ‑‑no-address avec ‑‑subnet pour créer cluster qui utilisera un sous-réseau automatique ou personnalisé dans la région où le cluster sera créé. Transmettez l'indicateur ‑‑subnet. le chemin d'accès complet à la ressource du sous-réseau.

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

API REST

Vous pouvez définir GceClusterConfig internalIpOnly sur true dans le cadre d'un clusters.create requête d'activation des adresses IP internes uniquement.

Exemple :

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

Vous pouvez créer un cluster Dataproc avec l'accès privé à Google. activé à partir de Dataproc Créer un cluster de la console Google Cloud. Cliquez sur Adresse IP interne uniquement sur l'option Personnaliser le cluster afin d'activer cette fonctionnalité pour votre cluster.

Comme, par défaut, les clusters avec adresse IP interne uniquement n'ont pas accès à Internet, les jobs qui téléchargent des dépendances depuis Internet, par exemple les jobs qui téléchargent Les packages de dépendances Spark de Maven Central échoueront. Il existe plusieurs solutions pour éviter ce problème :

  1. Utiliser Cloud NAT pour permettre aux clusters d'accéder à Internet.

  2. Créez une image personnalisée incluant les dépendances (par exemple, les packages de dépendance Spark dans /usr/lib/spark/jars/).

  3. Chargez les dépendances dans un bucket Cloud Storage, puis utilisez une action d'initialisation pour télécharger les dépendances du bucket lors de la création du cluster.

Réseaux Dataproc et VPC Service Controls

VPC Service Controls permet aux administrateurs de définir un périmètre de sécurité autour des ressources des services gérés par Google afin de contrôler les communications avec et entre ces services.

Notez les limites et stratégies suivantes lorsque vous utilisez des réseaux VPC Service Controls avec Clusters Dataproc: