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.
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.compara 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
- 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
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.-
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.
-
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:
- Desenvolvedor do Cloud Run (
roles/run.developer) no serviço Cloud Run - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na conta de serviço
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-networkinge, 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 deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- SCOPE: o escopo de rede ambiente,
globalouregional. - REGION: a região do serviço.
YAML
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
Adicione a anotação
run.googleapis.com/ambient-networkinge, se quiser, a anotaçãorun.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
globalouregional. Para desativar a rede ambiente, definarun.googleapis.com/ambient-networkingcomo'false'e remova a anotaçãorun.googleapis.com/ambient-scope.Crie ou atualize o serviço usando o seguinte comando:
gcloud run services replace service.yaml
O comando
gcloud run services replaceusa o arquivoservice.yamlpor 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
No console do Google Cloud , acesse a página Serviços do Cloud Run:
Clique no serviço para abrir a página Detalhes do serviço.
Clique na guia Rede.
No card Rede ambiente, confira a configuração Escopo.
gcloud
Use o comando a seguir:
gcloud beta run services describe SERVICE \ --region=REGION
Localize as anotações
run.googleapis.com/ambient-networkingerun.googleapis.com/ambient-scopena configuração retornada.
A seguir
- Saiba mais sobre o Gateway de Agente no Cloud Run.
- Saiba como configurar os recursos da Agent Platform para o Cloud Run.
- Saiba mais sobre a autenticação entre serviços no Cloud Run.
- Saiba como rastrear solicitações com o Cloud Trace.