微服务架构师封神之路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。安装顺序,

  • virtualbox
  • 下载minikube

但是因为我是做开发使用,需要在本地build docker image,所以还要额外安装docker desktop。
安装minikube的时候,可以显示的指定使用virtualbox,以防万一,毕竟你在环境中也安装了docker,

minikube start --driver=virtualbox

安装在virtualbox上,默认会设置两个网络,NAT和Host-only
在这里插入图片描述本地与minikube中服务的相互访问就可以利用Host-only网络。

minikube与本地相互访问

本地ip

# local ip address in host-only network
ifconfig

在这里插入图片描述在这里插入图片描述在minikube中可以使用192.168.99.1访问部署在本地的服务,数据库,Redis,Kafka之类,应用周边的存储服务。他们不需要反复部署或安装,安装在本地更合理一些。

minikube和服务的ip地址

# minikube ip
minkube ip
# or
minkube ssh
ifconfig

# 微服务的访问地址(如果已经为微服务设置好了前端服务)
minikube service list

总结

虽然是为解决在mac上安装minikube,本地和minikube间无法建立通信的问题,但在其它操作系统安上装minikube也可以参考借鉴本文的一些想法。谢谢!

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值