Esegui il deployment di un servizio Cloud Run

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questo documento descrive come eseguire il deployment delle tue applicazioni nei servizi Cloud Run.

Google Cloud Deploy ti consente di eseguire il deployment dei tuoi carichi di lavoro basati su container in qualsiasi servizio Cloud Run. Tutte le funzionalità di Google Cloud Deploy sono supportate quando esegui il deployment nelle destinazioni Cloud Run.

Questo documento descrive le tre configurazioni principali che devi completare per eseguire il deployment in Cloud Run:

Prima di iniziare

Crea la tua configurazione di destinazione

La destinazione può essere configurata nella YAML della pipeline di distribuzione oppure può essere effettuata in un file separato. Inoltre, puoi configurare più di una destinazione nello stesso file.

Nella definizione di destinazione, crea una stanza virtuale run per identificare la località in cui verrà creato il servizio Cloud Run.

La sintassi per specificare il servizio Cloud Run nella definizione di destinazione è la seguente:

run:
 location: projects/[project_name]/locations/[region_name]

Questo identificatore di risorsa utilizza i seguenti elementi:

  • [project_name] è il nome del progetto Google Cloud in cui verrà creato il servizio Cloud Run.

    Dovrai eseguire questa operazione per ogni target. Consigliamo un progetto diverso per ogni servizio Cloud Run. Se vuoi più di un servizio nello stesso progetto, devi utilizzare i profili Skaffold nel file di configurazione skaffold.yaml.

  • [region_name] è l'area geografica in cui verrà creato il servizio. I tuoi servizi possono trovarsi in qualsiasi area geografica supportata da Cloud Run.

Di seguito è riportato un esempio di configurazione di destinazione che definisce il servizio Cloud Run da creare:

      apiVersion: deploy.cloud.google.com/v1
      kind: Target
      metadata:
       name: dev
      description: development service
      run:
       location: projects/my-app/locations/us-central1

Puoi definire questo target in una definizione della pipeline di distribuzione di Google Cloud Deploy o separatamente. In ogni caso, devi registrare la destinazione prima di creare la release per eseguire il deployment del servizio Cloud Run.

Crea la tua configurazione Skaffold

Di seguito è riportato un file skaffold.yaml di esempio per un deployment di servizi Cloud Run:

apiVersion: skaffold/v3alpha1
kind: Config
metadata:
  name: cloud-run-application
manifests:
  rawYaml:
  - service.yaml
deploy:
  cloudrun: {}

In questo file skaffold.yaml...

  • manifests.rawYaml fornisce i nomi delle definizioni del servizio Cloud Run.

    In questo esempio, service.yaml è il file che definisce il servizio Cloud Run di cui verrà eseguito il deployment di Skaffold.

  • La sezione deploy specifica il modo in cui vuoi eseguire il deployment del manifest, in particolare il progetto e la località. Il campo deploy è obbligatorio.

    Ti consigliamo di lasciare vuoto il campo {}. Google Cloud Deploy completa questo processo durante il rendering, in base al progetto e alla località nella definizione del target.

    Per lo sviluppo locale, tuttavia, puoi fornire i valori qui. Tuttavia, Google Cloud Deploy utilizza sempre il progetto e la località dalla definizione del target, indipendentemente dal fatto che qui venga fornito un valore.

Creare le definizioni del servizio Cloud Run

Per creare una definizione di servizio Cloud Run, puoi crearne una manualmente o copiarne una da un servizio esistente. Entrambe sono descritte in questa sezione.

Opzione 1: crea una nuova istanza di Cloud Run service.yaml

service.yaml definisce il tuo servizio Cloud Run. Quando crei una release, Skaffold utilizza questa definizione per eseguire il deployment del servizio.

Ecco un esempio semplificato:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
 name: [SERVICE_NAME]
spec:
 template:
  spec:
   containers:
   - image: [IMAGE_PATH]

Dove:

  • [SERVICE-NAME] è un nome per questo servizio Cloud Run.

  • [IMAGE_PATH] rimanda all'immagine container o alle immagini di cui esegui il deployment con questo servizio.

Opzione 2: copia un elemento service.yaml da un servizio esistente utilizzando Google Cloud Console

Puoi creare un servizio utilizzando Google Cloud Console o utilizzarne uno esistente e copiare il tuo service.yaml da lì.

Per ottenere service.yaml utilizzando Google Cloud CLI:

gcloud run services describe [service_name] --format=export

Per scaricare service.yaml da Google Cloud Console:

  1. In Google Cloud Console, vai alla pagina Servizi Cloud Run.

  2. Seleziona il servizio esistente di cui vuoi utilizzare la definizione.

In alternativa, puoi crearne uno nuovo e selezionarlo. Quando selezioni il servizio, viene visualizzata la pagina Dettagli servizio:

pagina dei dettagli del servizio Google Cloud Console, in cui è visualizzata la scheda YAML

  1. Seleziona la scheda YAML.

  2. Fai clic su Modifica, copia i contenuti del file YAML in un nuovo file denominato service.yaml, nel tuo file system, in modo che Skaffold possa utilizzarlo quando crei una release.

Riepilogo

Ora che hai definito la definizione del servizio Cloud Run, la configurazione skaffold.yaml e la definizione del target di Google Cloud Deploy, e hai registrato il target come risorsa Google Cloud Deploy, ora puoi chiamare la pipeline di distribuzione per creare una release e farla progredire attraverso l'avanzamento dei target definiti nella pipeline.

Comportamento dei servizi tra le revisioni

Quando esegui nuovamente il deployment di un servizio, la nuova revisione si basa sul nuovo deployment di service.yaml. Non viene mantenuto nulla della revisione precedente, a meno che non sia la stessa nel file YAML di cui è stato appena eseguito il deployment. Ad esempio, se nella revisione precedente sono presenti impostazioni di configurazione o etichette che non sono presenti nel nuovo YAML, tali impostazioni o etichette non sono presenti nella nuova revisione del servizio.

Deployment dei servizi Cloud Run in più progetti

Se devi eseguire il deployment di servizi che si trovano in progetti diversi, il tuo account di servizio di esecuzione deve disporre dell'autorizzazione per accedere ai progetti in cui sono definiti tali servizi.

Per ulteriori informazioni, vedi Account di servizio di esecuzione Google Cloud Deploy e Ruoli e autorizzazioni di Gestione di identità e accessi.

Passaggi successivi