Este documento descreve os requisitos para a configuração de rede do Google Cloud Serverless para Apache Spark.
Requisitos de sub-rede da nuvem privada virtual
Este documento descreve os requisitos de rede da nuvem privada virtual para Google Cloud Serverless para Apache Spark cargas de trabalho em lote e sessões interativas.
Acesso privado do Google
As cargas de trabalho em lote e as sessões interativas do Serverless para Apache Spark são executadas em VMs com apenas endereços IP internos e em uma sub-rede regional com o Acesso privado do Google (PGA, na sigla em inglês) ativado automaticamente na sub-rede.
Se você não especificar uma sub-rede, o Serverless para Apache Spark vai selecionar a sub-rede default na região da carga de trabalho em lote ou da sessão como a sub-rede para uma carga de trabalho em lote ou sessão.
Se a carga de trabalho exigir acesso à rede externa ou à Internet, por exemplo, para fazer o download de recursos, como modelos de ML do PyTorch Hub ou do Hugging Face, você pode configurar o Cloud NAT para permitir o tráfego de saída usando IPs internos na rede VPC.
Conectividade de sub-rede aberta
A sub-rede VPC da região selecionada para a carga de trabalho em lote ou sessão interativa do Serverless para Apache Spark precisa permitir a comunicação interna em todas as portas entre instâncias de VM na sub-rede.
Para evitar que scripts maliciosos em uma carga de trabalho afetem outras cargas de trabalho, o Serverless para Apache Spark implanta medidas de segurança padrão.
O comando da Google Cloud CLI a seguir anexa um firewall de rede a uma sub-rede que permite comunicações de entrada internas entre VMs usando todos os protocolos em todas as portas:
gcloud compute firewall-rules create allow-internal-ingress \ --network=NETWORK_NAME \ --source-ranges=SUBNET_RANGES \ --destination-ranges=SUBNET_RANGES \ --direction=ingress \ --action=allow \ --rules=all
Observações:
SUBNET_RANGES: consulte Permitir conexões de entrada internas entre VMs. A rede VPC
defaultem um projeto com a regra de firewalldefault-allow-internal, que permite a comunicação de entrada em todas as portas (tcp:0-65535,udp:0-65535, eicmp protocols:ports), atende ao requisito de conectividade de sub-rede aberta. No entanto, essa regra também permite a entrada de qualquer instância de VM na rede.
Política de firewall do sistema regional criada automaticamente
Para atender ao requisito de conectividade de sub-rede aberta,
as cargas de trabalho em lote e as sessões interativas do Serverless para Apache Spark
que usam a versão de ambiente de execução 3.0 ou mais recente criam automaticamente uma política de firewall do sistema regional
dataproc-firewall-policy-[network-id]-region ou
dataproc-fw-[network-id]-region na sub-rede VPC em lote ou de sessão.
Essa política contém as seguintes regras de entrada e saída.
| Nome | Finalidade | Prioridade | Direção | Ação | Origem e destino | Protocolo e portas |
|---|---|---|---|---|---|---|
dataproc-allow-internal-ingress-rule-[subnetworkId] |
Permite toda a comunicação interna necessária apenas de outras VMs do Serverless para Apache Spark marcadas na mesma sub-rede. | 4 | ENTRADA | PERMITIR |
srcSecureTag: valor da tag segura para essa sub-rede.targetSecureTags:valor da tag segura para essa sub-rede. |
tcp:0-65535, udp:0-65535, icmp protocols:ports |
dataproc-allow-internal-egress-rule-[subnetworkId] |
Permite que as VMs do Serverless para Apache Spark façam o download de pacotes, por exemplo, pip e apt-get, e acessem as APIs do Google usando o Acesso privado do Google. | 5 | SAÍDA | PERMITIR |
destIpRanges: 0.0.0.0/0.targetSecureTags:valor da tag segura para essa sub-rede. |
tcp:0-65535, udp:0-65535, icmp protocols:ports |
Observações:
O Serverless para Apache Spark provisiona um projeto de locatário associado ao projeto do usuário para armazenar tags seguras. O Serverless para Apache Spark cria uma tag segura para a sub-rede no projeto de locatário e a anexa às VMs do Serverless para Apache Spark, o que garante que a política de firewall do sistema criada seja aplicada apenas às VMs do Serverless para Apache Spark.
A política de firewall do sistema criada automaticamente não é compatível com a VPC compartilhada.
Serverless para Apache Spark e redes VPC-SC
Com o VPC Service Controls, os administradores de rede podem definir um perímetro de segurança em torno dos recursos dos serviços gerenciados pelo Google para controlar a comunicação entre esses serviços.
Considere as seguintes estratégias ao usar redes VPC-SC com o Serverless para Apache Spark:
Crie uma imagem de contêiner personalizada que pré-instale dependências fora do perímetro da VPC-SC, e, em seguida, envie uma carga de trabalho em lote do Spark que use a imagem de contêiner personalizada.
Para mais informações, consulte VPC Service Controls: Serverless para Apache Spark.