Wie betreibe ich einen lokalen Kubernetes-Cluster mit Minikube?

Wie betreibe ich einen lokalen Kubernetes-Cluster mit Minikube?

Minikube ist eine minimale Kubernetes-Distribution, die für die Verwendung in der lokalen Entwicklung entwickelt wurde. Es wurde im Rahmen des Kubernetes-Projekts entwickelt und umfasst Implementierungen aller wichtigen Cluster-Funktionen.

Minikube läuft auf Linux-, Mac- und Windows-Hosts. Es kann Container oder eine Umgebung mit virtuellen Maschinen verwenden, um Ihren Cluster und seine Workloads auszuführen. Hier sind alle unterstützten Laufzeiten:

  • Docker
  • Podman
  • KVM
  • Hyper-V
  • Hyperkit
  • Parallelen
  • virtuelle Kiste
  • VMware

Bevor Sie mit diesem Handbuch fortfahren, vergewissern Sie sich, dass Sie eine dieser Technologien installiert haben. Der Minikube-Installationsprozess erkennt automatisch die verfügbaren Laufzeiten und wendet die entsprechende Konfiguration an. Wir zeigen Ihnen, wie Sie die Bereitstellung abschließen und mit der Verwendung von Minikube beginnen.

Installation des Miniwürfels

In diesem Handbuch konzentrieren wir uns auf x86-Linux-Systeme. Wenn Sie Windows, Mac oder eine andere CPU-Plattform verwenden, finden Sie die detailliertesten Einrichtungsinformationen in der Minikube-Dokumentation . Nach der Erstinstallation ist die grundlegende Verwendung von Minikube auf allen unterstützten Systemen identisch.

Linux-Benutzer können zwischen einem direkten Download der Binärdatei oder einem Debian/RPM-Paket wählen. In diesem Beispiel verwenden wir einen binären Download.

$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

$ sudo install minikube-linux-amd64 /usr/local/bin/minikube

Minikube wird nun installiert und ist einsatzbereit.

Starten eines Kubernetes-Clusters

Starten Sie Ihren Minikube-Cluster mit dem minikube startBefehl:

$ minikube start

minikube v1.25.2 auf Ubuntu 20.04

Der Docker-Treiber wurde automatisch ausgewählt. Andere Möglichkeiten: kvm2, ssh

Minikube des Steuerungsebenenknotens im Cluster-Minikube starten

Basisbild ziehen. ..

Downloading Kubernetes v1.23.3 preload. ..

Minikube lädt automatisch die neueste Version von Kubernetes herunter und führt sie aus. Dieser Vorgang kann einige Minuten dauern. Die Befehlsausgabe zeigt den Fortschritt an und zeigt die Aktionen an, die Minikube ausführt. Im obigen Beispiel sehen Sie, dass der Docker-Treiber zum Hosten Ihres Clusters ausgewählt wurde. Sehen Sie in der Minikube -Treiberdokumentation nach, wenn Ihre Containerplattform oder Ihr Virtualisierungsstack nicht automatisch erkannt wird.

Verwenden Ihres Clusters mit Kubectl

Minikube ändert Ihre Umgebung, sodass Sie mithilfe Ihrer vorhandenen Kubectl-Installation eine Verbindung zu Ihrem Cluster herstellen können. Es fügt minikubeIhrer Datei einen Kontext hinzu, der KUBECONFIGauf Ihren Minikube-Cluster abzielt.

minikube kubectlMinikube enthält auch eine gebündelte Version von Kubectl, auf die Sie mit einem Befehl zugreifen können . Dies ist nützlich, wenn Sie Kubectl noch nicht installiert haben oder wenn sich Ihre vorhandene Binärdatei von Ihrer Minikube-Clusterversion unterscheidet.

# Uses the Kubectl version that's bundled with Minikube

$ minikube kubectl get pods

