在您的 Windows 系统上,创建由初始“minikube start”创建的容器后,您可以通过键入“docker ps”查看“minikube 实例”。这是在这个容器中运行的 minikube 'master' 节点。
看起来像这样:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6293ca0ba5b0 gcr.io/k8s-minikube/kicbase:v0.0.25 "/usr/local/bin/entr…" 2 hours ago Up About an hour 127.0.0.1:59539->22/tcp, 127.0.0.1:59540->2376/tcp, 127.0.0.1:59537->5000/tcp, 127.0.0.1:59538->8443/tcp, 127.0.0.1:59536->32443/tcp minikube
在 PORTS 列中,您将看到通过 minikube 启动 docker 容器的方式转发的端口。您可以看到这些类型的转发由 docker 处理,与您可能执行“docker run -p port:port”的任何包含相同
请注意,此列表中的第一个转发端口是 ssh 端口:“127.0.0.1:59539->22/tcp”。
当您执行“minikube 隧道”时,如果您在列设置中启用命令行显示,minikube 将打开您可以在 Windows 任务管理器中看到的 ssh.exe 实例。
那些“隧道”看起来像这样:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -N docker@127.0.0.1 -p 59539 -i C:\Users\steve.sims\.minikube\machines\minikube\id_rsa "-L 8080:10.102.174.166:8080"
如果我将该命令拆开并仅从命令提示符运行:
ssh docker@127.0.0.1 -p 59539 -i C:\users\steve.sims\.minikube\machines\minikube\id_rsa
然后我在 minikube VM(或节点)中获得一个交互式远程窗口。输入 'ifconfig eth0' 我得到:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.49.2 netmask 255.255.255.0 broadcast 192.168.49.255
所以,确实我的 minikube ip 是 192.168.49.2,但它是上面提到的人的内部地址。
除此之外,ssh 上的 -N 参数表示“无命令”,最后的 -L 是 port-to-forward:destination-socket 格式的端口转发标志。当然,所有的隧道都经过了最初的 docker -p port:port forward minikube 在容器启动时建立的端口。
如果有用,您可以通过脚本从该行的格式创建自己的 ssh 实例,它们也可以正常工作。