Esegui il deployment del backend dell'API

Questa pagina spiega come eseguire il deployment del codice backend dell'API e dell'Extensible Service Proxy (ESP) in Google Kubernetes Engine e Compute Engine.

Anche se i passaggi di deployment variano a seconda della piattaforma che ospita l'API, c'è sempre un passaggio in cui devi fornire a ESP il nome del servizio e un'opzione che configura ESP affinché utilizzi l'ultima configurazione del servizio Cloud Endpoints di cui è stato eseguito il deployment. Con queste informazioni, ESP può ottenere la configurazione degli endpoint dell'API, che consente alle richieste e alle risposte del proxy ESP in modo che Cloud Endpoints possa gestire l'API.

Prerequisiti

Per iniziare, questa pagina presuppone che tu abbia:

Preparazione per il deployment

Compute Engine

Affinché gli endpoint possano gestire l'API, devi installare e configurare l'ESP, nonché il codice del server di backend per l'API. Devi installare Docker sulla tua istanza VM di Compute Engine in modo da poter eseguire l'immagine Docker ESP disponibile gratuitamente in Container Registry.

Prima del deployment:

Prima di poter eseguire il deployment dell'API e dell'ESP in Compute Engine, completa i seguenti passaggi:

  1. Crea, configura e avvia l'istanza VM.
  2. Installa Docker Enterprise Edition (EE) o Docker Community Edition (CE) sulla tua istanza VM.
  3. Crea un container Docker per il codice del tuo server di backend.
  4. Esegui il push del container in Container Registry o in un altro registro.
  5. Assicurati di riuscire a:

GKE

Quando crei un cluster nella console Google Cloud, per impostazione predefinita, gli ambiti OAuth concessi all'account di servizio del cluster includono gli ambiti richiesti da Endpoints:

  • Service Control: abilitato
  • Gestione servizio: sola lettura

Quando crei un cluster utilizzando il comando gcloud container clusters create o un file di configurazione di terze parti, assicurati di specificare i seguenti ambiti:

  • "https://www.googleapis.com/auth/servicecontrol"
  • "https://www.googleapis.com/auth/service.management.readonly"

Per ulteriori informazioni, consulta Che cosa sono gli ambiti di accesso?.

Prima del deployment:

Con l'aggiunta di una piccola sezione al file manifest di deployment, puoi eseguire l'immagine Docker ESP sui cluster di container, insieme all'applicazione containerizzata. Prima di poter eseguire il deployment dell'API con ESP in GKE, completa questi passaggi:

  1. Esegui il deployment della tua applicazione containerizzata nei cluster di container. I passaggi generali descritti nella documentazione di GKE sono:

    1. pacchettizza la tua applicazione in un'immagine Docker.
    2. Carica l'immagine in un registro.
    3. Creare un cluster di container.
    4. Eseguire il deployment dell'applicazione nel cluster.
    5. Esponi la tua applicazione a internet.
  2. Assicurati di riuscire a:

    • Avvia il server dell'API.
    • Invia richieste alla tua API.

Deployment di API ed ESP

Compute Engine

Per eseguire il deployment dell'API con ESP su Compute Engine con Docker:

  1. Connettiti all'istanza VM. Sostituisci INSTANCE_NAME con il nome della tua istanza VM:

    gcloud compute ssh INSTANCE_NAME
    
  2. Crea la tua rete di container denominata esp_net:

    sudo docker network create --driver bridge esp_net
    
  3. Esegui un'istanza dell'immagine del codice del server di backend e collegala alla rete di container esp_net:

    sudo docker run \
        --detach \
        --name=YOUR_API_CONTAINER_NAME \
        --net=esp_net \
        gcr.io/YOUR_PROJECT_ID/YOUR_IMAGE:1
    
    • Sostituisci YOUR_API_CONTAINER_NAME con il nome del container.
    • Sostituisci YOUR_PROJECT_ID con l'ID del progetto Google Cloud che hai utilizzato quando hai eseguito il push dell'immagine.
    • Sostituisci YOUR_IMAGE con il nome della tua immagine.
  4. Recuperare il nome del servizio dell'API. Questo è il nome specificato nel campo name del file YAML di configurazione del servizio.

  5. Esegui un'istanza dell'immagine Docker ESP:

    sudo docker run \
        --detach \
        --name=esp \
        --publish=80:9000 \
        --net=esp_net \
        gcr.io/endpoints-release/endpoints-runtime:1 \
        --service=SERVICE_NAME \
        --rollout_strategy=managed \
        --http2_port=9000 \
        --backend=grpc://YOUR_API_CONTAINER_NAME:8000
    
    • Sostituisci SERVICE_NAME con il nome del tuo servizio.
    • Sostituisci YOUR_API_CONTAINER_NAME con il nome del container dell'API.

    L'opzione --rollout_strategy=managed configura ESP in modo che utilizzi l'ultima configurazione del servizio di cui è stato eseguito il deployment. Quando specifichi questa opzione, fino a 5 minuti dopo il deployment di una nuova configurazione del servizio, ESP rileva la modifica e inizia automaticamente a utilizzarla. Ti consigliamo di specificare questa opzione anziché un ID di configurazione specifico da utilizzare per ESP.

