App Engine-Apps in GKE ausführen

In dieser Anleitung erfahren Sie, wie Sie eine Anwendung der flexiblen App Engine-Umgebung in GKE ausführen. Hierzu müssen Sie ein Dockerfile erstellen, mit diesem Dockerfile einen Container einrichten und den 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 erfolgreich bereitgestellt und 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 CLI herunter, installieren Sie sie und initialisieren Sie das gcloud-Tool:
    SDK herunterladen

  5. Laden Sie das kubectl-Tool von Kubernetes herunter und installieren Sie es.

  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 Verzeichnis der App Engine-Anwendung 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

    So 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 erhalten haben.

    Damit haben Sie Ihre App Engine-Java-Anwendung erfolgreich in Kubernetes Engine 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.