minikube K8s部署Hadoop访问localhost:8088无法访问求助
问题说明
- 访问
localhost:8088尝试打开Hadoop集群Web页面时,浏览器提示This site can't be reached(站点无法访问) - 部署环境:Hadoop运行在Minikube部署的Kubernetes集群Pod中
- 已执行操作:运行
kubectl get services查询服务状态,返回结果如下:
排查解决步骤
从kubectl get services返回结果可以看到,8088端口对应的Hadoop ResourceManager服务类型为ClusterIP,该类型默认仅允许Kubernetes集群内部访问,外部主机无法直接通过localhost访问,按以下步骤处理即可:
- 优先用端口转发快速验证服务可用性
执行以下命令做本地端口映射,执行过程中不要关闭终端:
此时重新访问kubectl port-forward svc/hadoop-resourcemanager 8088:8088localhost:8088,如果能正常打开页面,说明Hadoop服务本身运行正常,问题仅出在服务对外暴露的配置上。 - 长期访问的暴露方案
- 方案一:保留ClusterIP类型,每次需要访问时执行上面的
kubectl port-forward命令即可,适合临时测试场景。 - 方案二:将对应服务修改为
NodePort类型,修改后不要直接访问localhost,先执行minikube ip获取Minikube节点的实际IP,再通过[Minikube节点IP]:[服务分配的NodePort端口]访问;也可以直接执行minikube service hadoop-resourcemanager,命令会自动拉起浏览器打开可直接访问的服务地址。
- 方案一:保留ClusterIP类型,每次需要访问时执行上面的
- 异常排查
如果执行端口转发后依然无法访问,按以下顺序排查:- 执行
kubectl get pods确认Hadoop相关Pod状态为Running,无异常重启次数 - 执行
kubectl logs [resourcemanager对应的Pod名称]查看服务日志,确认Hadoop ResourceManager是否正常启动、8088端口是否正常监听,有没有启动报错 - 检查Service的selector配置是否和Pod的标签匹配,确认Service能正确转发流量到对应Pod
- 执行
内容的提问来源于stack exchange,提问作者Monica
相关产品推荐
相关产品推荐

