Configuração de rede de cluster do Cloud Dataproc

Visão geral

As instâncias de máquina virtual do Compute Engine em um cluster do Cloud Dataproc, consistindo em VMs mestre e de trabalho, exigem acesso de rede IP interno completo entre si.

As redes legadas usam uma regra de firewall padrão com um intervalo de IP de origem de 10.0.0.0/8 para permitir a comunicação intracluster, enquanto as redes padrão ativadas para sub-redes mais recentes usam um intervalo de IP de origem um pouco mais restritivo de 10.128.0.0/9 em função dos intervalos de IP restritos por sub-rede regional.

Além de usar os intervalos de IP de origem mencionados, a regra de firewall típica (e default-allow-internal) na rede do Compute Engine de um cluster do Cloud Dataproc abre portas udp:0-65535;tcp:0-65535;icmp.

Especificar um intervalo de IP de origem para regras de firewall de sub-rede

Se a regra de firewall de sub-rede usar allows TCP traffic,

gcloud compute firewall-rules create my-subnet-firewall-rule --allow tcp
mas não usar as sinalizações --source-ranges ou --source-tags para especificar endereços IP de origem ou instâncias de origem com permissão para se conectar à sub-rede, por padrão, a regra terá um intervalo de IP de origem de 0.0.0.0/0, que abre a sub-rede para todos os endereços IP, uma vulnerabilidade de segurança crítica.

Como definir o intervalo de IP de origem

Defina o intervalo de IP de origem ao criar uma regra de firewall de sub-rede no Console do Google Cloud Platform ou usar a ferramenta de linha de comando gcloud.

Console

Use a página Criar uma regra de firewall do Console do GCP para criar uma regra de firewall com um intervalo de IP de origem especificado.

Comando gcloud

Use o comando gcloud compute firewall-rules create para criar uma regra de firewall com o intervalo de IP de origem especificado.
gcloud compute firewall-rules create "tcp-rule" --allow tcp:80 
    --source-ranges="10.0.0.0/22,10.0.0.0/14"
    --description="Narrowing TCP traffic"

Configuração de rede padrão de cluster do Cloud Dataproc

Ao criar um cluster do Cloud Dataproc, aceite a rede padrão do cluster.

Rede padrão

Aqui está um instantâneo do Console do Google Cloud Platform que mostra a rede padrão selecionada na página Criar um cluster do Cloud Dataproc.

Após a criação do cluster, na página Instâncias de VM → Detalhes da rede do Console do GCP, será possível ver as regras de firewall padrão para as instâncias do cluster, inclusive a regra de firewall default-allow-internal que abre as portas udp:0-65535;tcp:0-65535;icmp. Embora as regras de firewall de rede legada especifiquem um intervalo de endereços IP 10.0.0.0/8, as redes ativadas por sub-rede mais novas oferecem intervalos de endereços IP regionais restritos. A regra default-allow-internal, mostrada abaixo, especifica um intervalo de endereços IP 10.128.0.0/9.

Criar uma rede VPC

Especifique a própria rede de nuvem privada virtual (VPC, na sigla em inglês) ao criar um cluster do Cloud Dataproc. Para isso, você precisa criar uma rede VPC com regras de firewall. Em seguida, quando o cluster for criado, associe a rede ao cluster.

Como criar uma rede VPC

Crie uma rede VPC no Console do GCP ou usando a ferramenta de linha de comando gcloud compute networks create. Crie uma rede VPC em modo automático ou uma em modo personalizado (redes chamadas "auto" e "custom", respectivamente, abaixo). Uma rede automática é configurada automaticamente com sub-redes em cada região do Compute Engine. As redes personalizadas não são configuradas automaticamente com sub-redes. Você precisa criar uma ou mais sub-redes em uma ou mais regiões do Compute Engine ao criar a rede personalizada. Para ver mais informações, consulte Tipos de redes VPC.

Veja as opções disponíveis na criação de uma rede automática e personalizada pelo Console do GCP.

