Questa pagina spiega come eseguire il deployment del codice backend dell'API e di Extensible Service Proxy (ESP) in Google Kubernetes Engine e Compute Engine.
Sebbene i passaggi di deployment varino a seconda della piattaforma che ospita l'API, esiste sempre un passaggio in cui fornisci a ESP il nome del servizio e un'opzione che configura ESP per utilizzare la configurazione del servizio Cloud Endpoints di cui è stato eseguito il deployment più recente. Con queste informazioni, ESP può ottenere la configurazione degli endpoint dell'API, che consente a ESP di eseguire il proxy delle richieste e delle risposte in modo che Cloud Endpoints possa gestire l'API.
Prerequisiti
Per iniziare, questa pagina presuppone che tu abbia:
- Ha creato un Google Cloud progetto.
- Configurato Endpoints.
- Hai eseguito il deployment della configurazione di Endpoints.
Preparazione al deployment
Compute Engine
Affinché Endpoints possa gestire la tua API, devi installare e configurare ESP, nonché il codice del server di backend per la tua API. Devi installare Docker sull'istanza VM di Compute Engine per poter eseguire l'immagine Docker di ESP disponibile gratuitamente in Container Registry.
Prima del deployment:
Prima di poter eseguire il deployment dell'API e di ESP su Compute Engine, completa i seguenti passaggi:
- Crea, configura e avvia l'istanza VM.
- Installa Docker Enterprise Edition (EE) o Docker Community Edition (CE) sull'istanza VM.
- Crea un container Docker per il codice del server di backend.
- Esegui il push del container in Artifact Registry} o in un altro registro.
Assicurati di poter:
- Connettiti all'istanza VM.
- Esegui l'immagine Docker per avviare il server di backend sull'istanza VM. Consulta Riferimento di docker run.
- Invia richieste alla tua API.
GKE
Quando crei un cluster nella console Google Cloud , per impostazione predefinita gli ambiti OAuth concessi alaccount di serviziot del cluster includono gli ambiti richiesti da Endpoints:
- Service Control: Enabled
- Service Management: 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, vedi Che cosa sono gli ambiti di accesso?.
Prima del deployment:
Con l'aggiunta di una piccola sezione al tuo file manifest di deployment, puoi eseguire l'immagine Docker ESP sui tuoi cluster di container insieme alla tua applicazione containerizzata. Prima di poter eseguire il deployment dell'API con ESP in GKE, completa i seguenti passaggi:
Esegui il deployment dell'applicazione containerizzata nei cluster di container. I passaggi generali descritti nella documentazione di GKE sono:
- Pacchettizza l'applicazione in un'immagine Docker.
- Carica l'immagine in un registro.
- Crea un cluster di container.
- Esegui il deployment dell'applicazione nel cluster.
- Esporre l'applicazione a internet.
Assicurati di poter:
- Avvia il server dell'API.
- Invia richieste alla tua API.
Deployment dell'API e di ESP
Compute Engine
Per eseguire il deployment dell'API con ESP in Compute Engine con Docker:
Connettiti all'istanza VM. Sostituisci
INSTANCE_NAMEcon il nome dell'istanza VM:gcloud compute ssh INSTANCE_NAME
Crea la tua rete di container denominata
esp_net:sudo docker network create --driver bridge esp_netEsegui un'istanza dell'immagine del codice del server di backend e connettila 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_NAMEcon il nome del tuo container. - Sostituisci
YOUR_PROJECT_IDcon l'Google Cloud ID progetto che hai utilizzato quando hai eseguito il push dell'immagine. - Sostituisci
YOUR_IMAGEcon il nome dell'immagine.
- Sostituisci
Recupera il nome del servizio della tua API. Questo è il nome che hai specificato nel campo
namedel file YAML di configurazione del servizio.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_NAMEcon il nome del tuo servizio. - Sostituisci
YOUR_API_CONTAINER_NAMEcon il nome del contenitore dell'API.
L'opzione
--rollout_strategy=managedconfigura ESP in modo che utilizzi la configurazione del servizio di cui è stato eseguito il deployment più recente. Quando specifichi questa opzione, fino a 5 minuti dopo il deployment di una nuova configurazione del servizio, ESP rileva la modifica e inizia a utilizzarla automaticamente. Ti consigliamo di specificare questa opzione anziché un ID configurazione specifico da utilizzare per ESP.- Sostituisci
Se devi configurare ESP per utilizzare un ID configurazione specifico:
Includi l'opzione
--versione impostala su un ID configurazione specifico.Rimuovi l'opzione
--rollout_strategy=managedo imposta--rollout_strategysufixed. L'opzionefixedconfigura ESP in modo che utilizzi la configurazione del servizio specificata in--version.Esegui di nuovo il comando
docker run.
Se specifichi sia --rollout_strategy=managed che l'opzione --version,
ESP inizia con la configurazione specificata in
--version, ma poi viene eseguito in modalità gestita e ottiene l'ultima
configurazione.
Ti consigliamo di non mantenere ESP configurato per utilizzare un ID configurazione specifico per troppo tempo, perché se implementi una configurazione del servizio aggiornata, devi riavviare ESP per utilizzare la nuova configurazione.
Per rimuovere l'ID configurazione specifico:
Nei flag ESP per
docker run, rimuovi l'opzione--version.Aggiungi l'opzione
--rollout_strategy=managed.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:
Recupera il nome del servizio della tua API.
Apri il file manifest del deployment (denominato
deployment.yaml) e aggiungi quanto segue alla sezionecontainers: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: 9000Sostituisci
SERVICE_NAMEcon il nome del servizio della tua API.Avvia il servizio Kubernetes utilizzando il comando
kubectl create:kubectl create -f deployment.yaml
Se devi configurare ESP per utilizzare un ID configurazione specifico:
Nel file manifest deployment, aggiungi l'opzione
--versione impostala su un ID configurazione specifico.Rimuovi
--rollout_strategy=managedo imposta--rollout_strategysufixed. L'opzionefixedconfigura ESP in modo che utilizzi la configurazione del servizio specificata in--version.Avvia il servizio Kubernetes:
kubectl create -f deployment.yaml
Se specifichi sia --rollout_strategy=managed sia l'opzione
--version, ESP inizia con la configurazione specificata in
--version, ma poi viene eseguito in modalità gestita e ottiene la
configurazione più recente.
Ti consigliamo di non mantenere ESP configurato per utilizzare un ID configurazione specifico per troppo tempo, perché se implementi una configurazione del servizio aggiornata, devi riavviare ESP per utilizzare la nuova configurazione.
Per rimuovere l'ID configurazione specifico:
Nel file manifest di deployment, rimuovi l'opzione
--version.Aggiungi
--rollout_strategy=managed.Avvia il servizio Kubernetes:
kubectl create -f deployment.yaml
Consulta Opzioni di avvio di ESP per l'elenco completo delle opzioni che puoi specificare all'avvio di ESP.
monitora l'attività dell'API
Dopo aver eseguito il deployment di ESP e del backend API, puoi utilizzare strumenti come
curl o Postman per inviare richieste alla tua API. Se non ricevi una risposta
positiva, consulta la sezione
Risoluzione dei problemi relativi agli errori di risposta.
Dopo aver inviato alcune richieste, puoi:
Per visualizzare i grafici di attività della tua API, vai a Endpoints > Servizi. La visualizzazione dei dati relativi alla richiesta nei grafici può richiedere alcuni minuti.
Esamina i log delle richieste per la tua API nella pagina Cloud Logging.
Passaggi successivi
- Risoluzione dei problemi relativi agli endpoint su Compute Engine
- Risoluzione dei problemi degli endpoint su GKE