Configurar a rede de ambiente

A rede ambiente oferece uma experiência simplificada de rede de recursos integrada ao Cloud Run. Ele oferece aos recursos um plano de dados totalmente gerenciado para remover o fardo operacional de criar e manter proxies personalizados. Ele também abstrai conceitos de malha de serviço, para que você tenha recursos de rede avançados sem aprender ou configurar uma malha.

Quando você ativa a rede de ambiente, o tráfego passa sem alterações por padrão, para que o tráfego HTTP e TCP atual continue funcionando. Ativar a rede ambiente por conta própria não muda o comportamento do recurso. Como base, a rede ambiente permite que você aceite os recursos descritos na seção a seguir.

Caso de uso

A rede ambiente é a base para recursos avançados de rede no Cloud Run. Depois de ativar a rede de ambiente, você pode optar por usar o Gateway de Agente no Cloud Run. Esse recurso controla o tráfego do agente com políticas de acesso e segurança que sua organização gerencia de forma centralizada.

Arquitetura

A rede de ambiente executa um contêiner secundário do Envoy totalmente gerenciado dentro de cada instância de contêiner do recurso do Cloud Run, ao lado do contêiner do aplicativo. O arquivo secundário intercepta o tráfego de rede da instância e aplica a política de roteamento e segurança que o Cloud Run distribui para ele.

Um contêiner secundário de ambiente em execução ao lado de um contêiner de aplicativo
  dentro de uma instância de contêiner de um recurso do Cloud Run, com
  o tráfego fluindo do contêiner secundário para outros recursos do
  Cloud Run.
O contêiner secundário intercepta o tráfego entre o contêiner do aplicativo e os destinos que ele chama (clique para ampliar).

Escopos de rede ambiente

A rede ambiente é compatível com um escopo global e um escopo regional. O escopo determina se o arquivo secundário se conecta a um plano de roteamento global ou regional:

  • Regional (padrão): o Cloud Run conecta o arquivo secundário a um plano de roteamento regional, limitando as políticas de roteamento e segurança aos destinos na região do serviço. Esse escopo é compatível com os requisitos de residência de dados (DRZ, na sigla em inglês) para dados em repouso, em uso e em trânsito. Se você não especificar um escopo, a rede ambiente usará o escopo regional.
  • Global: o Cloud Run conecta o arquivo secundário a um plano de roteamento global, permitindo que ele encaminhe o tráfego para destinos em qualquer região.

Cada recurso que usa a rede ambiente requer um escopo específico:

Recurso Escopo global Escopo regional
Gateway de Agente no Cloud Run Sem suporte Com suporte

Limitações

As seguintes limitações se aplicam à rede de ambiente:

  • Não há suporte para tráfego UDP. A rede de ambiente só é compatível com tráfego HTTP e TCP.
  • As solicitações de entrada não são compatíveis com HTTP/2 de ponta a ponta. Para detalhes, consulte Problemas conhecidos.
  • O escopo regional não é compatível com redes VPC que resolvem *.googleapis.com para endereços IP do Acesso Privado do Google. Para detalhes, consulte Problemas conhecidos.
  • O ambiente de execução de primeira geração não é compatível. Se você não especificar um ambiente de execução, o Cloud Run vai usar a segunda geração.
  • As instâncias de contêiner levam mais tempo para serem iniciadas. Para detalhes, consulte Problemas conhecidos.

Antes de começar

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho sem custos financeiros.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Ative as APIs Cloud Run, Network Services e Traffic Director, se ainda não estiverem ativadas.

    Funções necessárias para ativar APIs

    Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, é possível conseguir essa permissão pelo papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    Ativar as APIs

  7. Aumente o limite de CPU do recurso do Cloud Run em 1 vCPU e o limite de memória em 1 GiB. Se o novo limite de CPU não for um valor compatível, use o próximo valor compatível mais alto. O sidecar de ambiente compartilha a CPU e a memória da instância de contêiner. Portanto, esse aumento garante que o aplicativo mantenha os recursos necessários.

  8. Leia a página de preços do Cloud Run para saber mais sobre o uso do sidecar de rede ambiente. O faturamento dos recursos de ambiente não é aplicado durante o pré-lançamento.

