问题:从外部群集,通过NodePort公开服务,我无法访问该应用程序。 我应该得到MyApp的响应:从我的Mac客户端(http:// nodeIP:nodePort / api / users)->节点(nodePort)->服务(endPoints)-pod-> MyApp(在容器)
设置:
请求: 不确定缺少什么:防火墙是否将其阻止,端口转发是否丢失,其他原因……从我的计算机尝试 “ curl http://:/ api / users”超时。
旁注:我知道我可以使用其他方法,例如入口。现在,我正在尝试学习并弄清为什么NodePort方法不起作用。
答案 0 :(得分:0)
适用于Mac的Docker在hyperkit Linux VM中运行,而不在您的实际Mac上运行。因此,使用kind,每个节点都是一个容器,不幸的是,您将无法从Mac连接到NodePort。
解决方法是从Docker VM或具有与VM相同网络空间的容器进行连接。
$ docker run --rm -it --net host alpine sh
# curl http://<the-ip-address-from-a-node>:<NodePort>/api/users
如果您希望访问浏览器,另一种方法是从Mac kubectl proxy ...
进入该服务。或kubectl port-forward svc/service-name <localport>:<serviceport>
到服务。