Questa guida mostra come eseguire un'app dell'ambiente flessibile di App Engine su GKE. Per eseguire l'app su GKE, devi creare un Dockerfile, creare un container con Cloud Build e poi eseguire il container in GKE. Non è necessario apportare modifiche al codice.
Prima di iniziare
Prima di seguire le istruzioni riportate in questa pagina:
Verifica che l'app venga eseguita e di cui sia stato eseguito il deployment correttamente nell'ambiente flessibile di App Engine.
In queste istruzioni utilizzerai lo stesso progetto che hai utilizzato per l'app App Engine. Se vuoi, puoi sempre creare e utilizzare un nuovo progetto.
Abilita le API GKE e Cloud Build.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.Scarica e installa Google Cloud CLI, quindi inizializza lo strumento gcloud: Scarica Google Cloud SDK.
In alternativa, puoi utilizzare Cloud Shell, che include gcloud CLI,
git, e altre funzionalità preinstallate, come il supporto linguistico, gli strumenti e gli editor.Installa lo strumento a riga di comando
kubectl:gcloud components install kubectl
Creare un Dockerfile per l'app App Engine
Crea un Dockerfile per l'app come descritto in Creare un Dockerfile.
Creare un container dal Dockerfile
Per creare un container:
Assicurati di trovarti nella directory dell'app App Engine che contiene il Dockerfile.
Modifica il progetto predefinito utilizzato dallo strumento
gcloudin modo che punti al progetto che stai utilizzando per eseguire l'app in GKE:gcloud config set project [YOUR-PROJECT-ID]Sostituisci
[YOUR-PROJECT-ID]con l'ID progetto GKE.Crea il container utilizzando il seguente comando:
gcloud builds submit --tag gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME] .Sostituisci
[YOUR-PROJECT-ID]con l'ID progetto del tuo progetto GKE e[YOUR-CONTAINER-NAME]con il nome del container che vuoi utilizzare per il container dell'app.Attendi la creazione del container. L'operazione potrebbe richiedere del tempo. Al termine, viene visualizzato un messaggio simile al seguente:
Created [https://cloudbuild.googleapis.com/v1/projects/YOUR-PROJECT-ID/builds/xxxxxxx-xxxx-xxx-xxx-xxxxxxxxxxxx]. Logs are permanently available at [https://console.developers.google.com/logs/viewer?resource=build&project=YOUR-PROJECT-ID&filters=text:xxxx-xxx-xxx-xxxxxxxxxxxx]]. ID CREATE_TIME DURATION SOURCE IMAGES STATUS xxxxxxx-xxxx-xxx-xxx-xxxxxxxxxxxx 2017-03-04T00:42:10+00:00 1M32S gs://YOUR-PROJECT-ID_cloudbuild/source/xxxxxxx.08.tgz gcr.io/YOUR-PROJECT-ID/YOUR-CONTAINER-NAME SUCCESS<Prendi nota del nome del container: devi specificarlo quando lo esegui in GKE.
Eseguire l'app in GKE
Per eseguire il container che contiene l'app:
Crea il cluster (l'operazione potrebbe richiedere alcuni minuti):
gcloud container clusters create [YOUR-CLUSTER-NAME]Sostituisci
[YOUR-CLUSTER-NAME]con il nome che vuoi assegnare al cluster.Dalla riga di comando, imposta la zona di computing:
gcloud config set compute/zone us-central1-bAssicurati che lo strumento
kubectldi GKE sia autorizzato:gcloud container clusters get-credentials [YOUR-CLUSTER-NAME]Segui le istruzioni per autorizzare lo strumento.
Esegui il container che contiene l'app:
kubectl create deployment [YOUR-DEPLOYMENT-NAME] --image=gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME]Sostituisci
[YOUR-DEPLOYMENT-NAME]con il nome che vuoi utilizzare per il deployment,[YOUR-PROJECT-ID]con l'ID del progetto GKE e[YOUR-CONTAINER-NAME]con il nome del container che hai creato per l'app.Espone il container per l'accesso pubblico:
kubectl expose deployment [YOUR-DEPLOYMENT-NAME] --type="LoadBalancer" --port=8080Sostituisci
[YOUR-DEPLOYMENT-NAME]con il nome che hai utilizzato nei passaggi precedenti. Potresti dover attendere alcuni minuti prima che l'IP esterno sia visibile.Visualizza l'indirizzo IP esterno per l'app:
kubectl get service [YOUR-DEPLOYMENT-NAME]Sostituisci
[YOUR-DEPLOYMENT-NAME]con il nome che hai utilizzato nei passaggi precedenti. Se il campoEXTERNAL IPè vuoto, attendi qualche minuto, quindi richiama di nuovo il comando.Visualizza l'app in esecuzione in GKE:
http://EXTERNAL-IP:8080Sostituisci
EXTERNAL-IPcon l'indirizzo IP esterno ottenuto nel passaggio precedente.
Hai eseguito il deployment e l'esecuzione dell'app App Engine su GKE.
Passaggi successivi
Potresti voler saperne di più su Kubernetes e sul comando kubectl.
Google Kubernetes Engine utilizza Kubernetes per la gestione, il deployment e la scalabilità dei container. Ulteriori informazioni su Kubernetes sono disponibili sul sito esterno
di Kubernetes.
Questa guida utilizza kubectl, l'interfaccia a riga di comando per la gestione dei cluster Kubernetes. Ulteriori informazioni su kubectl sono disponibili nella
documentazione di riferimento di kubectl.