Configure a conetividade do Vertex AI a outras redes

Este documento começa por descrever as opções para expandir o alcance dos serviços da Vertex AI implementados com o acesso a serviços privados.

Segue-se uma breve discussão sobre as motivações para implementar os serviços num ponto final do Private Service Connect, caso seja mais adequado às suas necessidades.

Uma vez que os serviços privados acedem aos serviços do Vertex AI numa rede gerida que está em intercâmbio com a sua, certifique-se de que conhece o material em Intercâmbios de VPCs antes de ler o resto deste documento.

Por predefinição, a configuração de peering só permite que a rede da Vertex AI com peering alcance os pontos finais nas suas sub-redes locais. A exportação de rotas personalizadas permite que a rede de produção alcance outras redes para as quais a sua rede tem rotas estáticas ou dinâmicas.

Uma vez que o peering transitivo não é suportado, as ligações do Vertex AI não conseguem alcançar pontos finais noutras redes que estejam diretamente em peering com a sua rede, mesmo com a opção "Exportar rotas personalizadas" ativada. No exemplo apresentado no diagrama seguinte, os pacotes podem atravessar a associação de pares n.º 1, mas não a associação de pares n.º 2.

Com intercâmbio transitivo

Para permitir que a Vertex AI alcance a rede do utilizador n.º 2, substitua a ligação de peering n.º 2 pela VPN n.º 2, conforme mostrado no diagrama seguinte.

Sem intercâmbio transitivo

A ativação de trajetos personalizados na ligação de peering n.º 1 permite que os pacotes IP da rede do Vertex AI alcancem a rede do utilizador n.º 2.

Para permitir que os pacotes de resposta da rede de utilizadores n.º 2 sejam encaminhados de volta para a rede do Vertex AI, o trajeto de retorno também tem de existir na tabela de encaminhamento para a rede de utilizadores n.º 2. As rotas de VPN são trocadas através do Border Gateway Protocol (BGP). Nos Cloud Routers, podemos personalizar a configuração do BGP no utilizador n.º 1 para anunciar uma rota ao intervalo de rede do Vertex AI de 10.1.0.0/16 à respetiva rede de utilizador n.º 2.

Tenha em atenção que pode editar ambos os lados da configuração BGP da VPN n.º 1 para permitir que a rede no local e a rede do Vertex AI aprendam rotas entre si. Uma vez que não existe nenhuma tentativa de transmitir pacotes de caminho direto a partir da rede do Vertex AI, nem os pacotes de resposta através de ligações de peering sequenciais relativamente a qualquer rede única, nenhuma destas tentativas de encaminhamento é explicitamente bloqueada.

Configure a conetividade do Vertex AI à Internet

Se não for especificada nenhuma rede quando inicia uma carga de trabalho, a carga de trabalho é executada num projeto de produtor gerido pela Google separado.

Se for especificada uma rede, a carga de trabalho é executada num projeto produtor que está em peering com o projeto consumidor.

Por predefinição, a rede da Vertex AI tem a sua própria rota para a Internet e a rede do produtor tem a sua própria rota predefinida para a Internet.

Para forçar o encaminhamento das ligações de saída da rede do produtor através da sua rede, pode ativar os VPC Service Controls para as interligações. Tenha em atenção que esta é uma configuração separada do VPC Service Controls.

A ativação dos VPC Service Controls para as interligações provoca as seguintes alterações na rede da Vertex AI:

  • Elimina o trajeto da Internet predefinido.
  • Cria uma rota para o destino 199.36.153.4/30 com o próximo salto do gateway de Internet predefinido.
  • Cria uma zona privada gerida do Cloud DNS para *.googleapis.com com registos adequados para mapear nomes de anfitriões para um desses quatro endereços.
  • Autoriza essa zona para utilização pela rede VPC servicenetworking.

Com esta alteração implementada, pode exportar a rota predefinida da sua rede para garantir que as ligações de saída à Internet são encaminhadas através da sua rede da VPC. Esta alteração também lhe permite aplicar as políticas necessárias ao tráfego de saída do Vertex AI.

Pode consultar o estado dos VPC Service Controls para as interligações executando o seguinte comando:

gcloud services vpc-peerings get-vpc-service-controls \
  --network YOUR_NETWORK

Esta ação devolve enabled: true se a configuração estiver ativada e uma lista vazia ({}) se estiver desativada.

