Utilizza questa guida per eseguire la migrazione dei tuoi carichi di lavoro a Cloud Run. In generale, la migrazione dei tuoi carichi di lavoro richiede il trasferimento di tutte le funzionalità basate su Kubernetes e il redeployment di ciascuno dei tuoi servizi esistenti su Cloud Run.
Vantaggi principali della migrazione a Cloud Run:
Prodotto serverless completamente gestito che implementa la specifica dell'API Knative Serving e rispetta il contratto del container.
L'API Cloud API Admin v1 è progettata per massimizzare la portabilità con Knative Serving.
L'esperienza utente è simile in Cloud Run e Knative Serving:
- Il gruppo di comandi
gcloud run
viene utilizzato in entrambi i prodotti. - Layout e comportamento simili dell'interfaccia utente nella console Google Cloud .
- Il gruppo di comandi
Prima di iniziare
Le seguenti funzionalità di Google Kubernetes Engine non sono supportate in Cloud Run, tra cui:
- Funzionalità di cluster e pod, ad esempio probe di avvio, attività e idoneità e Service Discovery.
- Configurazione:
- ConfigMaps: puoi trasformare le ConfigMap in secret con Secret Manager.
- GPU NVIDIA
Controlli di accesso:
Puoi utilizzare IAM in Cloud Run per ottenere lo stesso controllo sull'accesso alle tue risorse. Valuta anche l'utilizzo dell'identità del servizio.
Considerazioni sulla migrazione
Devi esaminare e comprendere le seguenti differenze tra i prodotti per assicurarti di poter trasferire tutte le dipendenze e i requisiti.
Secret
In Cloud Run, puoi scegliere di montare i secret come variabili di ambiente o volumi, ma i secret con informazioni sensibili devono essere archiviati in Secret Manager.
Differenze importanti tra i secret in Secret Manager e i secret Kubernetes:
Funzionalità | Secret di Secret Manager | Secret Kubernetes |
---|---|---|
Caratteri consentiti nei nomi | [a-zA-Z0-9_-]{1,255} |
[a-z0-9-.]{1,253} |
Controllo delle versioni | I secret sono versionati | Nessun supporto |
Secret Payload | Singolo []byte |
Mappa: <string, string> |
Scopri come utilizzare Secret Manager per creare secret con controllo delle versioni per le chiavi segrete dei tuoi servizi Knative.
Networking
Utilizza le seguenti informazioni per eseguire il porting della configurazione di rete esistente in Cloud Run.
- Endpoint di servizio
- Gli endpoint Kubernetes dei tuoi servizi Knative Serving non sono supportati in Cloud Run. Scopri di più sugli endpoint unici in Cloud Run.
- Mappature di domini
- L'API DomainMapping di Cloud Run è compatibile con Knative Serving. Tuttavia, Cloud Run offre la mappatura dei domini in un sottoinsieme delle posizioni Cloud Run disponibili. Un'alternativa consigliata è utilizzare il bilanciatore del carico HTTP(S) globale per i tuoi domini personalizzati.
- Connettività VPC
- I servizi Cloud Run si trovano al di fuori del tuo VPC. Per comunicare con le risorse all'interno di un VPC, devi utilizzare il connettore di accesso VPC serverless.
- Controlli Ingress
- Se il servizio Knative Serving è configurato per una rete interna privata e utilizza un bilanciatore del carico interno (ILB), puoi configurare il servizio Cloud Run per
Ingress = Internal
. La configurazione dei servizi suinternal
limita l'accesso all'interno del VPC o ad altri servizi Cloud Run. Scopri di più sulla comunicazione tra servizi.
Eseguire la migrazione di un servizio
Per eseguire la migrazione di un servizio, devi esportare il servizio Knative, modificare il file YAML esportato e poi eseguire il deployment del servizio riconfigurato su Cloud Run.
Esporta il servizio Knative Serving in un file YAML locale eseguendo il seguente comando:
gcloud run services describe SERVICE --format export --namespace NAMESPACE --cluster CLUSTER --platform gke > FILENAME.yaml
Sostituisci:
SERVICE
con il nome del tuo servizio Knative serving.NAMESPACE
con lo spazio dei nomi in cui è in esecuzione il tuo servizio.CLUSTER
con il nome del cluster in cui è in esecuzione il servizio.FILENAME
con un nome file univoco a tua scelta.
Modifica il file
FILENAME.yaml
esportato per Cloud Run:- Devi cercare e sostituire lo spazio dei nomi Kubernetes con l'ID del tuo progettoGoogle Cloud . Ad esempio, devi sostituire
namespace:
default
connamespace:
my-unique-id
. - Devi aggiornare tutte le configurazioni per qualsiasi delle funzionalità non supportate.
Devi eliminare uno qualsiasi dei seguenti attributi e i relativi valori:
metadata.annotations.kubectl.kubernetes.io/last-applied-configuration
metadata.managedFields
spec.template.spec.containers.readinessProbes
spec.template.spec.enableServiceLinks
Ad esempio, potresti dover rimuovere la seguente configurazione da sotto gli attributi
spec:
>template:
>spec:
>containers:
:... readinessProbe: successThreshold: 1 tcpSocket: {} ...
- Devi cercare e sostituire lo spazio dei nomi Kubernetes con l'ID del tuo progettoGoogle Cloud . Ad esempio, devi sostituire
Esegui il deployment del file
.yaml
modificato in Cloud Run utilizzando il flag--platform managed
. Scopri di più sul deployment.Tieni presente che puoi utilizzare lo stesso progetto Google Cloud per Cloud Run.
gcloud run services replace FILENAME.yaml --platform managed --region REGION
Sostituisci:
FILENAME
con il nome del file di configurazione esportato che hai creato.REGION
con una posizione Cloud Run supportata. Ad esempio:us-central1
.
Configura l'accesso al servizio Cloud Run:
Per impostazione predefinita, un servizio Cloud Run non è accessibile esternamente. Per esporre pubblicamente il tuo servizio a internet e consentire richieste non autenticate, devi consentire l'accesso pubblico (non autenticato).
Per configurare questo servizio per l'accesso privato solo interno, ad esempio tra i servizi Cloud Run, consulta Autenticazione da servizio a servizio.
Nella console Google Cloud , all'interno della pagina dei servizi, puoi fare clic sul link dell'URL visualizzato per aprire l'endpoint univoco e stabile del servizio di cui è stato eseguito il deployment.
Migrazione del traffico al tuo servizio
Dopo aver testato i servizi appena implementati e quando è tutto pronto per eseguire la migrazione di tutto il traffico di produzione, puoi configurare il dominio personalizzato e aggiornare i record DNS con il registrar. Segui le istruzioni riportate in Mappatura di domini personalizzati.