Mac M1环境下MicroK8s端口转发失效问题求助
解决MicroK8s端口转发无法访问Apache服务的问题
排查命令输入错误
从你提供的wget输出可见,实际连接的是localhost:8080,但端口转发分配的本地端口是37551,大概率是执行wget时输错了端口。先确保访问的是端口转发显示的正确端口:
wget http://localhost:37551
验证容器内Apache监听状态
确认Apache在容器内正常监听80端口:
- 进入容器终端:
microk8s kubectl exec -it test-pod -- bash
- 安装网络工具(容器内默认无此工具):
apt update && apt install -y net-tools
- 检查端口监听情况:
netstat -tulpn | grep 80
若能看到apache2进程监听0.0.0.0:80,说明容器内服务正常;若没有监听记录,说明镜像启动存在异常,需换用兼容ARM架构的镜像。
换用ARM兼容的Apache镜像
你当前使用的ubuntu/apache2:2.4-20.04_beta可能对M1的ARM64架构支持不佳,换用官方多架构的httpd镜像测试:
- 删除原有Pod:
microk8s kubectl delete pod test-pod
- 创建新Pod:
microk8s kubectl run test-pod --image=httpd:2.4-alpine --port=80
- 等待Pod运行后执行端口转发:
microk8s kubectl port-forward test-pod 8080:80
- 访问测试:
wget http://localhost:8080
调整端口转发绑定地址
若上述步骤无效,尝试让端口转发绑定所有网络地址:
microk8s kubectl port-forward --address 0.0.0.0 test-pod 8080:80
之后用http://127.0.0.1:8080或你的Mac局域网IP访问测试。
内容的提问来源于stack exchange,提问作者Bertuz
相关产品推荐
相关产品推荐