Automática

A captura de tela do Console do GCP, abaixo, mostra os campos do Console do GCP preenchidos para a criação automática de sub-redes (uma rede VPC de modo automático). É preciso selecionar uma ou mais regras de firewall. Selecione a regra network-name-allow-internal, que abre as portas udp:0-65535;tcp:0-65535;icmp, para permitir o acesso total à rede IP interna entre as instâncias de VM na rede. Também é possível selecionar a regra network-name-allow-ssh para abrir a porta 22 SSH padrão e, com isso, permitir conexões SSH à rede.

Personalizada

Se você selecionar sub-redes personalizadas ao criar uma rede (uma rede VPC de modo personalizado), será preciso especificar a região e o intervalo de endereços IP particulares de cada sub-rede. Para ativar o acesso interno total entre as VMs na rede, especifique o intervalo de endereços IP 10.0.0.0/8. Se apropriado, defina um intervalo mais restrito, como 10.128.0.0/16.
Observe que as regras de firewall são fornecidas para sub-redes personalizadas após a criação da rede. Mais uma vez, para ativar o acesso total à rede entre as VMs da rede, selecione ou crie uma regra de firewall que abra as portas udp:0-65535;tcp:0-65535;icmp, como mostrado na captura de tela do console do GCP abaixo.

Como criar um cluster que usa a rede VPC

Comando gcloud

Use o comando gcloud dataproc clusters create do SDK do Cloud com a sinalização ‑‑network ou ‑‑subnet para criar um cluster que usará uma sub-rede automática ou personalizada.

Como usar a sinalização ‑‑network
Use a sinalização ‑‑network para criar um cluster que usará uma sub-rede com o mesmo nome da rede na região em que o cluster será criado.

gcloud beta dataproc clusters create my-cluster \
    --network network-name
    ... other args ...

Por exemplo, como as redes automáticas são criadas com sub-redes em cada região com o mesmo nome da rede automática, passe o nome da rede automática para a sinalização ‑‑network (‑‑network auto-net-name) a fim de criar um cluster que usará a sub-rede automática na região do cluster.

Como usar a sinalização ‑‑subnet
Você pode usar a sinalização ‑‑subnet para criar um cluster que use uma sub-rede automática ou personalizada na região em que o cluster será criado. É preciso passar à sinalização ‑‑subnet o caminho completo do recurso da sub-rede que o cluster usará.

gcloud beta dataproc clusters create cluster-name \
    --subnet projects/project-id/region/region/subnetworks/subnetwork-name
    ... other args ...

API REST

Especifique o campo networkUri ou subnetworkUri GceClusterConfig como parte de uma solicitação clusters.create.

Exemplo

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

Console

Depois que você criar uma rede VPC com regras de firewall que permitam a VMs acesso total em todo o intervalo de endereços IP particulares da rede, será possível criar um cluster na página Console do GCP→Criar cluster, depois selecionar a rede no seletor. Expanda o título Opções de trabalho, intervalo, rede, versão, inicialização e acesso previsíveis para acessar o seletor. Depois de escolher a rede, o seletor de sub-rede exibirá as sub-redes disponíveis na região selecionada para a criação do cluster. Se uma sub-rede não estiver disponível na região, a mensagem "Nenhuma sub-rede nesta região" será exibida no seletor de sub-redes.

Abaixo está uma captura de tela que mostra os seletores de rede e sub-rede na página Criar um cluster do Console do GCP do Cloud Dataproc. Como mostrado, uma sub-rede personalizada em uma rede personalizada foi selecionada.

Como criar um cluster que use uma rede VPC em outro projeto

Um cluster do Cloud Dataproc pode usar uma rede VPC compartilhada participando como um projeto de serviço. Com uma VPC compartilhada, a rede VPC compartilhada é definida em um projeto diferente, chamado projeto de host. O projeto de host é disponibilizado para uso por membros do IAM em projetos de serviço anexados. Consulte Visão geral da VPC compartilhada para ver informações básicas.

