Wie exportiere ich Kubernetes-Ports auf einen macOS-Host?

Wie exportiere ich Kubernetes-Ports auf einen macOS-Host?

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.2funktioniert 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.2der 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 curlwie 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 shelldie 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

verwandte Informationen