配置NodePort类型Selenium Hub服务后无法通过节点IP+端口访问问题咨询
NodePort方式访问Minikube服务失败的原因及解决方案
访问失败的核心原因
你当前无法通过192.168.49.2:30001访问服务,是因为Minikube默认采用Docker作为运行驱动,该模式下Minikube的节点网络运行在Docker的内部隔离网络命名空间中:
- 你配置的NodePort 30001仅绑定在Minikube内部节点的网卡上,没有暴露到宿主机的物理网络
kubectl describe service中看到的192.168.49.2:8443是Kubernetes API Server的访问地址,不是Minikube节点的业务端口可访问地址minikube service命令默认会自动做一层端口转发,将Minikube内部的NodePort临时映射到宿主机的随机端口,所以你访问返回的127.0.0.1随机地址可以正常打开页面
固定端口访问的解决方案
方案1:使用固定端口转发(适配所有操作系统,优先推荐)
直接通过kubectl将服务端口映射到宿主机固定端口,命令如下:
kubectl port-forward service/selenium-srv 30001:4444
执行后宿主机访问127.0.0.1:30001即可访问Selenium Hub,端口完全固定符合Azure Pipeline集成要求。如果需要后台运行,可以在命令末尾加&符号。
方案2:更换Minikube驱动为虚拟机驱动
如果你需要直接通过Minikube节点IP+NodePort访问,可以将Minikube驱动更换为VirtualBox、VMware等虚拟机驱动,Linux环境下也可以使用none驱动:
minikube start --driver=virtualbox
启动完成后通过minikube ip获取节点IP,访问<节点IP>:30001即可直接连通。
方案3:Minikube启动时提前映射NodePort端口
启动Minikube时指定端口映射规则,直接将宿主机30001端口映射到Minikube节点的30001端口:
minikube start --ports=30001:30001
启动完成后访问宿主机的30001端口即可访问服务。
内容的提问来源于stack exchange,提问作者user1207289
相关产品推荐
相关产品推荐

