Eseguire app App Engine su GKE

Questa guida mostra come eseguire un'app per l'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. Non sono necessarie modifiche al codice.

Prima di iniziare

Prima di seguire le istruzioni riportate in questa pagina, svolgi i seguenti passaggi:

  1. Verifica che l'app venga eseguita e di cui venga eseguito il deployment correttamente nell'ambiente flessibile di App Engine.

  2. In queste istruzioni utilizzerai lo stesso progetto utilizzato per la tua app App Engine. Se vuoi, puoi sempre creare e utilizzare un nuovo progetto.

  3. Enable the GKE, Cloud Build APIs.

    Enable the APIs

  4. 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.

  5. Installa lo strumento a riga di comando kubectl:

    gcloud components install kubectl
    
  6. Scarica e installa git.

Creazione di un Dockerfile per l'app App Engine

Crea un Dockerfile per la tua app come descritto in Creare un Dockerfile.

Creazione di un container dal Dockerfile

Per creare un contenitore:

  1. Assicurati di essere nella directory dell'app App Engine che contiene il Dockerfile.

  2. Modifica il progetto predefinito utilizzato dallo strumento gcloud in modo che indichi il progetto che utilizzi per eseguire l'app in GKE:

    gcloud config set project [YOUR-PROJECT-ID]
    

    Sostituisci [YOUR-PROJECT-ID] con l'ID del tuo progetto GKE.

  3. 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.

  4. Attendi la compilazione del contenitore: l'operazione 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 contenitore: dovrai specificarlo quando lo esegui in GKE.

Eseguire l'app in GKE

Per eseguire il contenitore che contiene la tua app:

  1. 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.

  2. Dalla riga di comando, imposta la zona di calcolo:

    gcloud config set compute/zone us-central1-b
    
  3. Assicurati che lo strumento kubectl GKE sia autorizzato:

    gcloud container clusters get-credentials [YOUR-CLUSTER-NAME]
    

    Segui le istruzioni per autorizzare lo strumento.

  4. Esegui il contenitore 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 il deployment, [YOUR-PROJECT-ID] con l'ID del progetto GKE e [YOUR-CONTAINER-NAME] con il nome del contenitore che hai creato per l'app.

  5. 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. Potresti dover attendere alcuni minuti prima che l'IP esterno sia visibile.

  6. Visualizza l'indirizzo IP esterno della tua app:

    kubectl get service [YOUR-DEPLOYMENT-NAME]
    

    Sostituisci [YOUR-DEPLOYMENT-NAME] con il nome utilizzato nei passaggi precedenti. Se il campo EXTERNAL IP è vuoto, attendi un po' di tempo, quindi richiama di nuovo il comando.

  7. Visualizza l'app in esecuzione in GKE:

    http://EXTERNAL-IP:8080
    

    Sostituisci EXTERNAL-IP con l'indirizzo IP esterno ottenuto nel passaggio precedente.

Hai eseguito il deployment e l'esecuzione dell'app App Engine su GKE.

Passaggi successivi

Ti consigliamo di scoprire di più su Kubernetes e sul comando kubectl. Google Kubernetes Engine utilizza Kubernetes per la gestione, il deployment e la scalabilità dei container. 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.