Trabalhar com os VPC Service Controls

Se for especificada uma rede para a carga de trabalho e o VPC Service Controls estiver ativado, a carga de trabalho é executada numa rede de produtor com intercâmbio no projeto do consumidor e sujeita às mesmas políticas que a rede do consumidor.

Se estas políticas bloquearem o tráfego de saída, a carga de trabalho também não vai poder aceder à Internet. Neste caso, tem de seguir os passos na secção anterior para forçar o tráfego de saída da carga de trabalho a passar por uma instância de NAT na sua rede VPC.

Configure a conetividade a partir do Vertex AI através de proxies

Outro padrão para controlar o IP de saída do Vertex AI é forçar as ligações de saída das cargas de trabalho a passar por um proxy Web que controla. Isto também permite a inspeção das ligações de saída para fins de conformidade.

No entanto, a utilização de um proxy de terceiros força o utilizador a gerir o certificado do proxy para reclamações de autenticação. Além disso, estes proxies podem não propor uma lista de conjuntos de cifras que se cruze com o que os SDKs e as APIs Vertex AI esperam.

OGoogle Cloud oferece agora um proxy Web seguro para facilitar este padrão. Agora, pode seguir o guia de início rápido Implemente uma instância de proxy Web segura e adaptar as suas cargas de trabalho para a usar em ligações de saída. Estas ligações parecem ter origem no endereço IP de origem do proxy.

Se a biblioteca KFP ainda não estiver instalada na imagem do componente, o pipeline tenta instalá-la antes de executar qualquer código no qual possa ter especificado um proxy.

Se o pipeline depender do proxy para instalar pacotes da Internet, esta tentativa falha e pode ver um erro semelhante ao seguinte:

Could not find a version that satisfies the requirement kfp==2.7.0

Em casos como este, quando não consegue instalar o KFP antes de executar o código, tem de usar uma imagem com o KFP já instalado.

Pode adicionar o KFP a qualquer imagem base e enviá-lo para o seu repositório.

O exemplo de Dockerfile seguinte adiciona o KFP à imagem base python:3.8.

FROM python:3.8
RUN pip install kfp==2.7.0

Em seguida, pode configurar o pipeline @component para usar esta imagem:

@component(base_image="$PATH_TO_YOUR_REPOSITORY:YOUR_IMAGE")

Assim que o componente do pipeline estiver em execução, o seu código pode instalar livremente outros pacotes através do proxy. O exemplo seguinte instala o numpy através de um proxy em https://10.10.10.10:443.

import subprocess
subprocess.call(['pip', 'install', '--proxy', 'https://10.10.10.10:443', 'numpy'])`

Configure listas de autorizações para o acesso à API

Para transações entre cargas de trabalho da Vertex AI e APIs Google, tem de permitir o acesso das cargas de trabalho aos intervalos de IP usados pelas APIs Google. Para tal, pode executar o script fornecido para devolver endereços IP para domínios predefinidos.

Fornecer conetividade híbrida com o Private Service Connect

A implementação de serviços da Vertex AI com o acesso a serviços privados tem várias limitações.

  • Pode ter de reservar grandes conjuntos de endereços IP privados por carga de trabalho, evitando também conflitos com o endereçamento da VPC.
    • A execução de várias cargas de trabalho em paralelo pode continuar a causar um erro RANGES_EXHAUSTED, mesmo após a configuração inicial correta.
  • Complexidade da resolução de problemas e implementação de redes:
    • Uma vez que o peering transitivo não é suportado, tem de implementar soluções alternativas complexas para conceder conetividade entre diferentes redes com peering à sua rede VPC.
    • O estado da tabela de encaminhamento no ambiente do produtor não é imediatamente óbvio. Como não tem acesso ao projeto de inquilino, é frequentemente difícil determinar a que alvos uma carga de trabalho do Vertex AI pode realmente chegar sem testes extensivos.

Um padrão alternativo é implementar estes serviços num ponto final do Private Service Connect.

  • O serviço consome um único endereço IP na sua rede VPC, o que lhe permite preservar o espaço de endereços privados para sua própria utilização.
  • Uma vez que o IP do serviço Vertex AI está na sua própria rede, é mais simples criar e executar testes de conetividade para avaliar a respetiva acessibilidade de e para outros locais no seu ambiente.