Wie betreibe ich einen lokalen Kubernetes-Cluster mit Minikube?
![Wie betreibe ich einen lokalen Kubernetes-Cluster mit Minikube?](https://de.thefilibusterblog.com/wp-content/uploads/2022/07/minikube-1.webp)
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 start
Befehl:
$ 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 minikube
Ihrer Datei einen Kontext hinzu, der KUBECONFIG
auf Ihren Minikube-Cluster abzielt.
minikube kubectl
Minikube 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 kubectl
Befehl und gehen davon aus, dass er auf Ihren Minikube-Cluster abzielt. Sie können einen Shell-Alias einrichten, um das Minikube-bezogene Kubectl minikube
jedes 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 service
stellt 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 --url
Flag aus), um Ihren Dienst anzuzeigen.
![](https://cdn.thefilibusterblog.com/wp-content/uploads/2022/07/screenshot-from-2022-05-11-16-22-26.webp)
Zugriff auf die Kubernetes-Systemsteuerung
Minikube stellt das Kubernetes-Dashboard als optionale integrierte Funktion bereit. Führen Sie minikube dashboard
den Befehl aus, um die Dashboard-Komponenten zu laden und die Benutzeroberfläche in einem neuen Browser-Tab zu starten.
![](https://cdn.thefilibusterblog.com/wp-content/uploads/2022/07/screenshot-from-2022-05-11-16-20-24.webp)
Sie können das Dashboard verwenden, um Ihre Ressourcen zu verwalten und ihre Aktivitäten zu visualisieren. Lassen Sie minikube dashboard
den 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 ip
vom 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-registries
Feld in Ihrer /etc/docker/daemon.json
Datei hinzu, damit Docker den HTTP-Zugriff zulässt.
Ersetzen Sie die IP-Adresse durch die in Ihrem minikube ip
Befehl angegebene. Starten Sie Docker mit dem systemctl restart docker
Befehl 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-registry
das 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 services
und sich ansehen . Stoppen Sie dann Minikube und starten Sie es mit einem zusätzlichen Flag neu.CLUSTER-IP
kubernetes
$ 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-version
das 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 --profile
wä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 delete
den Befehl aus, um alles zu entfernen, was es Ihrem System hinzugefügt hat:
$ minikube delete
Eine weniger destruktive Option besteht minikube stop
darin, Ihren Cluster zu stoppen, aber alle Ressourcen unberührt zu lassen. Sie können Ihren Cluster mit dem minikube start
Befehl 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