Wie man einen Kubernetes Cluster mit Minicube unter Debian 11 einrichtet
Minikube ist ein kostenloses und quelloffenes Tool, das mit einer Reihe von eingebauten Add-ons ausgestattet ist und dir hilft, einen Kubernetes-Cluster in deinem lokalen System einzurichten. Der Befehl „minicube“ bietet mehrere Unterbefehle, mit denen du den Kubernetes-Cluster über die Befehlszeilenschnittstelle verwalten kannst. Minikube ist plattformübergreifend und unterstützt viele Betriebssysteme, darunter Linux, macOS und Windows. Es kann als VM, Container oder auf Bare Metal eingesetzt werden.
In dieser Anleitung lernst du, wie du Minikube auf Debian 11 installierst.
Voraussetzungen
- Ein frisches Debian 11 ist auf deinem System installiert.
- Ein Root-Passwort ist auf deinem System eingerichtet.
Docker installieren
Bevor du Minikube installierst, muss das Docker-Paket auf deinem Server installiert sein. Wenn es nicht installiert ist, kannst du es mit dem folgenden Befehl installieren.
apt install docker.io -y
Nach der Installation von Docker kannst du die Docker-Version mit dem folgenden Befehl überprüfen.
docker --version
Du solltest die folgende Ausgabe sehen.
Docker version 20.10.5+dfsg1, build 55c4c88
Kubectl installieren
Kubectl ist ein Tool zur Bereitstellung und Verwaltung von Anwendungen in Kubernetes. Standardmäßig ist Kubectl nicht im Standard-Repository von Debian 11 verfügbar. Daher musst du es mit Snap installieren.
Installiere zunächst das Snap-Paket mit dem folgenden Befehl.
apt install snapd -y
Anschließend erstellst du mit dem folgenden Befehl einen symbolischen Link für das Snap-Paket.
ln -s /var/lib/snapd/snap /snap
Als nächstes fügst du einen Snap-Pfad zu deinem Systemprofil hinzu.
echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | tee -a /etc/profile.d/snap.sh
Starte und aktiviere den Snap-Dienst mit dem folgenden Befehl.
systemctl enable --now snapd.service snapd.socket
Als Nächstes installierst du das Paket kubectl mit dem folgenden Befehl.
snap install kubectl --classic
Als Nächstes erstellst du mit dem folgenden Befehl einen symbolischen Link auf das Paket kubectl.
ln -s /snap/kubectl/current/kubectl /usr/bin/
Überprüfe die kubectl-Version mit dem folgenden Befehl.
kubectl version -o yaml
Du solltest die folgende Ausgabe sehen:
clientVersion: buildDate: "2022-12-09T16:23:44Z" compiler: gc gitCommit: b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d gitTreeState: clean gitVersion: v1.26.0 goVersion: go1.19.4 major: "1" minor: "26" platform: linux/amd64 kustomizeVersion: v4.5.7
Minikube installieren
Standardmäßig ist das Minikube-Paket nicht im Debian-Standard-Repository enthalten. Daher musst du das Minikube-Binary auf dein System herunterladen.
Lade Minikube zunächst mit dem folgenden Befehl herunter.
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -O minikube
Kopiere dann das Minikube-Binary in den Systempfad.
cp minikube /usr/local/bin/
Setze die Ausführungserlaubnis mit dem folgenden Befehl.
chmod +x /usr/local/bin/minikube
Überprüfe nun die Minikube-Version mit dem folgenden Befehl.
minikube version
Du wirst die folgende Ausgabe erhalten.
minikube version: v1.28.0 commit: 986b1ebd987211ed16f8cc10aed7d2c42fc8392f
Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Minikube starten
Jetzt sind alle erforderlichen Pakete installiert. Du kannst Minikube nun mit dem folgenden Befehl starten:
minikube start --force
Dadurch wird das Docker-Image heruntergeladen und der Kubernetes-Cluster wie unten gezeigt konfiguriert:
???? minikube v1.28.0 on Debian 11.6 (kvm/amd64) ? minikube skips various validations when --force is supplied; this may lead to unexpected behavior ? Automatically selected the docker driver. Other choices: none, ssh ???? The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force. ???? If you are running minikube within a VM, consider using --driver=none: ???? https://minikube.sigs.k8s.io/docs/reference/drivers/none/ ???? Using Docker driver with root privileges ???? Starting control plane node minikube in cluster minikube ???? Pulling base image ... ???? Downloading Kubernetes v1.25.3 preload ... > preloaded-images-k8s-v18-v1...: 385.44 MiB / 385.44 MiB 100.00% 37.08 M > gcr.io/k8s-minikube/kicbase: 386.27 MiB / 386.27 MiB 100.00% 27.51 MiB > gcr.io/k8s-minikube/kicbase: 0 B [________________________] ?% ? p/s 10s ???? Creating docker container (CPUs=2, Memory=2200MB) ... ???? Preparing Kubernetes v1.25.3 on Docker 20.10.20 ... ? Generating certificates and keys ... ? Booting up control plane ... ? Configuring RBAC rules ... ???? Verifying Kubernetes components... ? Using image gcr.io/k8s-minikube/storage-provisioner:v5 ???? Enabled addons: default-storageclass, storage-provisioner ???? Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
Du kannst nun den Cluster-Status mit dem folgenden Befehl überprüfen:
kubectl cluster-info
Du solltest die folgende Ausgabe sehen:
Kubernetes control plane is running at https://192.168.49.2:8443 CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Um die laufenden Knoten zu überprüfen, führe den folgenden Befehl aus:
kubectl get nodes
Ausgabe:
NAME STATUS ROLES AGE VERSION minikube Ready control-plane 67s v1.25.3
Du kannst auch mit dem folgenden Befehl auf den Minikube-Container zugreifen:
minikube ssh
Ausgabe:
docker@minikube:~$
Verlasse nun die Container-Shell mit folgendem Befehl:
$exit
Mit dem folgenden Befehl kannst du den Kubernetes-Cluster jederzeit anhalten und löschen:
minikube stop minikube delete
Du kannst den Status von Minikube mit dem folgenden Befehl überprüfen:
minikube status
Ausgabe:
minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured
Sobald du fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Zugang zum Minikube Kubernetes Dashboard
Standardmäßig stellt Minikube ein Web-Dashboard zur Verfügung, das du zur Verwaltung deines Clusters nutzen kannst.
Mit dem folgenden Befehl kannst du alle Minikube-Addons auflisten:
minikube addons list
Du solltest die folgende Ausgabe sehen:
|-----------------------------|----------|--------------|--------------------------------| | ADDON NAME | PROFILE | STATUS | MAINTAINER | |-----------------------------|----------|--------------|--------------------------------| | ambassador | minikube | disabled | 3rd party (Ambassador) | | auto-pause | minikube | disabled | Google | | cloud-spanner | minikube | disabled | Google | | csi-hostpath-driver | minikube | disabled | Kubernetes | | dashboard | minikube | disabled | Kubernetes | | default-storageclass | minikube | enabled ? | Kubernetes | | efk | minikube | disabled | 3rd party (Elastic) | | freshpod | minikube | disabled | Google | | gcp-auth | minikube | disabled | Google | | gvisor | minikube | disabled | Google | | headlamp | minikube | disabled | 3rd party (kinvolk.io) | | helm-tiller | minikube | disabled | 3rd party (Helm) | | inaccel | minikube | disabled | 3rd party (InAccel | | | | | [info@inaccel.com]) | | ingress | minikube | disabled | Kubernetes | | ingress-dns | minikube | disabled | Google | | istio | minikube | disabled | 3rd party (Istio) | | istio-provisioner | minikube | disabled | 3rd party (Istio) | | kong | minikube | disabled | 3rd party (Kong HQ) | | kubevirt | minikube | disabled | 3rd party (KubeVirt) | | logviewer | minikube | disabled | 3rd party (unknown) | | metallb | minikube | disabled | 3rd party (MetalLB) | | metrics-server | minikube | disabled | Kubernetes | | nvidia-driver-installer | minikube | disabled | Google | | nvidia-gpu-device-plugin | minikube | disabled | 3rd party (Nvidia) | | olm | minikube | disabled | 3rd party (Operator Framework) | | pod-security-policy | minikube | disabled | 3rd party (unknown) | | portainer | minikube | disabled | 3rd party (Portainer.io) | | registry | minikube | disabled | Google | | registry-aliases | minikube | disabled | 3rd party (unknown) | | registry-creds | minikube | disabled | 3rd party (UPMC Enterprises) | | storage-provisioner | minikube | enabled ? | Google | | storage-provisioner-gluster | minikube | disabled | 3rd party (Gluster) | | volumesnapshots | minikube | disabled | Kubernetes | |-----------------------------|----------|--------------|--------------------------------|
Als Nächstes kannst du mit dem folgenden Befehl alle Container-Images auflisten, die im Cluster laufen:
kubectl get pods --all-namespaces
Du solltest die folgende Ausgabe sehen:
NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-565d847f94-9ttdq 1/1 Running 0 2m47s kube-system etcd-minikube 1/1 Running 0 3m kube-system kube-apiserver-minikube 1/1 Running 0 3m1s kube-system kube-controller-manager-minikube 1/1 Running 0 3m kube-system kube-proxy-mr8sn 1/1 Running 0 2m47s kube-system kube-scheduler-minikube 1/1 Running 0 3m kube-system storage-provisioner 1/1 Running 1 (2m16s ago) 2m59s
Führe nun den folgenden Befehl aus, um die URL des Kubernetes-Dashboards zu erhalten:
minikube dashboard --url
Du solltest die folgende Ausgabe sehen:
???? Enabling dashboard ... ? Using image docker.io/kubernetesui/metrics-scraper:v1.0.8 ? Using image docker.io/kubernetesui/dashboard:v2.7.0 ???? Some dashboard features require the metrics-server addon. To enable all features please run: minikube addons enable metrics-server ???? Verifying dashboard health ... ???? Launching proxy ... ???? Verifying proxy health ... http://127.0.0.1:45627/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
Zu diesem Zeitpunkt ist das Minikube-Dashboard installiert und läuft auf localhost an Port 45627. Du kannst jedoch nur von deinem lokalen Rechner aus darauf zugreifen. Wenn du von einem externen Rechner darauf zugreifen möchtest, führe folgenden Befehl aus.
kubectl proxy --address='0.0.0.0' --disable-filter=true
Öffne nun deinen Webbrowser und gib die URL http://your-server-ip:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ ein. Du wirst auf das Kubernetes-Dashboard weitergeleitet, wie auf der folgenden Seite zu sehen ist:
Glückwunsch! Du hast Minikube erfolgreich auf Debian 11 installiert. Jetzt kannst du deinen Kubernetes-Cluster ganz einfach über deinen Webbrowser verwalten. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.