Questo documento descrive come eseguire il deployment delle applicazioni, inclusi Servizi Cloud Run e job Cloud Run.
Cloud Deploy ti consente di eseguire il deployment dei carichi di lavoro basati su container servizio Cloud Run o job. Tutte le funzionalità di Cloud Deploy sono supportata quando esegui il deployment nelle destinazioni Cloud Run I servizi Cloud Run, ma i deployment canary non sono supportati per dei job Cloud Run.
Questo documento descrive le tre configurazioni principali da completare per eseguire il deployment in Cloud Run:
- Creare la configurazione di destinazione
- Crea la configurazione Skaffold
- Crea il tuo Cloud Run definizioni dei servizi oppure definizioni dei job
Limitazioni
Puoi eseguire il deployment di un solo servizio o job Cloud Run per destinazione.
Non puoi eseguire un deployment canary rispetto a un job Cloud Run.
I servizi Cloud Run, invece, possono utilizzare un deployment canary.
Prima di iniziare
Assicurati di utilizzare la versione
401.0.0
o successiva dell'interfaccia a riga di comando gcloud.
Crea la tua configurazione target
La destinazione può essere configurata nella pipeline di distribuzione YAML oppure in una file separato. Inoltre, puoi configurare più di una destinazione nello stesso file.
Nella definizione della destinazione, crea una stanza run
per identificare il luogo in cui
verrà creato il servizio Cloud Run.
La sintassi per specificare il servizio o il job Cloud Run nel tuo la definizione del target è 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 o il job Cloud Run.Eseguirai questa operazione per ogni target. Suggeriamo un progetto diverso per ogni Cloud Run o il servizio Cloud Run. Se vuoi più di un servizio o job nello stesso progetto, devi utilizzare i profili Skaffold nel file di configurazione
skaffold.yaml
.[
region_name
] è la regione in cui verranno creati il servizio o il job. Il tuo servizio o job può essere in qualsiasi quella supportata da Cloud Run.
Di seguito è riportato un esempio di configurazione di destinazione, che definisce Servizio o job 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 pipeline di distribuzione di Cloud Deploy o separatamente. In ogni caso, devi registra la destinazione prima di creare la release per eseguire il deployment del tuo servizio Cloud Run o lavoro.
Crea la tua configurazione Skaffold
Di seguito è riportato un esempio di file skaffold.yaml
per un
Deployment di Cloud Run:
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: cloud-run-application
manifests:
rawYaml:
- service.yaml
deploy:
cloudrun: {}
In questo file skaffold.yaml
...
manifests.rawYaml
fornisce i nomi dei comandi Cloud Run le definizioni dei servizi.In questo esempio,
service.yaml
è il file che definisce un Servizio Cloud Run di cui Skaffold eseguirà il deployment. Questo nome file può essere qualsiasi cosa, ma per convenzione èservice.yaml
per un servizio,job.yaml
per un'offerta di lavoro.La stanza
deploy
specifica la modalità di deployment del manifest. nello specifico il progetto e la località. Il campodeploy
è obbligatorio.Ti consigliamo di lasciare vuoto
{}
. Cloud Deploy compila durante il rendering, in base al progetto e alla località definizione di Kubernetes.Per lo sviluppo locale, tuttavia, è possibile specificare dei valori qui. Tuttavia, Cloud Deploy utilizza sempre il progetto e la località della destinazione o meno, indipendentemente dal fatto che vengano forniti valori qui.
Crea le tue definizioni di servizio Cloud Run
Per creare una definizione di servizio Cloud Run, puoi creare manualmente o copiarne uno da un servizio esistente. Entrambi sono descritti in questo .
Opzione 1: crea un nuovo service.yaml
di Cloud Run
service.yaml definisce il servizio Cloud Run. Quando per creare 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]
è il nome di questo servizio Cloud Run.[IMAGE_PATH]
punta all'immagine o alle immagini container con cui stai eseguendo il deployment 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 copia 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
dalla console Google Cloud:
Nella console Google Cloud, vai ai 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, quindi copia il contenuto del file YAML in un nuovo file chiamato
service.yaml
, nel tuo file system, in modo che Skaffold possa utilizzarlo quando crea una release.
Creare le definizioni del job Cloud Run
Per eseguire il deployment della definizione di un job Cloud Run, puoi creare manualmente oppure copiarne uno da un job esistente. Entrambi sono descritti in questo .
Tieni presente che non necessariamente i job vengono eseguiti al momento del deployment con Cloud Deploy. È diverso dai servizi in esecuzione delle applicazioni dopo il deployment. La modalità di richiamo di un job dipende dal job per trovare le regole.
Opzione 1: crea un nuovo job.yaml
di Cloud Run
Il file job.yaml definisce il job Cloud Run. Quando crei una release, Skaffold utilizza questo per eseguire il deployment del job.
Ecco un esempio semplificato:
apiVersion: run.googleapis.com/v1
kind: Job
metadata:
name: [JOB_NAME]
spec:
template:
spec:
containers:
- image: [IMAGE_PATH]
Dove:
[JOB_NAME]
è un nome per questo job Cloud Run.[IMAGE_PATH]
punta all'immagine container di cui stai eseguendo il deployment per questo job.
Opzione 2: copia un job.yaml
da un job esistente utilizzando la console Google Cloud
Puoi creare un job utilizzando la console Google Cloud o utilizzarne uno esistente e copiare da lì il tuo job.yaml
.
Per ottenere il token job.yaml
utilizzando Google Cloud CLI:
gcloud run jobs describe [job_name] --format=export
Per scaricare job.yaml
dalla console Google Cloud:
Nella console Google Cloud, vai ai job Cloud Run .
Seleziona il job esistente di cui vuoi utilizzare la definizione.
In alternativa, puoi crearne uno nuovo e selezionarlo. Quando selezioni il job, viene visualizzata la pagina Dettagli job:
Seleziona la scheda YAML.
Fai clic su Modifica, quindi copia il contenuto del file YAML in un nuovo file chiamato
job.yaml
, nel tuo file system, in modo che Skaffold possa utilizzarlo quando crea una release.
Riepilogo
Ora che hai la definizione del tuo servizio o job Cloud Run,
skaffold.yaml
e la destinazione di Cloud Deploy
definizione e sono state
ha registrato il tuo target
come risorsa di Cloud Deploy, ora puoi
richiamare la pipeline di distribuzione
per creare una release e farla avanzare lungo i target definiti
nella pipeline.
Guida rapida Esegui il deployment di un'app in Cloud Run utilizzando Cloud Deploy mostra tutto questo in azione.
Comportamento dei servizi nelle varie revisioni
Quando esegui nuovamente il deployment di un servizio, la nuova revisione si basa
di cui è stato eseguito il deployment di service.yaml
. La revisione precedente non viene mantenuta.
a meno che non sia lo stesso nel codice YAML appena distribuito. Ad esempio, se nella revisione precedente sono presenti impostazioni di configurazione o etichette che non sono presenti nel nuovo file YAML, queste impostazioni o etichette non sono presenti nella nuova revisione.
Attivazione di job Cloud Run
Dopo aver eseguito il deployment di un job, puoi attivarlo come descritto nella documentazione di Cloud Run.
Deployment di servizi e job Cloud Run in più progetti
Se devi eseguire il deployment di servizi o job che si trovano in progetti diversi, l'account di servizio di esecuzione deve l'autorizzazione ad accedere ai progetti in cui sono definiti questi servizi o job.
Consulta Account di servizio di esecuzione di Cloud Deploy e i ruoli e le autorizzazioni di Identity and Access Management per ulteriori informazioni.
Passaggi successivi
Prova la guida rapida: esegui il deployment di un'applicazione in Cloud Run
Scopri di più sulla configurazione delle destinazioni di Cloud Deploy
Scopri di più sugli ambienti di esecuzione di Cloud Deploy.
Scopri di più sul supporto di Skaffold per Cloud Run
Scopri di più su Cloud Run