Für den Rest dieses Tutorials zeigen wir einen einfachen kubectlBefehl und gehen davon aus, dass er auf Ihren Minikube-Cluster abzielt. Sie können einen Shell-Alias ​​einrichten, um das Minikube-bezogene Kubectl minikubejedes Mal ohne Präfix zu verwenden:

$ alias kubectl="minikube kubectl"

Jetzt, da Minikube live und Kubectl verfügbar sind, können Sie Ihrem Kubernetes-Cluster Anwendungen hinzufügen:

$ kubectl create deployment nginx --image=nginx:latest

Deployment.apps/nginx erstellt

$ kubectl expose deployment nginx --type=LoadBalancer --port=80

service/nginx exposed

Der Befehl minikube servicestellt die öffentliche URL des Dienstes bereit:

$ minikube service nginx --url

http://192.168.49.2:31599

Fügen Sie die URL in Ihren Webbrowser ein (oder führen Sie den Befehl ohne --urlFlag aus), um Ihren Dienst anzuzeigen.

Zugriff auf die Kubernetes-Systemsteuerung

Minikube stellt das Kubernetes-Dashboard als optionale integrierte Funktion bereit. Führen Sie minikube dashboardden Befehl aus, um die Dashboard-Komponenten zu laden und die Benutzeroberfläche in einem neuen Browser-Tab zu starten.

Sie können das Dashboard verwenden, um Ihre Ressourcen zu verwalten und ihre Aktivitäten zu visualisieren. Lassen Sie minikube dashboardden Befehl im Terminal, während Sie mit dem Bedienfeld interagieren. Wenn Sie fertig sind, beenden Sie den Befehl mit Strg+C.

Aktivieren der Image-Registrierung

Minikube enthält optional eine Image-Registrierung. Auf diese Weise können Sie Container-Images in Minikube speichern und sie für die Bereitstellung in Ihrem Cluster verfügbar machen.

Aktivieren Sie zuerst das Registrierungs-Add-On:

$ minikube addons enable registry

Markieren Sie dann Ihr Image so, dass es auf die Minikube-Registrierung verweist. Die Registrierung überwacht Port 5000 auf der minikube ipvom Befehl bereitgestellten IP-Adresse.

$ docker tag my-image:latest $(minikube ip):5000/my-image:latest

Bevor Sie einreichen können, muss Docker so konfiguriert werden, dass die URL als unsichere Registrierung akzeptiert wird. Fügen Sie es zu einem insecure-registriesFeld in Ihrer /etc/docker/daemon.jsonDatei hinzu, damit Docker den HTTP-Zugriff zulässt.

Ersetzen Sie die IP-Adresse durch die in Ihrem minikube ipBefehl angegebene. Starten Sie Docker mit dem systemctl restart dockerBefehl neu.

Sie können Ihr Image jetzt an die Minikube-Registrierung senden:

$ docker push $(minikube ip):5000/my-image:latest

Bevor die Module in Ihrem Cluster dieses Image verwenden können, muss ein letzter Schritt ausgeführt werden. Die Minikube-Containerlaufzeit muss auch so konfiguriert werden, dass unsicherer Registrierungszugriff zugelassen wird. Sie können dies aktivieren, indem Sie --insecure-registrydas Startup-Flag aktivieren minikube start. Die IP-Adresse sollte relativ zur standardmäßigen Cluster-IP-Adresse Ihrer Minikube-Installation sein. Sie können dies erhalten, indem Sie den Dienst ausführen kubectl get servicesund sich ansehen . Stoppen Sie dann Minikube und starten Sie es mit einem zusätzlichen Flag neu.CLUSTER-IPkubernetes

$ kubectl get service

NAME TYP CLUSTER-IP EXTERNE-IP PORT(S) ALTER

kubernetes ClusterIP 10.96.0.1 <keine> 443/TCP 63m

$ minikube stop

$ minikube start --insecure-registry 10.96.0.1/24

Ändern der Kubernetes-Version

Minikube verwendet standardmäßig die neueste verfügbare Version von Kubernetes. Um zu einer bestimmten Version zu wechseln, aktivieren Sie --kubernetes-versiondas Flag beim Starten des Clusters:

