Ich möchte einen lokalen Kubernetes-Cluster zum Testen auf macOS einrichten. Ich habe ausgewähltmicrok8sbereitgestellt von Canonical. Kubernetes läuft nicht nativ auf macOS, sondern verwendet eine Linux-VM vonMehrfachdurchgang.
Die Installation verlief reibungslos und die Bereitstellung derKubernetes-Bootcampschien funktioniert zu haben. Dies ist die Ausgabe, die ich bisher erhalten habe:
microk8s kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 5h9m
kubernetes-bootcamp NodePort 10.152.183.226 <none> 8080:31004/TCP 4h10m
multipass list
Name State IPv4 Image
microk8s-vm Running 192.168.64.2 Ubuntu 18.04 LTS
Das Pingen der Instanz ping 192.168.64.2
funktioniert wie erwartet.
Aktualisieren: Ich habe die Konnektivität weiter getestet, indem ich nginx in der VM installiert habe. Die Verwendung curl http://192.168.64.2
der nginx-Startseite in der VM wurde unter macOS angezeigt.
Wenn ich mich jetzt mit in der VM einlogge multipass exec microk8s-vm -- bash
, kann ich curl
wie erwartet mit beiden in meinen bereitgestellten Dienst einloggen:
curl http://127.0.0.1:31004
curl http://10.152.183.226:8080
Erhalten des erwarteten Ergebnisses:
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-57978f5f5d-d977w | v=1
Mir fehlt jedoch der Schritt, um von macOS aus auf diese URL zuzugreifen (sowohl curl als auch ein Browser). Ich habe erfolglos versucht:
curl http://10.152.183.226:8080
curl http://10.152.183.226:31004
curl http://192.168.64.2:8080
curl http://192.168.64.2:31004
Mir fehlt offensichtlich ein Schritt, um die laufenden Dienste vom macOS-Host aus zugänglich zu machen. Was habe ich übersehen? Hilfe ist sehr willkommen!
Antwort1
Diese 192.168.64.2 sieht aus wie ein Host-Only-Netzwerk und ist möglicherweise ein internes Host-Only-Netzwerk. Können Sie 192.168.64.2 vom Mac-Terminal aus anpingen? Multipass verwendet standardmäßig NAT für das Netzwerk und bietet erst ab Multipass 1.6 die Möglichkeit, dies auf Bridged zu ändern. Was derzeit nur die Quelle ist. Ich sehe 1.5, wenn ich eingebe multipass --version
.
Sie können dies ohnehin umgehen, indem Sie den Multipass-Port mit SSH an den Mac-Host weiterleiten. Führen Sie in der Multipass-Shell (AKA, multipass shell
die standardmäßig primär ist) aus . Fügen Sie hinzu , wenn der Befehl „SSH Port Forward“ im Hintergrund ausgeführt werden soll, und fügen Sie hinzu, wenn Sie Verbindungen von anderen Hosts im selben Netzwerk wie Ihr Mac zulassen möchten. Wenn SSH auf Ihrem Mac nicht verfügbar ist, aktivieren Sie den Fernzugriff oder einfach SSH-Anmeldungen (SSH-Server) für Ihren Benutzernamen unter der Freigabesteuerung in den Einstellungen auf Ihrem Mac.ssh -R 8080 -R 31004 [email protected]
-f
-g