【问题标题】:How to access pod IP from outside如何从外部访问 pod IP
【发布时间】:2020-11-10 12:00:45
【问题描述】:

我是 k8s 的菜鸟。

我知道 pod IP 设置在--cluster-cidr 的范围内。例如。 10.244.0.0/18

我的问题是如何从k8s集群外部访问pod IP。

我听说有两种方法可以做到这一点:

    1. Docker桥接器使用自定义的Linux桥接器,在/etc/docker/daemon.json中的一些技巧,然后在路由器设备上通过ip route add 10.244.0.0/18 via {k8sNodeIp}添加路由记录(或类似的东西,我不知道细节) .
    1. 与上面的类似,但他们似乎在没有“桥梁技巧”的情况下完成了这一点,只需添加一些路线记录(如果我错了告诉我)。

这些解决方案来自两个不同的团队。

不知道k8s网络插件有没有涉及,第一个用flannel,最后一个用calico

有关于这方面的文档吗?

【问题讨论】:

  • 为什么不使用 NodePort 类型的 Kubernetes Service?
  • 推荐的访问 pod 的方式是通过服务。使用 IP 不容易管理和扩展。如果你不需要考虑可扩展性,也许你不需要 k8s。
  • @ArghyaSadhu 这些解决方案不适用于生产用途,只是为了方便调试或开发。我找不到任何相关文档。

标签: kubernetes flannel calico


【解决方案1】:

回答

您可以使用kubectl port-forward 直接与 Pod 中的容器通信出于调试/开发目的

例如kubectl port-forward mypod 5000:6000

请参阅文档here

更多信息

此命令将在您的工作站上设置一个代理,以便您可以运行,例如:

curl localhost:5000/api/v1/status

此请求将被转发到 API Server,然后 API Server 会将您的请求转发到您在 port-forward 命令中指定的 Pod。

【讨论】:

  • 抱歉,这不是我想要的。我在其中一个 k8s 边缘节点上设置了一个 OpenVPN 服务器,然后在我的 Windows 桌面上使用 vpn 客户端连接到 k8s网络。它对我有用。
  • 是的,我只回答了这个My question is how to access the pod IP from outside the k8s cluster.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-16
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 2018-03-03
  • 1970-01-01
  • 2018-02-26
相关资源
最近更新 更多