Auf dieser Seite finden Sie eine Anleitung zum Installieren des kubectl-Befehlszeilentools, mit dem GKE-Cluster (Google Kubernetes Engine) verwaltet und auf sie zugegriffen wird. Die kubectl-Konfiguration ist erforderlich, wenn Sie mehrere Cluster in Google Cloudausführen.
Sie lernen Folgendes:
- Funktionsweise von
kubectl. - Installation von
kubectlund erforderlichen Abhängigkeiten, sofern vorhanden. - Festlegen des Standardclusters für
kubectl - Ausführen von
kubectl-Befehlen für einen bestimmten Cluster
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 in der Google Cloud -Dokumentation verwiesen wird, finden Sie unter Häufig verwendete GKE-Nutzerrollen und ‑Aufgaben.
Machen Sie sich vor dem Lesen dieser Seite mit Kubernetes vertraut.kubectl
Hinweise
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diesen Task 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 dem Befehl
gcloud components updateab. In früheren gcloud CLI-Versionen werden die Befehle in diesem Dokument möglicherweise nicht unterstützt.
- Prüfen Sie, ob Sie einen vorhandenen Autopilot- oder Standardcluster haben. Informationen zum Erstellen eines neuen Clusters finden Sie unter Autopilot-Cluster erstellen.
kubectl installieren
Sie können kubectl mit der Google Cloud CLI oder einem externen Paketmanager wie apt oder yum installieren.
gcloud
Installieren Sie die Komponente
kubectl:gcloud components install kubectlPrüfen Sie, ob
kubectlinstalliert ist. Prüfen Sie dazu, ob die neueste Version vorhanden ist:kubectl version --client
apt
Prüfen Sie, ob das Repository
cloud-sdkvorhanden 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 mainWenn das Repository
cloud-sdknicht aufgeführt ist, installieren Sie die gcloud CLI.Installieren Sie die Komponente
kubectl:apt-get update apt-get install -y kubectlPrüfen Sie, ob
kubectlinstalliert ist. Prüfen Sie dazu, ob die neueste Version vorhanden ist:kubectl version --client
yum
Prüfen Sie, ob das Repository
cloud-sdkvorhanden ist:yum repolist | grep "google-cloud-sdk"Die entsprechende Ausgabe sieht etwa so aus:
google-cloud-sdk Google Cloud SDK 2,205Installieren Sie die Komponente
kubectl:yum install -y kubectlPrüfen Sie, ob
kubectlinstalliert 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 das Plug-in nicht installiert ist, 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-pluginyum
Installieren Sie die gke-gcloud-auth-plugin-Binärdatei:
yum install google-cloud-sdk-gke-gcloud-auth-pluginPrü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 --versionAktualisieren Sie die
kubectl-Konfiguration, um das Plug-in zu verwenden:gcloud container clusters get-credentials CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATIONErsetzen Sie dabei Folgendes:
CLUSTER_NAME: Der Name Ihres Clusters.CONTROL_PLANE_LOCATION: Der Compute Engine-Standort der Steuerungsebene des Clusters. Geben Sie für regionale Cluster eine Region und für zonale Cluster eine Zone an.
Prüfen Sie die Konfiguration mit dem folgenden Befehl:
kubectl get namespacesDie 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 zu diesem Plug-in finden Sie im 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.
Optional können Sie kubectl mit den folgenden Aufgaben konfigurieren:
- Wählen Sie den Cluster aus, mit dem
kubectlkommuniziert. - Legen Sie den Standardcluster für
kubectlfest, indem Sie den aktuellen Kontext in der Dateikubeconfigfestlegen. - Mit dem Flag
--clusterkö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 listgezeigt, 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 \
--location=CONTROL_PLANE_LOCATION
Ersetzen Sie dabei Folgendes:
CLUSTER_NAME: Der Name Ihres Clusters.CONTROL_PLANE_LOCATION: Der Compute Engine-Standort der Steuerungsebene des Clusters. Geben Sie für regionale Cluster eine Region und für zonale Cluster eine Zone an.
kubeconfig-Eintrag mithilfe der internen IP-Adresse eines Clusters generieren
Alle Cluster haben mehrere Endpunktadressen mit unterschiedlichen Eigenschaften. Einer dieser Endpunkte dient als kanonischer Endpunkt, der von kubectl und anderen Diensten zur Kommunikation mit der Steuerungsebene des Clusters verwendet wird.
GKE wählt den Endpunkt automatisch in der folgenden Reihenfolge aus:
- Die externe IP-Adresse (wenn Sie den externen Endpunkt aktiviert haben)
- Die interne IP-Adresse
- Die DNS-Adresse (wenn der IP-Zugriff deaktiviert ist)
Wenn Sie den kanonischen Endpunkt standardmäßig verwenden möchten, führen Sie den Befehl
get-credentialsaus. Wenn Sie genauer festlegen möchten, welchen Endpunktkubectlverwendet, können Sie das Flag--internal-ipoder--dns-endpointverwenden. Führen Sie den folgenden Befehl aus, um die interne IP-Adresse in der Dateikubeconfigzu verwenden:
gcloud container clusters get-credentials CLUSTER_NAME --internal-ip
Führen Sie den folgenden Befehl aus, um die Datei kubeconfig so zu aktualisieren, dass die DNS-Adresse verwendet wird:
gcloud container clusters get-credentials CLUSTER_NAME --dns-endpoint
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 \
--location=CONTROL_PLANE_LOCATION
Ersetzen Sie dabei Folgendes:
CLUSTER_NAME: Der Name Ihres Clusters.CONTROL_PLANE_LOCATION: Der Compute Engine-Standort der Steuerungsebene des Clusters. Geben Sie für regionale Cluster eine Region und für zonale Cluster eine Zone an.
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 \
--location=CONTROL_PLANE_LOCATION
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
- Über GKE-Arbeitslasten bei Google Cloud -Diensten authentifizieren
- Spickzettel zu
kubectllesen - 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