In questa pagina viene descritto come eseguire il deployment di nuovi servizi e nuove revisioni in Cloud Run for Anthos.
Prerequisiti
Per utilizzare Google Cloud CLI, devi aver installato e configurato Google Cloud CLI.
Autorizzazioni richieste per il deployment
Devi disporre delle autorizzazioni per creare, aggiornare ed eliminare in apiGroup serving.knative.dev
e del tipo Service
. Inoltre, devi disporre di uno dei seguenti ruoli:
- Proprietario
- Editor
- Amministratore GKE
- Sviluppatore GKE
Immagini di cui puoi eseguire il deployment
Non sono previsti limiti di dimensioni per l'immagine container di cui puoi eseguire il deployment.
Puoi utilizzare i container di qualsiasi Container Registry, ad esempio Docker Hub. Per informazioni sul deployment di immagini private da registri diversi da Container Registry o Artifact Registry, consulta Deployment di immagini container private da altri registry di container.
Deployment di un nuovo servizio
Puoi specificare un'immagine container con un tag (ad esempio gcr.io/my-project/my-image:latest
) o con un digest esatto (ad esempio gcr.io/my-project/my-image@sha256:41f34ab970ee...
).
Il deployment in un servizio per la prima volta crea la sua prima revisione. Le revisioni sono immutabili. Se esegui il deployment da un tag immagine container, verrà risolto in un digest e la revisione pubblicherà sempre questo digest specifico.
Puoi eseguire il deployment di un container utilizzando la console Google Cloud, Google Cloud CLI o da un file di configurazione YAML.
Fai clic sulla scheda per istruzioni utilizzando lo strumento che preferisci.
Configurazione della località gcloud
predefinita
Se in precedenza hai configurato una località nella configurazione di default
di Google Cloud CLI, i comandi gcloud
utilizzano tali valori per impostazione predefinita, tra cui:
compute/region
compute/zone
run/cluster
run/cluster_location
run/platform
run/region
Esegui il seguente comando gcloud
config per visualizzare le impostazioni per la configurazione default
:
gcloud config configurations describe default
Console
Per eseguire il deployment di un'immagine container:
Vai a Cloud Run for Anthos nella console Google Cloud:
Fai clic su Crea servizio per visualizzare la pagina Crea servizio.
Nel formato:
Seleziona la piattaforma Cloud Run for Anthos in cui stai eseguendo il deployment:
- Cloud Run for Anthos esegue il deployment su un cluster GKE o Anthos su cluster VMware con Cloud Run for Anthos abilitato.
Dal menu a discesa, seleziona uno dei cluster GKE disponibili per il tuo servizio.
Inserisci il nome del servizio desiderato. I nomi dei servizi devono essere univoci per area geografica e progetto o per cluster. Non è possibile modificare il nome di un servizio in un secondo momento.
In Connettività:
- Seleziona Interno se vuoi limitare l'accesso solo ad altri servizi o servizi Cloud Run for Anthos nel tuo cluster che utilizzano Istio.
- Seleziona Esterno per consentire l'accesso esterno al servizio.
Tieni presente che puoi modificare l'opzione di connettività in qualsiasi momento, come descritto in Modificare le impostazioni di connettività dei servizi.
Fai clic su Avanti per passare alla seconda pagina del modulo di creazione del servizio:
Nel formato:
Nella casella di testo URL immagine container, fornisci l'URL di un'immagine da un registro supportato, ad esempio:
gcr.io/myproject/my-image:latest
Per utilizzare Artifact Registry con le tue immagini container private, devi utilizzare il digest immagine. Se vuoi utilizzare il tag immagine delle immagini container private, devi creare e utilizzare un elemento
imagePullSecret
finché il problema noto non viene risolto.Facoltativamente, fai clic su Show Advanced Settings (Mostra impostazioni avanzate) e sulle schede successive da impostare:
Fai clic su Crea per eseguire il deployment dell'immagine in Cloud Run for Anthos e attendere il completamento del deployment.
Hai appena eseguito il deployment di un servizio in un cluster abilitato per Cloud Run for Anthos.
Riga di comando
Per eseguire il deployment di un'immagine container:
Esegui il comando
gcloud run deploy
:gcloud run deploy SERVICE --image IMAGE_URL
Sostituisci SERVICE con il nome del servizio in cui vuoi eseguire il deployment. Se il servizio specificato non esiste, ne viene creato uno nuovo.
Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio
gcr.io/myproject/my-image:latest
.Per utilizzare Artifact Registry con le immagini container private, devi utilizzare il digest immagine.
Se vuoi utilizzare il tag immagine delle immagini container private, devi creare e utilizzare un elemento
imagePullSecret
finché il problema noto non viene risolto.
Ulteriori opzioni di deployment:
Per eseguire il deployment in uno spazio dei nomi diverso da default, devi specificare lo spazio dei nomi utilizzando il parametro
--namespace
.Per eseguire il deployment in una località diversa dalla configurazione predefinita, devi specificare
name
elocation
del cluster con i parametri--cluster
e--cluster-location
:gcloud run deploy SERVICE --cluster CLUSTER-NAME --cluster-location CLUSTER-LOCATION
Puoi impostare le opzioni di connettività con il flag
--connectivity
, come descritto in Modificare le impostazioni di connettività dei servizi per specificare l'accesso interno o esterno.Per Cloud Run for Anthos su VMware, devi includere il parametro
--kubeconfig
e specificare il file di configurazione:gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Attendi il completamento del deployment. Al completamento, viene visualizzato un messaggio di operazione riuscita e l'URL del servizio di cui è stato eseguito il deployment.
YAML
Puoi archiviare le specifiche del servizio in un file YAML
, quindi eseguirne il deployment utilizzando Google Cloud CLI.
Crea un nuovo file
service.yaml
con questi contenuti:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE
Sostituisci
- SERVICE con il nome del tuo servizio Cloud Run for Anthos
- IMAGE con l'URL dell'immagine container. Per utilizzare Artifact Registry con le tue immagini container private, devi utilizzare il digest immagine.
Se vuoi utilizzare il tag immagine delle immagini container private, devi creare e utilizzare un elemento
imagePullSecret
finché il problema noto non viene risolto.
Puoi anche specificare altre configurazioni come variabili di ambiente o limiti di memoria.
Esegui il deployment del nuovo servizio utilizzando questo comando:
gcloud beta run services replace service.yaml
Cloud Code
Per il deployment con Cloud Code, leggi le guide IntelliJ e Visual Studio Code.
Deployment di una nuova revisione di un servizio esistente
Puoi eseguire il deployment di una nuova revisione utilizzando la console Google Cloud, la riga di comando gcloud
o un file di configurazione YAML.
Tieni presente che la modifica delle impostazioni di configurazione comporta la creazione di una nuova revisione, anche se l'immagine container non viene modificata. Ogni revisione creata è immutabile.
Fai clic sulla scheda per istruzioni utilizzando lo strumento che preferisci.
Console
Per eseguire il deployment di una nuova revisione di un servizio esistente:
Vai a Cloud Run for Anthos nella console Google Cloud:
Individua il servizio che vuoi aggiornare nell'elenco dei servizi e fai clic sul servizio per aprire i dettagli del servizio.
Fai clic su MODIFICA E DEPLOYMENT NUOVA REVISIONE. Viene visualizzato il modulo di deployment di revisione:
Se necessario, fornisci l'URL alla nuova immagine container di cui vuoi eseguire il deployment.
In via facoltativa, puoi impostare:
Per inviare tutto il traffico alla nuova revisione, seleziona la casella di controllo Pubblica questa revisione immediatamente. Per implementare gradualmente una nuova revisione, deseleziona la casella di controllo: in questo modo verrà eseguito il deployment dove non verrà inviato traffico alla nuova revisione, segui le istruzioni per le implementazioni graduali dopo il deployment.
Fai clic su ESEGUI IL DEPLOYMENT e attendi il completamento del deployment.
Riga di comando
Per eseguire il deployment di un'immagine container:
Esegui il comando
gcloud run services update
:gcloud run services update SERVICE --image IMAGE_URL
- A ogni revisione viene assegnato automaticamente un suffisso di revisione. Se vuoi specificare un suffisso di revisione personalizzato, aggiungi il parametro --revision-suffix.
Sostituisci SERVICE con il nome del servizio in cui vuoi eseguire il deployment. Se il servizio specificato non esiste, ne viene creato uno nuovo.
Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio
gcr.io/myproject/my-image:latest
.Per utilizzare Artifact Registry con le immagini container private, devi utilizzare il digest immagine.
Se vuoi utilizzare il tag immagine delle immagini container private, devi creare e utilizzare un elemento
imagePullSecret
finché il problema noto non viene risolto.
Ulteriori opzioni di deployment:
Per eseguire il deployment in uno spazio dei nomi diverso da default, devi specificare lo spazio dei nomi utilizzando il parametro
--namespace
.Per eseguire il deployment in una località diversa dalla configurazione predefinita, devi specificare
name
elocation
del cluster con i parametri--cluster
e--cluster-location
:gcloud run deploy SERVICE --cluster CLUSTER-NAME --cluster-location CLUSTER-LOCATION
Puoi impostare le opzioni di connettività con il flag
--connectivity
, come descritto in Modificare le impostazioni di connettività dei servizi per specificare l'accesso interno o esterno.Per Cloud Run for Anthos su VMware, devi includere il parametro
--kubeconfig
e specificare il file di configurazione:gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Attendi il completamento del deployment. Al completamento, viene visualizzato un messaggio di operazione riuscita e l'URL del servizio di cui è stato eseguito il deployment.
YAML
Puoi scaricare la configurazione di un servizio esistente in un file YAML con il comando gcloud run services describe
utilizzando il flag --format=export
.
Puoi quindi modificare il file YAML ed eseguire il deployment di queste modifiche con il comando gcloud beta run services replace
.
Devi assicurarti di modificare solo gli attributi specificati.
Scarica la configurazione del servizio in un file denominato
service.yaml
nell'area di lavoro locale:gcloud run services describe SERVICE --format export > service.yaml
Sostituisci SERVICE con il nome del tuo servizio Cloud Run for Anthos.
Nel tuo file locale, aggiorna le impostazioni di revisione in qualsiasi attributo secondario dell'
spec.template
.Esegui il deployment della nuova revisione:
gcloud beta run services replace service.yaml
Cloud Code
Per eseguire il deployment di una nuova revisione di un servizio esistente con Cloud Code, leggi le guide IntelliJ e Visual Studio Code.
Deployment di immagini da altri progetti Google Cloud
Puoi eseguire il deployment delle immagini container di altri progetti Google Cloud se imposti le autorizzazioni IAM corrette:
Nella console Google Cloud Console, apri il progetto per il tuo servizio Cloud Run for Anthos.
Se esegui il deployment in:
Cloud Run for Anthos, copia l'email dell'account di servizio predefinito di Compute Engine. Ha il suffisso @developer.gserviceaccount.com
Cloud Run for Anthos su VMware, crea un account di servizio Google Cloud e scarica le credenziali. Aggiungi queste credenziali come
imagePullSecrets
predefinito dell'account di servizio Kubernetes.
Apri il progetto proprietario del Container Registry che vuoi utilizzare.
Fai clic su Aggiungi per aggiungere una nuova entità.
Nella casella di testo Nuove entità, incolla l'indirizzo email dell'account di servizio che hai copiato in precedenza.
Nell'elenco a discesa Seleziona un ruolo, seleziona il ruolo Archiviazione -> Visualizzatore oggetti Storage.
Esegui il deployment dell'immagine container nel progetto che contiene il tuo servizio Cloud Run for Anthos.
Deployment di immagini container private da altri registry di container
Questa sezione descrive la configurazione delle autorizzazioni corrette per il deployment delle immagini container da un registro privato arbitrario a Cloud Run for Anthos. Un Container Registry privato richiede le credenziali per accedere all'immagine container. Tieni presente che non è necessario seguire questi passaggi per eseguire il deployment delle immagini container private da Container Registry o Artifact Registry nello stesso progetto del tuo cluster.
Per poter eseguire il deployment di un'immagine container privata, devi creare un
secret di tipo Kubernetes imagePullSecret
e associarlo a un account di servizio:
Crea un secret di
imagePullSecret
denominatocontainer-registry
:kubectl create secret docker-registry container-registry \ --docker-server=DOCKER_REGISTRY_SERVER \ --docker-email=REGISTRY_EMAIL \ --docker-username=REGISTRY_USER \ --docker-password=REGISTRY_PASSWORD
- Sostituisci DOCKER_REGISTRY_SERVER con il tuo nome di dominio completo del registry privato (ad es. https://gcr.io/ per Container Registry o https://hub.docker.com per DockerHub).
- Sostituisci REGISTRY_EMAIL con il tuo indirizzo email.
Sostituisci REGISTRY_USER con il tuo nome utente di Container Registry.
Se utilizzi Container Registry o Artifact Registry e vuoi archiviare ed estrarre le credenziali a lunga durata anziché passare i token di accesso di breve durata, consulta Metodi di autenticazione: file di chiave JSON.
Sostituisci REGISTRY_PASSWORD con la password di Container Registry.
Apri il tuo account di servizio predefinito:
kubectl edit serviceaccount default --namespace default
Ogni spazio dei nomi nel cluster Kubernetes ha un account di servizio predefinito denominato
default
. Questo account di servizio predefinito viene utilizzato per eseguire il pull dell'immagine container, a meno che non sia specificato diversamente quando esegui il deployment del tuo servizio Cloud Run for Anthos.Aggiungi il secret
imagePullSecret
appena creato all'account di servizio predefinito:imagePullSecrets: - name: container-registry
Il tuo account di servizio dovrebbe avere il seguente aspetto:
apiVersion: v1 kind: ServiceAccount metadata: name: default namespace: default ... secrets: - name: default-token-zd84v # The secret we just created: imagePullSecrets: - name: container-registry
Ora, per tutti i nuovi pod creati nello spazio dei nomi default
attuale sarà definito il secret di imagePullSecret
.
Deployment con integrazione automatica sidecar Istio abilitata
Per eseguire il deployment del servizio nello spazio dei nomi con l'iniezione automatica di sidecar Istio abilitata, devi utilizzare un'installazione Istio separata.
Deployment di servizi su una rete interna
Il deployment dei servizi su una rete interna è utile per le aziende che forniscono app interne al proprio personale e per i servizi utilizzati dai client che vengono eseguiti all'esterno del cluster Cloud Run for Anthos.
Per eseguire il deployment dei servizi su una rete interna, consulta Configurazione di una rete interna privata.
Passaggi successivi
Dopo aver eseguito il deployment di un nuovo servizio, puoi:
- Implementazioni graduali, revisioni del rollback, migrazione del traffico
- Visualizza i log del servizio
- Monitorare le prestazioni del servizio
- Impostare i limiti di memoria
- Impostare le variabili di ambiente
- Modificare la contemporaneità dei servizi
- Gestire il servizio
- Gestisci le revisioni dei servizi
Puoi automatizzare le build e i deployment dei tuoi servizi Cloud Run for Anthos utilizzando i trigger di Cloud Build: