In questa pagina viene descritto come eseguire il deployment di nuovi servizi e di nuove revisioni Knative serving.
Prima di iniziare
Per utilizzare Google Cloud CLI, devi prima l'impostazione e la configurazione degli strumenti a riga di comando.
Connessione ai cluster GKE
Prima di poter eseguire il deployment dei servizi in Knative serving, devi accedere a connettiti al tuo cluster GKE.
Per ulteriori informazioni sulla connessione ai cluster GKE, inclusi per altre opzioni, consulta:
Autorizzazioni necessarie per il deployment
Devi disporre delle autorizzazioni per creare, aggiornare ed eliminare
apiGroup serving.knative.dev
e kind Service
. Inoltre, devi avere
UNO dei seguenti ruoli Identity and Access Management:
Immagini di cui puoi eseguire il deployment
Non esiste un limite di dimensioni che si applica all'immagine container di cui puoi eseguire il deployment.
Puoi utilizzare i container di qualsiasi Container Registry, Docker Hub. Per informazioni su eseguendo il deployment di immagini private da registri diversi da Container Registry Artifact Registry, consulta Deployment di immagini container private da altri registri di container.
Deployment di un nuovo servizio
Puoi specificare un'immagine container con un tag
(ad es. gcr.io/my-project/my-image:latest
) o con un digest esatto
(ad es. gcr.io/my-project/my-image@sha256:41f34ab970ee...
).
Eseguendo il deployment in un servizio per la prima volta viene creata la prima revisione. Tieni presente che sono immutabili. Se esegui il deployment dal tag di un'immagine container, risolti in un digest e la revisione gestirà sempre questo particolare digest.
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 visualizzare le istruzioni utilizzando lo strumento di tua scelta.
Configurazione della località gcloud
predefinita
Se in precedenza hai configurato una località nel
Configurazione default
di Google Cloud CLI, i comandi gcloud
utilizzano questi valori per impostazione predefinita, tra cui:
compute/region
compute/zone
run/cluster
run/cluster_location
run/platform
run/region
Esegui questo comando
Comando gcloud
config
per visualizzare le impostazioni per la configurazione di default
:
gcloud config configurations describe default
Console
Per eseguire il deployment di un'immagine container:
Vai a Knative serving nella console Google Cloud:
Fai clic su Crea servizio per visualizzare la pagina Crea servizio.
Nel modulo:
Dal menu a discesa, seleziona una delle opzioni disponibili GKE per il tuo servizio.
Inserisci il nome del servizio che ti interessa. I nomi dei servizi devono essere univoci regione e progetto o per cluster. Impossibile 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 Knative serving nel tuo cluster che utilizzano Istio.
- Seleziona Esterno per consentire l'accesso esterno al tuo servizio.
Tieni presente che puoi modificare l'opzione di connettività in qualsiasi momento, descritto in Modifica delle impostazioni di connettività ai servizi.
Fai clic su Avanti per passare alla seconda pagina della creazione del servizio. in un modulo di testo.
Nel modulo:
Nella casella di testo Container image URL, fornisci l'URL di un'immagine. da un registro supportato, ad esempio:
us-docker.pkg.dev/cloudrun/container/hello:latest
Se vuoi, fai clic su Mostra impostazioni avanzate e schede da impostare:
Fai clic su Crea per eseguire il deployment dell'immagine in Knative serving e attendi. per completare il deployment.
Hai appena eseguito il deployment di un servizio in un cluster abilitato per Knative serving.
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 a cui vuoi indirizzare deployment. Se il servizio specificato non esiste, ne viene creato uno nuovo.
Sostituisci IMAGE_URL con un riferimento all'immagine container, per ad esempio
gcr.io/cloudrun/hello
.Ulteriori opzioni di deployment:
Per eseguire il deployment in uno spazio dei nomi diverso da default, devi specificare tale spazio dei nomi utilizzando
--namespace
.Per eseguire il deployment in una località diversa da configurazione predefinita, devi specificare
name
elocation
del cluster con 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 descritti in Modifica delle impostazioni di connettività dei servizi per specificare l'accesso interno o esterno.Per Knative serving su VMware, devi includere
--kubeconfig
. e specifica il file di configurazione:gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Attendi il completamento del deployment. Una volta completato, un successo insieme all'URL del servizio di cui è stato eseguito il deployment.
YAML
Puoi archiviare la specifica del servizio in un file YAML
e poi
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 Knative serving
- IMAGE con l'URL dell'immagine container.
Puoi anche specificare ulteriori configurazioni, ad esempio variabili di ambiente o limiti di memoria.
Esegui il deployment del nuovo servizio utilizzando il comando seguente:
gcloud run services replace service.yaml
Deployment di una nuova revisione di un servizio esistente
Puoi eseguire il deployment di una nuova revisione utilizzando la console Google Cloud, gcloud
o un file di configurazione YAML.
Tieni presente che la modifica di qualsiasi impostazione di configurazione comporta la creazione di un nuovo anche se l'immagine container non viene modificata. Ogni revisione creato è immutabile.
Fai clic sulla scheda per visualizzare le istruzioni utilizzando lo strumento di tua scelta.
Console
Per eseguire il deployment di una nuova revisione di un servizio esistente:
Vai a Knative serving nella console Google Cloud:
Individua il servizio che desideri aggiornare nell'elenco dei servizi e fai clic su per aprire i dettagli del servizio.
Fai clic su MODIFICA e ESEGUI IL DEPLOYMENT DI NUOVA REVISIONE. Viene visualizzato il deployment delle revisioni modulo:
Se necessario, fornisci l'URL alla nuova immagine container di cui vuoi eseguire il deployment.
Se vuoi, puoi impostare:
Per inviare tutto il traffico alla nuova revisione, seleziona la casella di controllo con l'etichetta Pubblica questa revisione immediatamente. Per implementare gradualmente una nuova revisione, deseleziona questa casella di controllo: si tradurrà un deployment in cui non c'è traffico viene inviato alla nuova revisione, segui le istruzioni per 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 specifica il tuo suffisso di revisione, aggiungi --revision-suffix .
Sostituisci SERVICE con il nome del servizio a cui vuoi indirizzare deployment. Se il servizio specificato non esiste, ne viene creato uno nuovo.
Sostituisci IMAGE_URL con un riferimento all'immagine container, per ad esempio
gcr.io/cloudrun/hello
.Ulteriori opzioni di deployment:
Per eseguire il deployment in uno spazio dei nomi diverso da default, devi specificare tale spazio dei nomi utilizzando
--namespace
.Per eseguire il deployment in una località diversa da configurazione predefinita, devi specificare
name
elocation
del cluster con 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 descritti in Modifica delle impostazioni di connettività dei servizi per specificare l'accesso interno o esterno.Per Knative serving su VMware, devi includere
--kubeconfig
. e specifica il file di configurazione:gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Attendi il completamento del deployment. Una volta completato, un successo insieme all'URL del servizio di cui è stato eseguito il deployment.
YAML
Puoi scaricare la configurazione di un servizio esistente in un
YAML con il comando gcloud run services describe
utilizzando
--format=export
.
Puoi quindi modificare il file YAML ed eseguire il deployment
queste modifiche con il comando gcloud run services replace
.
Assicurarsi di modificare solo gli attributi specificati.
Scarica la configurazione del tuo 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 Knative serving.
Nel file locale, aggiorna il valore impostazioni di revisione in qualsiasi bambino di
spec.template
.Esegui il deployment della nuova revisione:
gcloud run services replace service.yaml
Deployment di immagini da altri progetti Google Cloud
Puoi eseguire il deployment di immagini container da altri progetti Google Cloud imposta le autorizzazioni IAM corrette:
Nella console della console Google Cloud, apri il progetto per servizio Knative serving.
Ottieni i dati dell'account di servizio:
Per i cluster su Google Cloud, copia l'email dell'account di servizio predefinito di Compute Engine. Ha il suffisso @developer.gserviceaccount.com
Per gli altri cluster, crea un account di servizio Google Cloud e scarica le credenziali. Aggiungi queste credenziali come default
imagePullSecrets
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'email dell'account di servizio che hai copiato in precedenza.
Nell'elenco a discesa Seleziona un ruolo, seleziona il ruolo da leggere dal registry:
- Artifact Registry, tra cui Repository gcr.io in Artifact Registry: Artifact Registry -> Lettore Artifact Registry
- Container Registry: Spazio di archiviazione -> Visualizzatore oggetti Storage
Esegui il deployment dell'immagine container nel progetto che contiene il tuo servizio Knative serving.
Per maggiore sicurezza, puoi limitare la concessione dell'accesso:
- Artifact Registry: concedi il ruolo nella repository che archivia le immagini container.
- Container Registry: concedi il ruolo nell'istanza Bucket Cloud Storage che per archiviare le immagini container.
Deployment di immagini container private da altri registri di container
Questa sezione descrive la configurazione delle autorizzazioni corrette per il deployment delle immagini container da un registro privato arbitrario a Knative serving. Un Container Registry privato richiede le credenziali per accedere all'immagine container. Tieni presente che non è necessario seguire questi passaggi per eseguire il deployment di un container privato da Container Registry (deprecato) o Artifact Registry in nello stesso progetto del cluster.
Per poter eseguire il deployment di un'immagine container privata, devi creare un'immagine container
imagePullSecret
digita un secret Kubernetes e associalo a un account di servizio:
Crea un secret
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 privato FQDN del registry (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 Container Registry nome utente.
Se utilizzi Container Registry o Artifact Registry e vuoi archiviare ed eseguire il pull le credenziali a lunga durata anziché passare token di accesso di breve durata, consulta Metodi di autenticazione: file di chiave JSON.
Sostituisci REGISTRY_PASSWORD con il tuo Container Registry password.
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 altrimenti specificato quando distribuire il servizio Knative serving.Aggiungi il secret
imagePullSecret
appena creato al 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, tutti i nuovi pod creati nell'attuale spazio dei nomi default
avranno
imagePullSecret
secret definito.
Deployment con l'inserimento automatico di file collaterali abilitato
Per eseguire il deployment del tuo servizio con l'inserimento di sidecar Istio abilitato, consulta inserimento automatico collaterale abilitato nella documentazione di Cloud Service Mesh.
Deployment di servizi su una rete interna
Per eseguire il deployment dei servizi su una rete interna, devi configurare una rete interna privata.
Passaggi successivi
Dopo aver eseguito il deployment di un nuovo servizio, puoi:
- Implementazioni graduali, revisioni di rollback, migrazione del traffico
- Visualizza i log di servizio
- Monitorare le prestazioni dei servizi
- Configura i tuoi servizi. Ad esempio: Impostare limiti di memoria, impostare variabili di ambiente o modificare la contemporaneità.
- Gestisci:
Puoi automatizzare le build e i deployment di Knative serving con i trigger di Cloud Build: