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:
Prüfen Sie, ob Ihre Anwendung in der flexiblen App Engine-Umgebung erfolgreich bereitgestellt und ausgeführt wird.
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.
GKE, Cloud Build APIs aktivieren.
Laden Sie die Google Cloud CLI herunter, installieren Sie sie und initialisieren Sie das gcloud-Tool:
SDK herunterladenLaden Sie das
kubectl
-Tool von Kubernetes herunter und installieren Sie es.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:
Sie müssen sich in dem Verzeichnis der App Engine-Anwendung befinden, das das Dockerfile enthält.
Ä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.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.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:
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.Legen Sie in der Befehlszeile Ihre Compute-Zone fest:
gcloud config set compute/zone us-central1-b
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.
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.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.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 FeldEXTERNAL IP
leer ist, warten Sie eine Weile. Rufen Sie dann den Befehl noch einmal auf.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 zukubectl
finden Sie in der kubectl-Referenz.