App Engine-Anwendungen in GKE ausführen

In dieser Anleitung erfahren Sie, wie Sie eine Anwendung der flexiblen App Engine-Umgebung in GKE ausführen. Zum Ausführen Ihrer Anwendung in GKE müssen Sie ein Dockerfile dafür erstellen, dann einen Container mit Cloud Build erstellen und diesen Container in GKE ausführen. Es sind keine Codeänderungen erforderlich.

Vorbereitung

Führen Sie diese Schritte aus, bevor Sie die Anleitung auf dieser Seite befolgen:

  1. Prüfen Sie, ob Ihre Anwendung in der flexiblen App Engine-Umgebung bereitgestellt wird und erfolgreich ausgeführt wird

  2. In dieser Anleitung verwenden Sie dasselbe Projekt, das Sie für Ihre App Engine-Anwendung verwendet haben. Wenn Sie möchten, können Sie jederzeit ein neues Projekt erstellen und verwenden.

  3. GKE, Cloud Build APIs aktivieren.

    Aktivieren Sie die APIs

  4. Laden Sie die Google Cloud-Befehlszeile herunter, installieren Sie sie und initialisieren Sie das gcloud-Tool: Laden Sie das Google Cloud SDK herunter.

    Alternativ können Sie Cloud Shell verwenden. Dies enthält die gcloud-Befehlszeile, git und andere vorinstallierte Features. wie Sprachunterstützung, Tools und Editoren.

  5. Installieren Sie das kubectl-Befehlszeilentool:

    gcloud components install kubectl
    
  6. Laden Sie Git herunter und installieren Sie es

Dockerfile für App Engine-App erstellen

Erstellen Sie ein Dockerfile für Ihre Anwendung, wie unter Dockerfile erstellen beschrieben.

Container aus Dockerfile erstellen

So erstellen Sie einen Container:

  1. Sie müssen sich in dem App Engine-Anwendungsverzeichnis befinden, das das Dockerfile enthält.

  2. Ändern Sie das vom gcloud-Tool verwendete Standardprojekt, sodass es auf das Projekt verweist, mit dem Sie Ihre Anwendung in GKE ausführen:

    gcloud config set project [YOUR-PROJECT-ID]
    

    Ersetzen Sie [YOUR-PROJECT-ID] durch Ihre GKE-Projekt-ID.

  3. Erstellen Sie den Container mit dem folgenden Befehl:

    gcloud builds submit --tag gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME] .
    

    Ersetzen Sie dabei [YOUR-PROJECT-ID] durch die Projekt-ID Ihres GKE-Projekts und [YOUR-CONTAINER-NAME] durch den Namen des Containers, den Sie für Ihren Anwendungscontainer verwenden möchten.

  4. Warten Sie, bis der Container erstellt wurde, was eine Weile dauern kann. Bei erfolgreichem Abschluss wird eine Meldung wie die folgende angezeigt:

    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<
    

    Notieren Sie sich den Containernamen, denn Sie müssen ihn bei der Ausführung in GKE angeben.

Anwendung in GKE ausführen

Führen Sie den Container aus, in dem sich Ihre Anwendung befindet:

  1. Erstellen Sie den Cluster (dies kann einige Minuten dauern):

    gcloud container clusters create [YOUR-CLUSTER-NAME]
    

    Ersetzen Sie [YOUR-CLUSTER-NAME] durch den Namen, den Sie dem Cluster geben möchten.

  2. Legen Sie in der Befehlszeile Ihre Compute-Zone fest:

    gcloud config set compute/zone us-central1-b
    
  3. Prüfen Sie, ob das kubectl-Tool von GKE autorisiert ist:

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

    Folgen Sie den Anweisungen, um das Tool zu autorisieren.

  4. Führen Sie den Container aus, in dem sich Ihre Anwendung befindet:

    kubectl create deployment [YOUR-DEPLOYMENT-NAME] --image=gcr.io/[YOUR-PROJECT-ID]/[YOUR-CONTAINER-NAME]
    

    Ersetzen Sie dabei [YOUR-DEPLOYMENT-NAME] durch den für Ihr Deployment zu verwendenden Namen, [YOUR-PROJECT-ID] durch Ihre GKE-Projekt-ID und [YOUR-CONTAINER-NAME] durch den Namen des Containers, den Sie für Ihre Anwendung erstellt haben.

  5. Geben Sie den Container für den öffentlichen Zugriff frei:

    kubectl expose deployment [YOUR-DEPLOYMENT-NAME] --type="LoadBalancer" --port=8080
    

    Ersetzen Sie dabei [YOUR-DEPLOYMENT-NAME] durch den Namen, den Sie in den vorherigen Schritten verwendet haben. Möglicherweise müssen Sie einige Minuten warten, bis die externe IP-Adresse sichtbar wird.

  6. Sehen Sie sich die externe IP-Adresse für Ihre Anwendung an:

    kubectl get service [YOUR-DEPLOYMENT-NAME]
    

    Ersetzen Sie dabei [YOUR-DEPLOYMENT-NAME] durch den Namen, den Sie in den vorherigen Schritten verwendet haben. Wenn das Feld EXTERNAL IP leer ist, warten Sie eine Weile. Rufen Sie dann den Befehl noch einmal auf.

  7. Sehen Sie sich die in GKE ausgeführte Anwendung an:

    http://EXTERNAL-IP:8080
    

    Ersetzen Sie dabei EXTERNAL-IP durch die externe IP-Adresse, die Sie im vorherigen Schritt ermittelt haben.

Sie haben Ihre App Engine-Anwendung erfolgreich in GKE bereitgestellt und ausgeführt.

Nächste Schritte

Möglicherweise möchten Sie mehr über Kubernetes und den kubectl-Befehl erfahren. Google Kubernetes Engine verwendet Kubernetes zum Verwalten, Bereitstellen und Skalieren von Containern. Weitere Informationen zu Kubernetes stehen auf der externen Kubernetes-Website zur Verfügung.

In dieser Anleitung wird kubectl verwendet, die Befehlszeile zum Verwalten von Kubernetes-Clustern. Weitere Informationen zu kubectl finden Sie in der kubectl-Referenz.