Funções exigidas

Para receber as permissões necessárias para configurar e implantar os serviços do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM:

Se você estiver implantando um serviço ou uma função do código-fonte, também precisará ter outros papéis concedidos no projeto e na conta de serviço do Cloud Build.

A identidade de serviço do recurso do Cloud Run também precisa ter os seguintes papéis:

  • Cliente do Traffic Director (roles/trafficdirector.client)
  • Agente do Cloud Trace (roles/cloudtrace.agent)

Para conceder esses papéis à identidade de serviço, use a gcloud:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:RUN_CLIENT_SA@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/trafficdirector.client"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:RUN_CLIENT_SA@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/cloudtrace.agent"

Substitua:

  • PROJECT_ID: o ID do projeto Google Cloud .
  • RUN_CLIENT_SA: o nome da conta de serviço anexada ao serviço do Cloud Run.

Se a identidade de serviço não tiver esses papéis, o recurso do Cloud Run ainda será implantado, mas os recursos que usam a rede de ambiente não vão funcionar.

Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o serviço do Cloud Run interage com as APIs doGoogle Cloud , como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.

Configurar a rede de ambiente

Configure a rede ambiente usando a gcloud ou um arquivo YAML.

gcloud

  • Para ativar a rede de ambiente em um novo serviço, transmita a flag --ambient-networking e, opcionalmente, a flag --ambient-scope:

    gcloud beta run deploy SERVICE \
      --image=IMAGE_URL \
      --ambient-networking \
      --ambient-scope=SCOPE \
      --region=REGION
  • Para ativar a rede de ambiente em um serviço atual, transmita as mesmas flags para o comando gcloud beta run services update, que implanta uma nova revisão com a rede de ambiente ativada:

    gcloud beta run services update SERVICE \
      --ambient-networking \
      --ambient-scope=SCOPE \
      --region=REGION
  • Para desativar a rede ambiente, transmita a flag --no-ambient-networking:

    gcloud beta run services update SERVICE \
      --no-ambient-networking \
      --region=REGION

Substitua:

  • SERVICE: o nome do seu serviço do Cloud Run;
  • IMAGE_URL: uma referência à imagem do contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato de LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • SCOPE: o escopo de rede ambiente, global ou regional.
  • REGION: a região do serviço.

YAML

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Adicione a anotação run.googleapis.com/ambient-networking e, se quiser, a anotação run.googleapis.com/ambient-scope:

    spec:
     template:
       metadata:
         annotations:
           run.googleapis.com/ambient-networking: 'true'
           run.googleapis.com/ambient-scope: SCOPE

    Substitua SCOPE pelo escopo da Rede Ambiente, seja global ou regional. Para desativar a rede ambiente, defina run.googleapis.com/ambient-networking como 'false' e remova a anotação run.googleapis.com/ambient-scope.

  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run services replace service.yaml

    O comando gcloud run services replace usa o arquivo service.yaml por padrão, se ele estiver presente.

Ver as configurações de rede ambiente

Para ver as configurações atuais de rede ambiente do serviço do Cloud Run:

Console

  1. No console do Google Cloud , acesse a página Serviços do Cloud Run:

    Acessar o Cloud Run

  2. Clique no serviço para abrir a página Detalhes do serviço.

  3. Clique na guia Rede.

  4. No card Rede ambiente, confira a configuração Escopo.

gcloud

  1. Use o comando a seguir:

    gcloud beta run services describe SERVICE \
       --region=REGION
  2. Localize as anotações run.googleapis.com/ambient-networking e run.googleapis.com/ambient-scope na configuração retornada.

A seguir