Windows环境下Microk8s的host-access失效 VM访问宿主机连接被拒
问题解决方案
核心原因
你遇到的连接被拒问题,本质是宿主机MySQL未对microk8s虚拟机网段开放访问权限,或访问IP配置错误,按照以下步骤排查即可解决:
排查&解决步骤
- 第一步:修改MySQL监听地址
打开Windows上MySQL的配置文件my.ini,找到bind-address配置项,将默认的127.0.0.1改为0.0.0.0,修改后重启MySQL服务。
修改后在Windows cmd执行以下命令验证监听状态:
回显中如果出现netstat -ano | findstr 33060.0.0.0:3306即代表配置生效。 - 第二步:修正宿主机访问IP配置
你目前用的10.0.1.1是microk8s集群内部的loopback地址,不是宿主机暴露给multipass虚拟机的访问IP,正确IP获取方式:
在Windows cmd执行ipconfig,找到名称包含Multipass的以太网适配器,复制其IPv4地址(通常为192.168开头的网段),该地址才是microk8s集群内可以访问到宿主机的正确IP。 - 第三步:放开MySQL账号访问权限
本地登录MySQL后执行以下SQL,给你的业务账号开放microk8s网段访问权限:-- 替换为你实际的账号、密码 GRANT ALL PRIVILEGES ON *.* TO '你的数据库账号'@'10.0.%' IDENTIFIED BY '你的数据库密码'; GRANT ALL PRIVILEGES ON *.* TO '你的数据库账号'@'192.168.%' IDENTIFIED BY '你的数据库密码'; FLUSH PRIVILEGES; - 第四步:逐层验证连通性
- 先进入multipass虚拟机验证连通性:
multipass shell microk8s-vm # 替换为第二步查到的宿主机Multipass网卡IP telnet 宿主机IP 3306- 虚拟机验证连通后,再进入Pod验证,确认可以连通后,将对应IP更新到你的K8s Secrets中即可。
内容的提问来源于stack exchange,提问作者Programmer
相关产品推荐
相关产品推荐

