Auf dieser Seite wird erläutert, wie Sie das kubectl
-Befehlszeilentool installieren und konfigurieren.
Diese Seite richtet sich an IT-Administratoren, Betreiber und Entwickler, die Cloud-Infrastrukturen einrichten, überwachen und verwalten oder Cloud-Ressourcen bereitstellen und konfigurieren. Weitere Informationen zu gängigen Rollen und Beispielaufgaben, auf die wir in Google Cloud-Inhalten verweisen, finden Sie unter Häufig verwendete GKE Enterprise-Nutzerrollen und -Aufgaben.
Übersicht
kubectl
ist ein Befehlszeilentool, mit dem Sie mit Ihren GKE-Clustern interagieren können. Wenn Sie kubectl
mit GKE verwenden möchten, müssen Sie das Tool installieren und für die Kommunikation mit Ihren Clustern konfigurieren. Wenn Sie mehrere Cluster in Google Cloud ausführen, ist eine weitere kubectl
-Konfiguration erforderlich.
Auf dieser Seite wird Folgendes beschrieben:
- Funktionsweise von
kubectl
. - Installation von
kubectl
und erforderlichen Abhängigkeiten, sofern vorhanden. - Festlegen des Standardclusters für
kubectl
- Ausführen von
kubectl
-Befehlen für einen bestimmten Cluster
Vorbereitung
Führen Sie die folgenden Schritte durch, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit
gcloud components update
ab.
kubectl
installieren
Sie können kubectl
mithilfe der Google Cloud CLI oder eines externen Paketmanagers wie apt
oder yum
installieren.
gcloud
Installieren Sie die Komponente
kubectl
:gcloud components install kubectl
Prüfen Sie, ob
kubectl
installiert ist. Prüfen Sie dazu, ob die neueste Version vorhanden ist:kubectl version --client
apt
Prüfen Sie, ob das Repository
cloud-sdk
vorhanden ist:grep -rhE ^deb /etc/apt/sources.list* | grep "cloud-sdk"
Die Ausgabe sieht in etwa so aus:
deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main
Wenn das Repository
cloud-sdk
nicht aufgeführt ist, installieren Sie die gcloud CLI.Installieren Sie die Komponente
kubectl
:apt-get update apt-get install -y kubectl
Prüfen Sie, ob
kubectl
installiert ist. Prüfen Sie dazu, ob die neueste Version vorhanden ist:kubectl version --client
yum
Prüfen Sie, ob das Repository
cloud-sdk
vorhanden ist:yum repolist | grep "google-cloud-sdk"
Die Ausgabe sieht etwa so aus:
google-cloud-sdk Google Cloud SDK 2,205
Installieren Sie die Komponente
kubectl
:yum install -y kubectl
Prüfen Sie, ob
kubectl
installiert ist. Prüfen Sie dazu, ob die neueste Version vorhanden ist:kubectl version --client
Erforderliche Plug-ins installieren
kubectl
und andere Kubernetes-Clients benötigen das Authentifizierungs-Plug-in gke-gcloud-auth-plugin
, das das Framework Client-go-Anmeldedaten-Plug-ins verwendet, um Authentifizierungstokens für die Kommunikation mit GKE-Clustern bereitzustellen.
Vor der Veröffentlichung von Kubernetes Version 1.26 erfordert die gcloud CLI die Installation der Binärdatei gke-gcloud-auth-plugin
. Wenn nicht installiert, funktionieren vorhandene Installationen von kubectl
oder anderen benutzerdefinierten Kubernetes-Clients nicht mehr.
Sie müssen dieses Plug-in installieren, um kubectl
und andere Clients für die Interaktion mit GKE verwenden zu können.
Vorhandene Clients zeigen eine Fehlermeldung an, wenn das Plug-in nicht installiert ist.
Bevor Sie beginnen, prüfen Sie, ob das Plug-in bereits installiert ist:
gke-gcloud-auth-plugin --version
Wenn in der Ausgabe Versionsinformationen angezeigt werden, überspringen Sie diesen Abschnitt.
Sie können das Authentifizierungs-Plug-in mit der gcloud CLI oder einem externen Paketmanager wie apt
oder yum
installieren.
gcloud
Installieren Sie die gke-gcloud-auth-plugin
-Binärdatei:
gcloud components install gke-gcloud-auth-plugin
apt
Installieren Sie die gke-gcloud-auth-plugin
-Binärdatei:
apt-get install google-cloud-sdk-gke-gcloud-auth-plugin
yum
Installieren Sie die gke-gcloud-auth-plugin
-Binärdatei:
yum install google-cloud-sdk-gke-gcloud-auth-plugin
Prüfen Sie die Installation der Binärdatei gke-gcloud-auth-plugin
:
Prüfen Sie die Version der Binärdatei
gke-gcloud-auth-plugin
:gke-gcloud-auth-plugin --version
Aktualisieren Sie die
kubectl
-Konfiguration, um das Plug-in zu verwenden:gcloud container clusters get-credentials CLUSTER_NAME \ --region=COMPUTE_REGION
Ersetzen Sie dabei Folgendes:
CLUSTER_NAME
: Der Name Ihres Clusters.COMPUTE_REGION
: die Compute Engine-Region für den Cluster. Verwenden Sie für zonale Cluster--zone=COMPUTE_ZONE
.
Konfiguration prüfen:
kubectl get namespaces
Die entsprechende Ausgabe sieht etwa so aus:
NAME STATUS AGE default Active 51d kube-node-lease Active 51d kube-public Active 51d kube-system Active 51d
Weitere Informationen dazu, warum dieses Plug-in erforderlich ist, finden Sie unter Kubernetes KEP.
Mit kubectl
interagieren
Kubernetes verwendet eine YAML-Datei namens kubeconfig
, um Informationen zur Clusterauthentifizierung für kubectl
zu speichern. Standardmäßig wird die Datei unter $HOME/.kube/config
gespeichert.
kubeconfig
enthält eine Gruppe von Zugriffsparametern, die als Kontexte bezeichnet werden. Jeder Kontext enthält einen Kubernetes-Cluster, einen Nutzer und einen optionalen Standard-Namespace. kubectl
bezieht sich beim Ausführen von Befehlen auf Kontexte.
Mit den folgenden Aufgaben können Sie kubectl
konfigurieren:
- Wählen Sie aus, mit welchem Cluster
kubectl
kommuniziert. - Legen Sie einen Standardcluster für
kubectl
fest, indem Sie den aktuellen Kontext in der Dateikubeconfig
festlegen. - Mit dem Flag
--cluster
können Siekubectl
-Befehle für einen bestimmten Cluster ausführen.
kubeconfig
ansehen
Führen Sie den folgenden Befehl aus, um die kubeconfig
der Umgebung aufzurufen:
kubectl config view
Der Befehl gibt eine Liste aller Cluster zurück, für die Einträge in kubeconfig
generiert wurden. Wenn ein GKE-Cluster aufgeführt ist, können Sie kubectl
-Befehle für diesen Cluster in Ihrer aktuellen Umgebung ausführen. Andernfalls müssen Sie Clusterinformationen für kubectl speichern.
Aktuellen Kontext für kubectl
ansehen
Der aktuelle Kontext ist der Cluster, der derzeit als Standard für kubectl
gilt. Alle kubectl
-Befehle werden über diesen Cluster ausgeführt.
Wenn Sie einen Cluster mit gcloud container clusters create-auto
erstellen, wird der kubeconfig
-Datei in Ihrer Umgebung automatisch ein Eintrag hinzugefügt und der aktuelle Kontext wird auf diesen Cluster umgestellt. Beispiele:
gcloud container clusters create-auto my-cluster
Creating my-cluster...done
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-cluster
Führen Sie den folgenden Befehl aus, um den aktuellen Kontext für kubectl
aufzurufen:
kubectl config current-context
Clusterinformationen für kubectl
speichern
Wenn Sie einen Cluster über die Google Cloud Console oder die gcloud CLI auf einem anderen Computer erstellen, wird die Datei kubeconfig
Ihrer Umgebung nicht aktualisiert.
Ähnlich verhält es sich, wenn ein Mitglied des Projektteams mit der gcloud CLI einen Cluster auf seinem eigenen Computer erstellt. Dann wird die kubeconfig
des Mitglieds aktualisiert, nicht Ihre. Der Eintrag in kubeconfig
enthält entweder:
- Ihre Anmeldedaten, wie in
gcloud auth list
gezeigt, oder - Die Standardanmeldedaten für Anwendungen, falls konfiguriert.
Zum Generieren eines kubeconfig
-Kontexts in Ihrer Umgebung benötigen Sie die Berechtigung container.clusters.get
. Die IAM-Rolle mit den geringsten Berechtigungen, die diese Berechtigung bietet, ist container.clusterViewer
.
Führen Sie den folgenden Befehl aus, um einen kubeconfig
-Kontext für einen bestimmten Cluster zu generieren:
gcloud container clusters get-credentials CLUSTER_NAME \
--region=CLUSTER_REGION
Ersetzen Sie dabei Folgendes:
CLUSTER_NAME
: Der Name Ihres Clusters.COMPUTE_REGION
: die Compute Engine-Region für den Cluster. Verwenden Sie für zonale Cluster--zone=COMPUTE_ZONE
.
kubeconfig
-Eintrag mithilfe der internen IP-Adresse eines privaten Clusters generieren
Alle Cluster haben einen kanonischen Endpunkt. Der Endpunkt stellt den Kubernetes API-Server zur Verfügung, den kubectl
und andere Dienste zur Kommunikation mit der Cluster-Steuerungsebene nutzen.
Private Cluster haben zwei separate Endpunkt-IP-Adressen: privateEndpoint
(eine interne IP-Adresse) und publicEndpoint
(eine externe IP-Adresse).
Das Feld endpoint
bezieht sich auf die externe IP-Adresse, sofern der öffentliche Zugriff auf den Endpunkt nicht deaktiviert ist. In diesem Fall wird die private IP-Adresse verwendet.
Wenn Sie bei privaten Clustern die interne IP-Adresse als Endpunkt verwenden möchten, führen Sie folgenden Befehl aus:
gcloud container clusters get-credentials CLUSTER_NAME --internal-ip
Ersetzen Sie CLUSTER_NAME
durch den Namen Ihres Clusters.
Bei der Ausführung von get-credentials
wird standardmäßig die im Feld endpoint
angegebene IP-Adresse verwendet.
Standardcluster für kubectl
-Befehle festlegen
Wenn Sie bereits einen kubeconfig-Eintrag für einen Cluster generiert haben, können Sie den aktuellen Kontext für kubectl
auf diesen Cluster umstellen. Dazu führen Sie den folgenden Befehl aus:
gcloud container clusters get-credentials CLUSTER_NAME \
--region=COMPUTE_REGION
Ersetzen Sie dabei Folgendes:
CLUSTER_NAME
: Der Name Ihres Clusters.COMPUTE_REGION
: die Compute Engine-Region für den Cluster. Verwenden Sie für zonale Cluster--zone=COMPUTE_ZONE
.
Angenommen Sie haben ein Projekt mit den beiden Clustern my-cluster
und my-new-cluster
. Der aktuelle Kontext lautet my-new-cluster
, Sie möchten aber alle kubectl
-Befehle für my-cluster
ausführen. Führen Sie den folgenden Befehl aus, um den aktuellen Kontext von my-new-cluster
in my-cluster
zu ändern:
gcloud container clusters get-credentials CLUSTER_NAME \
--region=COMPUTE_REGION
Einzelne kubectl
-Befehle für einen bestimmten Cluster ausführen
Mit --cluster=CLUSTER_NAME
können Sie einzelne kubectl
-Befehle für einen bestimmten Cluster ausführen.
Angenommen Sie haben eine Umgebung mit den beiden Clustern my-cluster
und my-new-cluster
, in der der aktuelle Kontext my-cluster
ist. Sie möchten eine Anwendung in my-new-cluster
bereitstellen, den aktuellen Kontext aber nicht ändern. Mit diesem Befehl stellen Sie die Anwendung in my-new-cluster
bereit, ohne den aktuellen Kontext zu ändern:
kubectl run my-app --image us-docker.pkg.dev/my-project/my-repo/my-app:1.0 --cluster my-new-cluster
Nächste Schritte
- Zugriff auf Ressourcen in GKE-Clustern autorisieren
- Authentifizierung bei Google Cloud-Diensten aus GKE-Arbeitslasten.
- Spickzettel zu
kubectl
lesen - Fehlerbehebung für das
kubectl
-Befehlszeilentool.
Überzeugen Sie sich selbst
Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit von GKE in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
GKE kostenlos testen