In dieser Kurzanleitung werden Grundkenntnisse in Kubernetes vorausgesetzt.
Sie können die Schritte auf dieser Seite ausführen oder diese Kurzanleitung als Google Cloud-Schulungs-Lab ausprobieren.
Hinweise
Führen Sie folgende Schritte aus, um die Kubernetes Engine API zu aktivieren:- Rufen Sie in der Google Cloud Console die Seite Kubernetes Engine auf.
- Erstellen Sie ein Projekt oder wählen Sie eines aus.
- Warten Sie, bis die API und die zugehörigen Dienste aktiviert worden sind. Dieser Vorgang kann einige Minuten dauern.
-
Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.
Kontingentanforderungen
Für diese Kurzanleitung benötigen Sie ein verfügbares Kontingent für:
- 1 Compute Engine-CPU in der Region Ihres Clusters
- 1 IP-Adresse in Verwendung
In der Cloud Console können Sie Ihr verfügbares Kontingent prüfen.
Shell auswählen
Sie können diese Kurzanleitung entweder in Cloud Shell oder in Ihrer lokalen Shell ausführen.
Cloud Shell ist eine Shell-Umgebung für die Verwaltung von Ressourcen, die in Google Cloud gehostet werden. Die gcloud
- und kubectl-Befehlszeilentools sind in Cloud Shell vorinstalliert. Das gcloud
-Tool ist die primäre Befehlszeile für Google Cloud und kubectl
ist die primäre Befehlszeile zum Ausführen von Befehlen für Kubernetes-Cluster.
Wenn Sie lieber Ihre lokale Shell verwenden möchten, müssen Sie die gcloud
- und kubectl
-Tools in Ihrer Umgebung installieren.
Cloud Shell
So starten Sie Cloud Shell:
Öffnen Sie die Google Cloud Console.
Klicken Sie in der oberen rechten Ecke der Console auf die Schaltfläche Cloud Shell aktivieren:
In einem Frame im unteren Teil der Console wird eine Cloud Shell-Sitzung geöffnet.
In dieser Shell führen Sie gcloud
- und kubectl
-Befehle aus.
Lokale Shell
Führen Sie die folgenden Schritte aus, um gcloud
und kubectl
zu installieren:
- Installieren Sie das Cloud SDK. Das
gcloud
-Befehlszeilentool ist dort enthalten. Installieren Sie nach der Installation des Cloud SDK das
kubectl
-Befehlszeilentool mit folgendem Befehl:gcloud components install kubectl
Standardeinstellungen für das gcloud
-Tool konfigurieren
Mit dem gcloud
-Tool können Sie zwei Standardeinstellungen konfigurieren: Ihr Standardprojekt und die Computing-Zone.
Ihr Projekt hat eine Projekt-ID, die dessen eindeutige ID ist. Wenn Sie ein Projekt erstellen, können Sie die automatisch generierte Projekt-ID verwenden oder eine eigene erstellen.
Die Computing-Zone ist ein Standort in der Region, in der sich Ihre Cluster und deren Ressourcen befinden. Beispielsweise ist us-west1-a
eine Zone in der Region us-west
.
Wenn Sie diese Standardeinstellungen konfigurieren, erleichtert dies die Ausführung von gcloud
-Befehlen, da Sie für gcloud
das Projekt und die Computing-Zone angeben müssen, in denen Sie arbeiten möchten. Sie können diese Einstellungen auch angeben oder Standardeinstellungen mit Flags wie --project
, --zone
und --cluster
in Ihren gcloud
-Befehlen überschreiben.
Wenn Sie nach dem Konfigurieren des Standardprojekts und der Computing-Zone GKE-Ressourcen erstellen, werden diese automatisch im konfigurierten Projekt und in der konfigurierten Zone erstellt.
Standardprojekt festlegen
Führen Sie den folgenden Befehl aus und ersetzen Sie dabei project-id
durch Ihre Projekt-ID:
gcloud config set project project-id
Standard-Computing-Zone festlegen
Führen Sie den folgenden Befehl aus und ersetzen Sie dabei compute-zone
durch die Computing-Zone, z. B. us-west1-a
:
gcloud config set compute/zone compute-zone
GKE-Cluster erstellen
Ein Cluster besteht aus mindestens einer Cluster-Steuerungsebene und mehreren Worker-Maschinen, die Knoten genannt werden. Knoten sind Compute Engine-VM-Instanzen, auf denen die erforderlichen Kubernetes-Prozesse ausgeführt werden, um die Knoten zu einem Teil des Clusters zu machen. In diesem Fall stellen Sie Anwendungen für Cluster bereit und die Anwendungen werden auf den Knoten ausgeführt.
Mit dem folgenden Befehl wird ein Cluster mit einem einzelnen Knoten erstellt. Ersetzen Sie cluster-name
durch den Namen Ihres Clusters:
gcloud container clusters create cluster-name --num-nodes=1
Authentifizierungsdaten für den Cluster abrufen
Nach dem Erstellen des Clusters müssen Sie Anmeldedaten für die Authentifizierung abrufen, damit Sie mit dem Cluster interagieren können.
gcloud container clusters get-credentials cluster-name
Mit diesem Befehl wird kubectl
für die Verwendung des von Ihnen erstellten Clusters konfiguriert.
Anwendung für den Cluster bereitstellen
Nachdem Sie einen Cluster erstellt haben, können Sie eine containerisierte Anwendung bereitstellen. Für diese Kurzanleitung können Sie unsere Beispielwebanwendung hello-app
bereitstellen.
GKE verwendet Kubernetes-Objekte, um die Clusterressourcen zu erstellen und zu verwalten. Kubernetes enthält das Deployment-Objekt, mit dem Sie zustandslose Anwendungen wie Webserver bereitstellen können. Mit Dienstobjekten werden Regeln und das Load-Balancing für den Zugriff auf Ihre Anwendung aus dem Internet festgelegt.
Deployment erstellen
Führen Sie den folgenden Befehl aus, um hello-app
im Cluster auszuführen:
kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0
Der Kubernetes-Befehl kubectl create deployment
erstellt ein Deployment namens hello-server
. Der Pod des Deployments führt das Container-Image hello-app
aus.
Dabei gilt:
--image
gibt das bereitzustellende Container-Image an. In diesem Fall ruft der Befehl das Beispiel-Image aus einem Container Registry-Bucket namensgcr.io/google-samples/hello-app
ab.:1.0
gibt die jeweils abzurufende Image-Version an. Wenn Sie keine Version angeben, wird die neueste Version verwendet.
Bereitstellungen verfügbar machen
Nach dem Deployment der Anwendung müssen Sie sie für das Internet freigeben, damit Nutzer darauf zugreifen können. Sie können Ihre Anwendung bereitstellen, indem Sie einen Dienst erstellen, eine Kubernetes-Ressource, die Ihre Anwendung für externen Datenverkehr verfügbar macht.
Führen Sie den folgenden kubectl expose
-Befehl aus, um die Anwendung freizugeben:
kubectl expose deployment hello-server --type LoadBalancer \ --port 80 --target-port 8080
Wenn Sie das Flag --type LoadBalancer
übergeben, wird ein Compute Engine-Load-Balancer für den Container erstellt. Das Flag --port
initialisiert den öffentlichen Port 80 für das Internet und das Flag --target-port
leitet den Traffic zu Port 8080 der Anwendung weiter.
Load-Balancer werden nach den Preisen für Load-Balancing von Compute Engine berechnet.
Anwendungen überprüfen und anzeigen
Sehen Sie sich die ausgeführten Pods mit
kubectl get pods
an:kubectl get pods
Auf dem Cluster müsste ein
hello-server
-Pod ausgeführt werden.Sehen Sie sich den Dienst
hello-server
mitkubectl get service
an:kubectl get service hello-server
Kopieren Sie in der Ausgabe dieses Befehls die externe IP-Adresse aus der Spalte
EXTERNAL-IP
.Rufen Sie die Anwendung in Ihrem Webbrowser auf. Geben Sie dazu die externe IP-Adresse mit dem freigegebenen Port ein:
http://external-ip/
Sie haben gerade eine Container-Webanwendung in GKE bereitgestellt.
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Kurzanleitung verwendeten Ressourcen in Rechnung gestellt werden:
Löschen Sie den Dienst der Anwendung mit
kubectl delete
:kubectl delete service hello-server
Dieser Befehl löscht den Compute Engine-Load-Balancer, den Sie beim Freigeben des Deployments erstellt haben.
Löschen Sie den Cluster mit
gcloud container clusters delete
:gcloud container clusters delete cluster-name
Optional: hello-app
-Codeüberprüfung
hello-app
ist eine einfache Webserveranwendung, die aus zwei Dateien besteht: main.go
und einem Dockerfile
.
hello-app
ist als Docker-Container-Image verpackt. Container-Images werden in einer beliebigen Docker-Image-Registry wie Container Registry gespeichert. Wir hosten hello-app
in einem Container Registry-Bucket namens gcr.io/google-samples/hello-app
.
main.go
main.go
ist eine Webserverimplementierung, die in der Programmiersprache Go geschrieben wurde.
Der Server antwortet auf jede HTTP-Anfrage mit der Nachricht "Hello, world!".
Dockerfile
Dockerfile
beschreibt das Image, das Docker erstellen soll, einschließlich aller seiner Ressourcen und Abhängigkeiten. Außerdem ist dort angegeben, welchen Netzwerkport die Anwendung freigeben soll. Weitere Informationen zur Funktionsweise dieser Datei finden Sie in der Docker-Dokumentation unter Dockerfile reference.
Weitere Informationen
- Weitere Informationen zur Erstellung von Clustern
- Weitere Informationen zu Kubernetes
- Lesen Sie die Referenzdokumentation zu
kubectl
. - Informationen, wie Sie eine einfache Webserveranwendung verpacken, hosten und bereitstellen.
- Eine Gästebuch-Anwendung mit Redis und PHP bereitstellen.
- Eine zustandsorientierte WordPress-Anwendung mit nichtflüchtigem Speicher und MySQL bereitstellen.