Você criará o cluster do Cloud Dataproc em um projeto. No cenário de VPC compartilhada, este projeto será um projeto de serviço. Você precisará fazer referência ao número desse projeto. Aqui está uma maneira de encontrar o número do projeto:

  1. Navegue até a guia Configurações da página de administrador e IAM.

  2. Na lista suspensa do projeto, na parte superior da página, selecione o projeto que você usará para criar o cluster do Cloud Dataproc.

  3. Anote o número do projeto:

Um membro do IAM que é um administrador de VPC compartilhada precisa realizar as etapas a seguir. Consulte as instruções para configurar a VPC compartilhada para ver informações básicas.

  1. Certifique-se de que o projeto de host da VPC compartilhada tenha sido ativado.

  2. Anexe o projeto do Cloud Dataproc ao projeto de host.

  3. Configure uma ou ambas as contas de serviço a seguir para aplicar o papel Usuário de rede ao projeto de host. O Cloud Dataproc tentará usar a primeira conta de serviço, recorrendo à conta de serviço das APIs do Google, se necessário.

  4. Navegue até a guia IAM da página "IAM e administrador".

  5. Use a lista suspensa do projeto na parte superior da página para selecionar o projeto de host.

  6. Clique em ADICIONAR. Repita essas etapas para adicionar ambas as contas de serviço:

    1. Adicione a conta de serviço ao campo Membros.

    2. No menu Funções, selecione Compute Engine > Usuário da rede do Compute.

    3. Clique em Adicionar.

Assim que ambas as contas de serviço tiverem o papel Usuário de rede para o projeto de host, siga as instruções para criar um cluster usando a linha de comando, usando as sinalizações --subnet e/ou --network e passando o nome completo da rede ou da sub-rede.

Criar um cluster do Cloud Dataproc apenas com endereços IP internos

Crie um cluster do Cloud Dataproc isolado da Internet pública com instâncias de VM que se comunicam por meio de uma sub-rede IP particular. As instâncias de VM não terão endereços IP públicos. Para isso, a sub-rede do cluster precisa ter Acesso privado do Google ativado para permitir que os nós do cluster acessem APIs e serviços do Google, como o Cloud Storage, por IPs internos.

Comando gcloud

Crie um cluster do Cloud Dataproc com endereços IP internos apenas usando o comando gcloud clusters create com a sinalização ‑‑no-address.

Como usar as sinalizações ‑‑no-address e ‑‑network
Use a sinalização ‑‑no-address com a ‑‑network para criar um cluster que use uma sub-rede com o mesmo nome da rede na região em que o cluster será criado.

gcloud beta dataproc clusters create my-cluster \
    --no-address \
    --network network-name \
    ... other args ...

Por exemplo, como as redes automáticas são criadas com sub-redes em cada região com o mesmo nome da rede automática, passe o nome da rede automática para a sinalização ‑‑network (‑‑network auto-net-name) a fim de criar um cluster que usará a sub-rede automática na região do cluster.

Como usar as sinalizações ‑‑no-address e ‑‑subnet
Use a sinalização ‑‑no-address com as sinalizações ‑‑subnet para criar um cluster que use uma sub-rede automática ou personalizada na região em que o cluster será criado. É preciso passar à sinalização ‑‑subnet o caminho completo do recurso da sub-rede que o cluster usará.

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

API REST

Defina o campo GceClusterConfig internalIpOnly como "true" como parte de uma solicitação clusters.create para ativar apenas endereços IP internos.

Exemplo

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

Console

Crie um cluster do Cloud Dataproc com Acesso privado do Google ativado na página Criar um cluster do Cloud Dataproc do Console do GCP. Na parte inferior da página, expanda o link Opções de trabalho, intervalo, rede, versão, inicialização e acesso preemptivos e clique em Apenas IP interno para ativar esse recurso para o cluster.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Dataproc
Precisa de ajuda? Acesse nossa página de suporte.