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:
- Creare la configurazione di destinazione
- Crea la tua configurazione Skaffold
- Crea la tua definizione o definizione di servizio Cloud Run
Prima di iniziare
Assicurati di utilizzare l'interfaccia a riga di comando gcloud
401.0.0
o superiore.Disporre di una pipeline di distribuzione di Google Cloud Deploy.
Creare la configurazione di destinazione
La destinazione può essere configurata nella configurazione YAML della pipeline di distribuzione oppure può essere creata in un file separato. Inoltre, puoi configurare più di una destinazione nello stesso file.
Nella definizione di destinazione, crea una sfera 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 risorsa utilizza i seguenti elementi:
[
project_name
] è il nome del progetto Google Cloud in cui verrà creato il servizio Cloud Run.Devi eseguire questa operazione per ogni target. Ti 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
] è la regione in cui verrà creato il servizio. I tuoi servizi possono trovarsi in qualsiasi regione 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 all'interno di una definizione della pipeline di distribuzione di Google Cloud Deploy, oppure 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 il deployment di un servizio 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 dei servizi Cloud Run.In questo esempio,
service.yaml
è il file che definisce il servizio Cloud Run di cui Skaffold eseguirà il deployment.La intestazione
deploy
specifica in che modo vuoi eseguire il deployment del manifest, in particolare il progetto e la località. Il campodeploy
è obbligatorioTi consigliamo di lasciare vuoto il campo
{}
. Google Cloud Deploy completa questo processo durante il rendering, in base al progetto e alla località della definizione di destinazione.Per lo sviluppo locale, tuttavia, puoi fornire valori qui. Tuttavia, Google Cloud Deploy utilizza sempre il progetto e la località dalla definizione della destinazione, indipendentemente dal fatto che qui venga fornito un valore.
Creare le definizioni dei servizi Cloud Run
Per creare una definizione del servizio Cloud Run, puoi crearne una manualmente o copiarne una da un servizio esistente. Entrambi sono descritti in questa sezione.
Opzione 1: crea un nuovo servizio Cloud Run service.yaml
Il file service.yaml definisce il 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 del container o alle immagini di cui esegui il deployment con questo servizio.
Opzione 2: copia un service.yaml
da un servizio esistente utilizzando la console Google Cloud
Puoi creare un servizio utilizzando la console Google Cloud 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 ottenere l'service.yaml
dalla console Google Cloud:
Nella console Google Cloud, vai alla pagina Servizi Cloud Run.
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:
Seleziona la scheda YAML.
Fai clic su Modifica per copiare i contenuti del file YAML in un nuovo file chiamato
service.yaml
nel tuo file system, in modo che Skaffold possa utilizzarlo quando crei una release.
Riepilogo
Ora che hai 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 revocare la pipeline di distribuzione per creare una release ed avanzare lungo la progressione delle destinazioni definite nella pipeline.
La guida rapida Esegui il deployment di un'app in Cloud Run utilizzando Google Cloud Deploy mostra tutto questo in azione.
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 mantenuta alcuna informazione sulla revisione precedente, a meno che non sia la stessa nel file YAML appena sottoposto a deployment. Ad esempio, se nella revisione precedente sono presenti impostazioni di configurazione o etichette che non si trovano nel nuovo YAML, tali impostazioni o etichette non saranno presenti nella nuova revisione del servizio.
Deployment di 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.
Per ulteriori informazioni, consulta Account di servizio di esecuzione Google Cloud Deploy e Autorizzazioni e ruoli di Identity and Access Management.
Passaggi successivi
Prova la guida rapida: esegui il deployment di un'applicazione su Cloud Run.
Scopri di più sulla configurazione di destinazioni di Google Cloud Deploy
Scopri di più sugli ambienti di esecuzione di Google Cloud Deploy.
Scopri di più sul supporto Skaffold per Cloud Run
Scopri di più su Cloud Run