$ minikube start --kubernetes-version=v1.23.0

Sie können mehrere Cluster gleichzeitig mit jeweils unterschiedlichen Versionen von Kubernetes ausführen, indem Sie mehrere separate Profile erstellen. Das Flag --profilewählt das Zielprofil für einen bestimmten Befehl aus.

$ minikube start --profile v1.22 --kubernetes-version=v1.22.0

$ minikube start --profile v1.23 --kubernetes-version=v1.23.0

$ minikube --profile v1.22 kubectl get pods

Verwendung mehrerer Knoten

Minikube unterstützt mehrere virtuelle Knoten. Auf diese Weise können Sie testen, wie Ihre Anwendung über verfügbare Knoten hinweg skaliert wird, ohne neue physische Hardware bereitzustellen.

Dieses Beispiel erstellt einen Cluster mit drei Knoten:

$ minikube start --nodes 3

Sie können überprüfen, ob mehrere Knoten verfügbar sind, indem Sie sie mit Kubectl auflisten:

$ kubectl get nodes

NAME STATUS ROLLEN ALTER VERSION

minikube Ready control-plane,master 71m v1.23.3

minikube-m02 Ready <none> 71m v1.23.3

minikube-m03 Ready <none> 71m v1.23.3

Fernzugriff aktivieren

Minikube akzeptiert standardmäßig keinen eingehenden Datenverkehr. Es ist für den lokalen Gebrauch bestimmt und nicht dafür ausgelegt, externe Anfragen zu bedienen. Sie können den Remotezugriff auf Workloads in Ihrem Cluster weiterhin aktivieren, indem Sie die Überwachungsadresse der Steuerungsebene ändern. Tun Sie dies erst nach einer vollständigen Risikobewertung – Ihr Netzwerk wird für die Außenwelt offen sein.

$ minikube start --listen-address=0.0.0.0

Die Portweiterleitung ist eine sicherere Lösung, wenn Sie den Zugriff auf einen bestimmten Dienst öffnen müssen. Verwenden Sie den Kubectl-Befehl port-forward, um eine Route von einem Host-Port zu einem Ihrer Dienste zu erstellen:

$ kubectl port-forward service/nginx 8080:80

Sie können jetzt besuchen localhost:8080, um auf den zuvor in diesem Tutorial erstellten NGINX-Dienst zuzugreifen. Port 8080 auf Ihrem Host wird Port 80 des Dienstes zugeordnet.

Löschen eines Miniwürfels

Einer der Vorteile von Minikube ist, dass es einfach zu deinstallieren ist. Wenn Sie entscheiden, dass Minikube nichts für Sie ist, führen Sie deleteden Befehl aus, um alles zu entfernen, was es Ihrem System hinzugefügt hat:

$ minikube delete

Eine weniger destruktive Option besteht minikube stopdarin, Ihren Cluster zu stoppen, aber alle Ressourcen unberührt zu lassen. Sie können Ihren Cluster mit dem minikube startBefehl neu starten.

Fazit

Minikube ist eine eigenständige Kubernetes-Distribution, die Container oder Virtualisierung verwendet, um einen Cluster auf Ihrem lokalen Computer auszuführen. Es wird vom vorgelagerten Kubernetes-Projekt verwaltet. Minikube ist eine voll funktionsfähige Implementierung von Kubernetes, die das Kubernetes-Dashboard, Netzwerkunterstützung, dauerhaften Speicher und austauschbare Containerlaufzeiten umfasst.

Weitere Informationen zu Minikube finden Sie in der offiziellen Dokumentation . Alternativ können Sie damit beginnen, vertraute Kubectl-Befehle zu verwenden, um Ihren Cluster zu verwalten und neue Workloads bereitzustellen. Sie haben jetzt eine voll funktionsfähige lokale Kubernetes-Umgebung zum Erstellen und Testen Ihrer Anwendungen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert