Wie man

Einfache Verwaltung mehrerer Kubernetes-Cluster mit kubectl & kubectx

Einfache Verwaltung mehrerer Kubernetes-Cluster mit kubectl & kubectx

Kubectl ist ein Befehlszeilen-Dienstprogramm zum Steuern und Verwalten von Kubernetes-Clustern und Objekten, auf denen sie ausgeführt werden. Mit Kubectl können Sie verschiedene Kubernetes-Ressourcen wie Deployments, Pods, Services, Kontextwechsel und sogar den Zugriff auf die Container-Shell erstellen, ändern und löschen.

Wir beginnen mit der Installation von kubectl und fahren dann mit den Konfigurationen fort, die erforderlich sind, um bei der Verwaltung von Kubernetes-Clustern über die CLI mit effizienter zu sein kubectl. Beachten Sie, dass Sie über einen funktionierenden Kubernetes-Cluster verfügen sollten, bevor Sie diese Anleitung verwenden. Sehen Sie sich einen unserer Guides unten an.

Bereitstellen von Kubernetes-Produktionsclustern mit RKE

So stellen Sie mit K3s einen leichten Kubernetes-Cluster in 5 Minuten bereit

Bereitstellen eines produktionsbereiten Kubernetes-Clusters mit Ansible und Kubespray

So führen Sie einen lokalen Kubernetes-Cluster in Docker-Containern aus

So richten Sie einen Kubernetes-Cluster mit 3 Knoten unter Ubuntu mit Weave Net CNI ein

Kubectl unter Linux und macOS installieren

Durch die Installation des Kubernetes-Clusters müssen Sie kubectl als Grundvoraussetzung installiert haben. Dies bedeutet jedoch, dass Sie sich bei Ihrem Master-Knoten anmelden müssen, um kubectl-Befehle auszuführen. Sie können kubectl auf Ihrem lokalen Linux- oder macOS-Computer installieren.

kubectl unter Linux installieren

curl -LO https://storage.googleapis.com/kubernetes-release/release/'curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt'/bin/linux/amd64/kubectl chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl

Bestätigen Sie Ihre Installation von kubectl.

$ kubectl-Version Client-Version: version.InfoMajor:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"clean", BuildDate:"2019-11-13T11:23:11Z", GoVersion:"go1.12.12", Compiler:"gc", Plattform:"linux/amd64" Serverversion: version.InfoMajor:"1", Minor:"16", GitVersion:"v1.16.3-k3s.2", GitCommit:"e7e6a3c4e9a7d80b87793612730d10a863a25980", GitTreeState:"clean", BuildDate:"2019-11-18T18:31:23Z", GoVersion:"go1.13.4", Compiler:"gc", Plattform:"linux/amd64"

kubectl auf macOS installieren

Führen Sie für macOS die folgenden Befehle aus.

curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl" chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl kubectl-Version

Kubectl . konfigurieren

Das kubectl Das Tool sucht nach einer Datei namens config imconfig $HOME/.kube Verzeichnis, aber eine separate Datei kann mit . angegeben werden --kubeconfig Möglichkeit. Das kubeconfig files hilft Ihnen, Informationen zu Clustern, Benutzern, Namespaces und Authentifizierungsmechanismen zu organisieren.

$ ls $HOME/.kube/config /home/jmutai/.kube/config

In dieser Konfiguration müssen Sie die folgenden Elemente festlegen:

Für einen einzelnen Cluster sieht Ihre Konfigurationsdatei ähnlich wie unten aus.

Katze .kube / config APIVERSION: v1 Cluster: - Cluster: Zertifikat-Behörde-Daten: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJWakNCL3FBREFnRUNBZ0VBTUFvR0NDcUdTTTQ5QkFNQ01DTXhJVEFmQmdOVkJBTU1HR3N6Y3kxelpYSjIKWlhJdFkyRkFNVFUzTkRNNE16ZzJOVEFlRncweE9URXhNakl3TURVeE1EVmFGdzB5T1RFeE1Ua3dNRFV4TURWYQpNQ014SVRBZkJnTlZCQU1NR0dzemN5MXpaWEoyWlhJdFkyRkFNVFUzTkRNNE16ZzJOVEJaTUJNR0J5cUdTTTQ5CkFnRUdDQ3FHU000OUF3RUhBMElBQkpsb3NSY1FRTHlsL28yeFltQ0l4eHdsZ1F3ZTdlU1dxQmNaRFQ3Q2xJcXoKNnB4R24yb2w3MHM3N3dpcTNaRnkrSW0vdFhHSW16Y3N6MHFNYUpjUy9rV2pJekFoTUE0R0ExVWREd0VCL3dRRQpBd0lDcERBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUVJcjZ6NGRMUUw1Ck8wSUN3ejBWUEdhYUs0bEU3bFU3SmJXTWhoRk9vcDh1QWlBKzZhcG9NMFVtZ1IxYkFBeWNaS0VHL3AzQWRhWmEKMWV3TGxmUkxiWkJwa3c9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg == Server: https: // 127.0.0.1:6443 Name: Standardkontexte: - Kontext: Cluster: Standardbenutzer: Standardname: Standard Aktueller-Kontext: Standardart: Konfigurationseinstellungen:  Benutzer: - Name: Standardbenutzer: Passwort: 76dd75552cb14f3085445277a2091c6c Benutzername: admin

Rufen Sie die Cluster-URL, die CA-Daten und die Benutzeranmeldeinformationen ab und ersetzen Sie sie dann in der Datei.

Kubectl-Konfiguration für mehrere Cluster

Unten finden Sie eine Vorlagenkonfigurationsdatei für vier Kubernetes-Cluster, nämlich:

Jeder Cluster hat einen eindeutigen Namen, zugehörigen Kontext und Benutzer.

apiVersion: v1 Art: Konfigurationseinstellungen:  Cluster: - Cluster: Certificate-Authority-Daten: Server: Name: k8s-dev - Cluster: Certificate-Authority-Daten: Server: Name: k8s-Staging - Cluster: Certificate-Authority -data: server: name: k8s-qa - cluster: Certificate-Authority-data: server: name: k8s-prod contexts: - context: cluster: k8s-dev user: k8s-dev-admin name: k8s-dev - context : Cluster: k8s-staging Benutzer: k8s-staging-admin Name: k8s-staging - Kontext: Cluster: k8s-qa Benutzer: k8s-qa-admin Name: k8s-qa - Kontext: Cluster: k8s-prod Benutzer: k8s- prod-admin Name: k8s-prod Benutzer: - Name: k8s-dev-admin Benutzer: Passwort: Benutzername: - Name: k8s-staging-admin Benutzer: Client-Zertifikatsdaten: Client-Schlüsseldaten: - Name: k8s -qa-admin Benutzer: Kundenzertifikatsdaten: Kundenschlüsseldaten: - Name: k8s-prod-admin Benutzer: Kundenzertifikatsdaten: Kundenschlüsseldaten:

Passen Sie die Vorlage an Ihren Anwendungsfall an und fügen Sie den Inhalt ein $HOME/.kube/config.

Wechseln zwischen Kontexten mit kubectl

Aktuelle Kontexte anzeigen:

$ kubectl config get-contexts AKTUELLER NAME CLUSTER AUTHINFO NAMESPACE * k8s-dev k8s-dev k8s-dev-admin kube-system k8s-staging k8s-staging k8s-staging-admin kube-system k8s-qa k8s-qa k8s-qa- admin kube-system k8s-prod k8s-prod k8s-prod-admin kube-system

Um zu einem anderen Kontext zu wechseln, verwenden Sie:

$ kubectl config use-context k8s-prod Zu Kontext "k8s-prod" gewechselt. $ kubectl config use-context k8s-staging Auf den Kontext "k8s-staging" umgestellt.

Prüfung:

$ kubectl get node NAME STATUS ROLES ALTER VERSION k3s-master01 Ready master 10d v1.16.3-k3s.2 k3s-worker01 Bereit  9d v1.16.3-k3s.2 k3s-worker02 Bereit  9d v1.16.3-k3s.2

Einfacher Kontext- und Namespace-Wechsel mit kubectx und kubens

kubectx hilft Ihnen, zwischen Clustern hin und her zu wechseln und und Kubens hilft Ihnen, reibungslos zwischen Kubernetes-Namespaces zu wechseln:

kubectx und kubens installieren

wget https://raw.githubusercontent.com/ahmetb/kubectx/master/kubectx wget https://raw.githubusercontent.com/ahmetb/kubectx/master/kubens chmod +x kubectx kubens sudo mv kubens kubectx /usr/local/bin

Nutzungsseiten:

$ kubectx --help VERWENDUNG: kubectx : Liste der Kontexte kubectx  : zum Kontext wechseln  kubectx - : zum vorherigen Kontext wechseln kubectx -c, --current : den aktuellen Kontextnamen anzeigen kubectx = : Kontext umbenennen  zu  kubectx =. : Aktuellen Kontext umbenennen in  kubectx -d  [] : Kontext löschen  ('.' für current-context) (dieser Befehl löscht nicht den Benutzer-/Cluster-Eintrag, der vom Kontext verwendet wird) $ kubens --help USAGE: kubens : listet die Namespaces im aktuellen Kontext auf kubens  : den aktiven Namespace des aktuellen Kontexts ändern kubens - : zum vorherigen Namespace in diesem Kontext wechseln kubens -c, --current : den aktuellen Namespace anzeigen kubens -h,--help : diese Nachricht anzeigen 

Beispiele:

# Alle Kontexte abrufen $ kubectx k8s-dev k8s-staging k8s-qa k8s-prod # Zum Prod-Kontext wechseln $ kubectx k8s-prod # Alle Namespaces im k8s-prod-Kontext abrufen $ kubens # Zu einem Namespace wechseln $ kubens 

Sehen Sie sich die folgenden Gifs für eine Demo an:

Ich hoffe, unser Leitfaden war hilfreich auf Ihrem Weg zum Kubernetes-Management mit kubectl und anderen Tools wie kubectx und Kubens.

Kubernetes Mastery Kurse:Zertifizierter Kubernetes Administrator (CKA) mit PraxistestsZertifizierter Kubernetes Administrator (CKA) mit Praxistests$15.68$156.75auf LagerJETZT KAUFENUdemy.comKubernetes Certified Application Developer (CKAD) mit TestsKubernetes Certified Application Developer (CKAD) mit Tests$15.68$156.75auf LagerJETZT KAUFENUdemy.comDevOps lernen: Der komplette Kubernetes-KursDevOps lernen: Der komplette Kubernetes-Kurs$15.68$48.22auf LagerJETZT KAUFENUdemy.com

Weitere Anleitungen:

Einrichten von Kubernetes / OpenShift Dynamic Persistent Volume Provisioning mit GlusterFS und Heketi

So konfigurieren Sie die dynamische Kubernetes-Volume-Bereitstellung mit Heketi und GlusterFS

Installieren und konfigurieren Sie die OpenCart-E-Commerce-Plattform auf Ubuntu 20.04
Für Händler war es noch nie so wichtig, eine Online-Bestellplattform zu haben, als es extrem wichtig wurde, bargeldlos zu werden. Wenn ein Unternehmen...
So installieren Sie MySQL Workbench unter Ubuntu 20.04
Die MySQL Workbench ist eine GUI-Anwendung, die Datenbankadministratoren und Entwicklern die Verwaltung, Entwicklung, Gestaltung, Erstellung und Wartu...
Installieren und konfigurieren Sie die Matomo-Analyseplattform auf CentOS 8
Eine starke Online-Präsenz ist ein Ziel, das die meisten Organisationen, E-Commerce-Sites, Blogs, Politiker und jede davon abhängige Fraktion benötige...