Migrazione di un servizio Cloud Run for Anthos a Cloud Run

Utilizza questa guida per eseguire la migrazione dei tuoi carichi di lavoro in Cloud Run. In generale, la migrazione dei carichi di lavoro richiede il trasferimento di qualsiasi funzionalità basata su Kubernetes e il successivo deployment di ciascuno dei servizi esistenti in Cloud Run.

Principali vantaggi della migrazione a Cloud Run:

  • Prodotto serverless completamente gestito che implementa la specifica dell'API Knative Serving e ottempera al contratto del container.

  • L'API API Admin di Cloud Run è progettata per massimizzare la portabilità con Cloud Run for Anthos.

  • L'esperienza utente è simile per Cloud Run e Cloud Run for Anthos:

    • Il gruppo di comandi gcloud run viene utilizzato in entrambi i prodotti.
    • Layout e comportamento dell'interfaccia utente simili nella console Google Cloud.

Prima di iniziare

Le seguenti funzionalità di Google Kubernetes Engine non sono supportate in Cloud Run, tra cui:

Considerazioni sulla migrazione

Devi esaminare e comprendere le seguenti differenze tra i prodotti per assicurarti di poter trasferire tutte le dipendenze e i requisiti.

Oggetti 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 di 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 Viene eseguito il controllo delle versioni dei secret Nessuna assistenza
Payload secret Singolo []byte Mappa: <string, string>

Scopri come utilizzare Secret Manager per creare secret con controllo delle versioni per le chiavi secret dei servizi Cloud Run for Anthos.

Networking

Utilizza le informazioni seguenti per trasferire la configurazione di rete esistente a Cloud Run.

Endpoint di servizio
Gli endpoint di Kubernetes dei tuoi servizi Cloud Run for Anthos non sono supportati in Cloud Run. Scopri di più sugli endpoint univoci in Cloud Run.
Mappature di domini
L'API DomainMapping di Cloud Run è compatibile con Cloud Run for Anthos. Tuttavia, Cloud Run offre la mappatura di dominio in un sottoinsieme delle località Cloud Run disponibili. Un'alternativa consigliata è quella di utilizzare il bilanciatore del carico HTTP(S) globale per i domini personalizzati.
Connettività VPC
I servizi Cloud Run risiedono 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 Cloud Run for Anthos è 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 su internal limita l'accesso all'interno del tuo VPC o di altri servizi Cloud Run. Scopri di più sulla comunicazione Service to Service.

Migrazione di un servizio

Per eseguire la migrazione di un servizio, devi esportare il servizio Cloud Run for Anthos, modificare il file YAML esportato ed eseguire il deployment del servizio riconfigurato in Cloud Run.

  1. Esporta il servizio Cloud Run for Anthos in un file YAML locale eseguendo questo comando:

    gcloud run services describe SERVICE --format export --namespace NAMESPACE --cluster CLUSTER --platform gke > FILENAME.yaml
    

    Sostituisci:

    • SERVICE con il nome del tuo servizio Cloud Run for Anthos.
    • NAMESPACE con lo spazio dei nomi in cui è in esecuzione il servizio.
    • CLUSTER con il nome del cluster in cui è in esecuzione il servizio.
    • FILENAME con un nome file univoco a tua scelta.
  2. Modifica il file FILENAME.yaml esportato per Cloud Run:

    • Devi cercare e sostituire lo spazio dei nomi Kubernetes con l'ID del tuo progetto Google Cloud. Ad esempio, devi sostituire namespace:default con namespace:my-unique-id.
    • Devi aggiornare tutte le configurazioni per qualsiasi funzionalità non supportata.
    • Devi eliminare i 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, potrebbe essere necessario rimuovere la seguente configurazione dagli attributi spec: > template: > spec: > containers::

      ...
       readinessProbe:
         successThreshold: 1
         tcpSocket: {}
      ...
      
  3. 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:

  4. Configura l'accesso al tuo servizio Cloud Run:

    • Per impostazione predefinita, un servizio Cloud Run non è accessibile dall'esterno. Per esporre pubblicamente il servizio su internet e consentire le richieste non autenticate, devi consentire l'accesso pubblico (non autenticato).

    • Per configurare questo servizio per l'accesso privato esclusivamente interno, ad esempio tra i servizi Cloud Run, consulta Autenticazione tra servizi.

  5. Nella console Google Cloud, all'interno della pagina dei tuoi servizi, puoi fare clic sul link dell'URL visualizzato per aprire l'endpoint univoco e stabile del servizio di cui hai eseguito il deployment.

    Vai a Cloud Run

Migrazione del traffico al servizio

Dopo che avrai testato i nuovi servizi di cui hai eseguito il deployment e sarai pronto a eseguire la migrazione di tutto il traffico di produzione, puoi configurare il dominio personalizzato e aggiornare i record DNS presso il registrar. Segui le istruzioni riportate in Mappatura di domini personalizzati.