Configura Ambient Networking

Ambient Networking offre un'esperienza di networking delle risorse semplificata integrata in Cloud Run. Fornisce alle tue risorse un piano dati completamente gestito per eliminare l'onere operativo di creazione e manutenzione dei proxy personalizzati. Inoltre, astrae i concetti di mesh di servizi, in modo da ottenere funzionalità di networking avanzate senza dover apprendere o configurare un mesh.

Quando attivi l'Ambient Networking, il traffico passa invariato per impostazione predefinita, in modo che il traffico HTTP e TCP esistente continui a funzionare. L'attivazione di Ambient Networking da sola non modifica il comportamento della risorsa. Come base, Ambient Networking ti consente di attivare le funzionalità descritte nella sezione seguente.

Caso d'uso

Ambient Networking è la base per le funzionalità di networking avanzate in Cloud Run. Dopo aver attivato Ambient Networking, puoi attivare l'utilizzo di Agent Gateway su Cloud Run. Questa funzionalità regola il traffico degli agenti con policy di accesso e sicurezza gestite centralmente dalla tua organizzazione.

Architettura

Ambient Networking esegue un container sidecar Envoy completamente gestito all'interno di ogni istanza container della risorsa Cloud Run, insieme al container dell'applicazione. Il sidecar intercetta il traffico di rete dell'istanza e applica la policy di routing e sicurezza che Cloud Run gli distribuisce.

Un container sidecar ambient in esecuzione insieme a un container dell'applicazione all'interno di un'istanza container di una risorsa Cloud Run, con il traffico che passa dal sidecar ad altre risorse Cloud Run.
Il container sidecar ambient intercetta il traffico tra il container dell'applicazione e le destinazioni che chiama (fai clic per ingrandire).

Ambiti di Ambient Networking

Ambient Networking supporta un ambito globale e un ambito regionale. L'ambito determina se il sidecar si connette a un piano di routing globale o regionale:

  • Regionale (predefinita): Cloud Run connette il sidecar a un piano di routing regionale, limitando le policy di routing e di sicurezza alle destinazioni all'interno della regione del servizio. Questo ambito supporta i requisiti di residenza dei dati (DRZ) per i dati at-rest, in uso e in transito. Se non specifichi un ambito, Ambient Networking utilizza l'ambito regionale.
  • Globale: Cloud Run connette il sidecar a un piano di routing globale, consentendogli di instradare il traffico verso destinazioni in qualsiasi regione.

Ogni funzionalità che utilizza Ambient Networking richiede un ambito specifico:

Funzionalità Ambito globale Ambito regionale
Agent Gateway su Cloud Run Non supportata Supportato

Limitazioni

Le seguenti limitazioni si applicano ad Ambient Networking:

  • Il traffico UDP non è supportato. Ambient Networking supporta solo il traffico HTTP e TCP.
  • Le richieste in entrata non supportano HTTP/2 end-to-end. Per maggiori dettagli, vai alla sezione Problemi noti.
  • L'ambito regionale non supporta le reti VPC che risolvono *.googleapis.com in indirizzi IP di accesso privato Google. Per maggiori dettagli, vai alla sezione Problemi noti.
  • L'ambiente di esecuzione di prima generazione non è supportato. Se non specifichi un ambiente di esecuzione, Cloud Run utilizza la seconda generazione.
  • Le istanze container richiedono più tempo per l'avvio. Per maggiori dettagli, vai alla sezione Problemi noti.

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  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. Abilita le API Cloud Run, Network Services e Traffic Director, se non sono già abilitate.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    Abilita le API

  7. Aumenta il limite di CPU della risorsa Cloud Run di 1 vCPU e il limite di memoria di 1 GiB. Se il nuovo limite di CPU non è un valore supportato, utilizza il valore supportato successivo più alto. Il sidecar ambient condivide la CPU e la memoria dell'istanza del container, quindi questo aumento garantisce che l'applicazione mantenga le risorse di cui ha bisogno.

  8. Leggi la pagina dei prezzi di Cloud Run per l'utilizzo del sidecar di Ambient Networking. La fatturazione per le funzionalità ambient non viene applicata durante l'anteprima.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment di servizi Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Se esegui il deployment di un servizio o di una funzione dal codice sorgente, devi disporre anche di ruoli aggiuntivi concessi al tuo progetto e al account di servizio Cloud Build.

Anche l'identità di servizio della risorsa Cloud Run deve disporre dei seguenti ruoli:

  • Client Traffic Director (roles/trafficdirector.client)
  • Cloud Trace Agent (roles/cloudtrace.agent)

Per concedere questi ruoli all'identità di servizio, utilizza 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"

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • RUN_CLIENT_SA: il nome del account di servizio collegato al tuo servizio Cloud Run.

Se l'identità di servizio non dispone di questi ruoli, il deployment della risorsa Cloud Run viene comunque eseguito, ma le funzionalità che utilizzano Ambient Networking non funzionano.

Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo servizio Cloud Run interagisce con le APIGoogle Cloud , come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.

Configura Ambient Networking

Configura l'Ambient Networking utilizzando gcloud o un file YAML.

gcloud

  • Per abilitare Ambient Networking su un nuovo servizio, passa il flag --ambient-networking e, facoltativamente, il flag --ambient-scope:

    gcloud beta run deploy SERVICE \
      --image=IMAGE_URL \
      --ambient-networking \
      --ambient-scope=SCOPE \
      --region=REGION
  • Per abilitare l'Ambient Networking su un servizio esistente, passa gli stessi flag al comando gcloud beta run services update, che esegue il deployment di una nuova revisione con l'Ambient Networking abilitato:

    gcloud beta run services update SERVICE \
      --ambient-networking \
      --ambient-scope=SCOPE \
      --region=REGION
  • Per disattivare Ambient Networking, passa il flag --no-ambient-networking:

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

Sostituisci quanto segue:

  • SERVICE: il nome del tuo servizio Cloud Run.
  • IMAGE_URL: un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • SCOPE: l'ambito di Ambient Networking, global o regional.
  • REGION: la regione del servizio.

YAML

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aggiungi l'annotazione run.googleapis.com/ambient-networking e, facoltativamente, l'annotazione run.googleapis.com/ambient-scope:

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

    Sostituisci SCOPE con l'ambito di Ambient Networking, global o regional. Per disattivare Ambient Networking, imposta run.googleapis.com/ambient-networking su 'false' e rimuovi l'annotazione run.googleapis.com/ambient-scope.

  3. Crea o aggiorna il servizio utilizzando il seguente comando:

    gcloud run services replace service.yaml

    Il comando gcloud run services replace utilizza per impostazione predefinita il file service.yaml, se presente.

Visualizza le impostazioni di Ambient Networking

Per visualizzare le impostazioni attuali di Ambient Networking per il tuo servizio Cloud Run:

Console

  1. Nella console Google Cloud , vai alla pagina Servizi di Cloud Run:

    Vai a Cloud Run

  2. Fai clic sul servizio per aprire la pagina Dettagli servizio.

  3. Fai clic sulla scheda Networking.

  4. Nella scheda Ambient Networking, visualizza l'impostazione Ambito.

gcloud

  1. Utilizza il seguente comando:

    gcloud beta run services describe SERVICE \
       --region=REGION
  2. Individua le annotazioni run.googleapis.com/ambient-networking e run.googleapis.com/ambient-scope nella configurazione restituita.

Passaggi successivi