Se devi configurare ESP per utilizzare un ID di configurazione specifico:

  1. Includi l'opzione --version e impostala su un ID di configurazione specifico.

  2. Rimuovi l'opzione --rollout_strategy=managed o imposta --rollout_strategy su fixed. L'opzione fixed configura ESP in modo che utilizzi la configurazione del servizio specificata in --version.

  3. Esegui di nuovo il comando docker run.

Se specifichi sia l'opzione --rollout_strategy=managed sia l'opzione --version, ESP inizia con la configurazione specificata in --version, poi viene eseguita in modalità gestita e ottiene la configurazione più recente.

Ti consigliamo di non mantenere ESP configurato per utilizzare un ID di configurazione specifico per troppo tempo, perché se esegui il deployment di una configurazione del servizio aggiornata, devi riavviare ESP per utilizzare la nuova configurazione.

Per rimuovere l'ID di configurazione specifico:

  1. Nei flag ESP per docker run, rimuovi l'opzione --version.

  2. Aggiungi l'opzione --rollout_strategy=managed.

  3. Per riavviare ESP, esegui il comando docker run.

Consulta Opzioni di avvio di ESP per l'elenco completo delle opzioni che puoi specificare all'avvio di ESP.

GKE

Per eseguire il deployment di ESP in GKE:

  1. Recupera il nome del servizio della tua API.

  2. Apri il file manifest del deployment (indicato come deployment.yaml) e aggiungi quanto segue alla sezione containers:

          containers:
          - name: esp
            image: gcr.io/endpoints-release/endpoints-runtime:1
            args: [
              "--http2_port=9000",
              "--service=SERVICE_NAME",
              "--rollout_strategy=managed",
              "--backend=grpc://127.0.0.1:8000"
            ]
            ports:
              - containerPort: 9000
    

    Sostituisci SERVICE_NAME con il nome del servizio dell'API.

  3. Avvia il servizio Kubernetes utilizzando il comando kubectl create:

        kubectl create -f deployment.yaml
    

Se devi configurare ESP per utilizzare un ID di configurazione specifico:

  1. Nel file manifest del deployment, aggiungi l'opzione --version e impostala su un ID configurazione specifico.

  2. Rimuovi --rollout_strategy=managed o imposta --rollout_strategy su fixed. L'opzione fixed configura ESP in modo che utilizzi la configurazione del servizio specificata in --version.

  3. Avvia il servizio Kubernetes: kubectl create -f deployment.yaml

Se specifichi sia l'opzione --rollout_strategy=managed sia l'opzione --version, ESP inizia con la configurazione specificata in --version, ma poi viene eseguita in modalità gestita e ottiene la configurazione più recente.

Ti consigliamo di non mantenere ESP configurato per utilizzare uno specifico ID di configurazione per troppo tempo perché se esegui il deployment di una configurazione di servizio aggiornata, devi riavviare ESP per utilizzare la nuova configurazione.

Per rimuovere l'ID di configurazione specifico:

  1. Nel file manifest del deployment, rimuovi l'opzione --version.

  2. Aggiungi --rollout_strategy=managed.

  3. Avvia il servizio Kubernetes: kubectl create -f deployment.yaml

Consulta Opzioni di avvio di ESP per l'elenco completo delle opzioni che puoi specificare quando avvii ESP.

Monitora l'attività dell'API

Dopo aver eseguito il deployment di ESP e del backend dell'API, puoi utilizzare strumenti come curl o Postman per inviare richieste alla tua API. Se non ricevi una risposta corretta, consulta Risoluzione dei problemi relativi agli errori di risposta

Dopo aver inviato alcune richieste, puoi:

Passaggi successivi