微服务架构师封神之路10-Macbook无法通过ip访问minikube
原因
minikube网络设置的实现是在虚拟机层面上的。先要查看你的minikube是运行在什么虚拟机上的。一般我们安装minikube的时候只是简单的使用命令,
minikube start
这个命令后面隐藏了很多参数的设置,其中一项是关于虚拟机的,
minikube start --help
......
--driver='': Driver is one of: virtualbox, parallels, vmwarefusion, hyperkit, vmware, docker, ssh (defaults to
auto-detect)
如果你不指定,minikube会自动识别。我的macbook之前只安装了docker desktop,所以很显然我的minikube的虚拟机用的是docker。再去看一下docker文档,关于网络设置的部分,https://docs.docker.com/docker-for-mac/networking/。也说得很清楚了,目前mac上的docker网络设置有一些限制,不能通过ip去直连docker container。 理解了以上部分,解决方案也不难了。minikube的网络设置直接依赖于虚拟机;docker在mac上的实现还不能做到从本地用ip直接连接container,所以你需要做的就是换一个能满足你网络设置需求的虚拟机软件,virtualbox是个不错的选择,当然你可以使用你自己熟悉的其它虚拟机软件。
使用virtualbox做minikube的虚拟机实现
安装minikube前,先安装virtualbox。安装顺序,
但是因为我是做开发使用,需要在本地build docker image,所以还要额外安装docker desktop。 安装minikube的时候,可以显示的指定使用virtualbox,以防万一,毕竟你在环境中也安装了docker,
minikube start --driver=virtualbox
查看微服务通过service对外暴露的URL
minikube service list
|