gpt4 book ai didi

kubernetes - 从群集外部,无法访问MyApp(客户端-> :->服务-> Pod-> MyApp)

转载 作者:行者123 更新时间:2023-12-02 11:46:27 27 4
gpt4 key购买 nike

问题:从外部群集,通过NodePort公开服务,我无法访问该应用程序。
我应该得到MyApp的响应:从我的mac客户端(http:// nodeIP:nodePort / api / users)->节点(nodePort)->服务(endPoints)-pod-> MyApp(在容器)
设置:

  • 操作系统:Mac和DockerDesktop使用KIND,创建集群(1-master,
    2名 worker )
  • 部署了简单的应用程序,并能够'kubectl exec myPod-
    curl http:// localhost / api / users'<-确实可以工作
  • 然后创建类型为:NodePort的“服务”(由k8自动选择)
  • 应该是从Mac(客户端)启动的,我应该可以访问MyApp,但是尝试“ curl (http:// nodeIP:nodePort / api / users)”只是超时。

  • 请求:
    不确定缺少什么:防火墙是否将其阻止,端口转发是否丢失,其他原因……从我的计算机尝试
    “curl http://:/ api / users”超时。
    旁注:我知道我可以使用其他方法,例如入口。现在,我正在尝试学习并弄清为什么NodePort方法不起作用。

    最佳答案

    用于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> 服务。

    关于kubernetes - 从群集外部,无法访问MyApp(客户端-> <nodeIP>:<nodePort>->服务-> Pod-> MyApp),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62825790/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com