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 per essa, creare un container con Cloud Build e poi eseguirlo in GKE. senza dover apportare modifiche al codice.
Prima di iniziare
Prima di seguire le istruzioni riportate in questa pagina, segui questi passaggi:
Verifica che il deployment e l'esecuzione dell'app avvenga correttamente nell'ambiente flessibile di App Engine.
In queste istruzioni utilizzerai lo stesso progetto utilizzato per la tua app App Engine. Se vuoi, puoi sempre creare e utilizzare un nuovo progetto.
Enable the GKE, Cloud Build APIs.
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 supporto linguistico, strumenti ed editor.Installa lo strumento a riga di comando
kubectl
:gcloud components install kubectl
Creazione di un Dockerfile per l'app App Engine
Crea un Dockerfile per la tua app come descritto in Crea un Dockerfile.
crea un container dal Dockerfile
Per creare un contenitore:
Assicurati di essere nella directory dell'app App Engine che contiene il Dockerfile.
Modifica il progetto predefinito utilizzato dallo strumento
gcloud
in 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.Compila il contenitore 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 contenitore da utilizzare per il contenitore dell'app.Attendi la creazione del container: potrebbe richiedere un po' di tempo. Al termine dell'operazione 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.
Esecuzione dell'app in GKE
Per eseguire il contenitore che contiene la tua 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 tua zona di computing:
gcloud config set compute/zone us-central1-b
Assicurati che lo strumento GKE
kubectl
sia autorizzato:gcloud container clusters get-credentials [YOUR-CLUSTER-NAME]
Segui le istruzioni per autorizzare lo strumento.
Esegui il container che contiene la tua 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 sostituisci[YOUR-PROJECT-ID]
con il tuo progetto GKE e sostituisci[YOUR-CONTAINER-NAME]
con il nome del container creato per la tua app.Esponi il contenitore per l'accesso pubblico:
kubectl expose deployment [YOUR-DEPLOYMENT-NAME] --type="LoadBalancer" --port=8080
Sostituisci
[YOUR-DEPLOYMENT-NAME]
con il nome utilizzato nei passaggi precedenti. Tu potrebbe essere necessario attendere diversi minuti prima che l'IP esterno sia visibile.Visualizza l'indirizzo IP esterno della tua app:
kubectl get service [YOUR-DEPLOYMENT-NAME]
Sostituisci
[YOUR-DEPLOYMENT-NAME]
con il nome utilizzato nella precedente passaggi. Se il campoEXTERNAL IP
è vuoto, attendi un po' di tempo, quindi richiama di nuovo il comando.Visualizza l'app in esecuzione in GKE:
http://EXTERNAL-IP:8080
Sostituisci
EXTERNAL-IP
con l'indirizzo IP esterno che hai ottenuto nel passaggio precedente.
Hai eseguito il deployment dell'app App Engine e l'hai eseguita su GKE.
Passaggi successivi
Ti consigliamo di saperne di più su Kubernetes e sul comando kubectl
.
Google Kubernetes Engine usa Kubernetes per la gestione dei container, il deployment
e la scalabilità delle applicazioni. Puoi trovare ulteriori informazioni su Kubernetes sul
sito di Kubernetes.
Questa guida utilizza kubectl
, l'interfaccia a riga di comando per la gestione
del cluster Kubernetes. Puoi trovare ulteriori informazioni su kubectl
nel
documento di riferimento di kubectl.