0

我在端口转发 traefik 时遇到问题。我在 Rancher 有一个部署,我使用 metallb 和 traefik 来获得 ssl 证书。应用于我的服务。所有这些都在本地工作,我在 traefik 日志中没有看到任何错误消息。这很有趣,因为有时我可以在我的网络之外访问我的服务,但有时不能。

  • 我已将 80、433、8080 端口转发到 192.168.87.135
  • 我究竟做错了什么?我缺少一些端口吗?

traefik 日志 的图片 暴露的 traefik 负载均衡器的图片

4

1 回答 1

1

IPv4 指定无法从 Internet 访问的私有 IP 地址范围,因为:

互联网的发展超出了任何人的预期。持续
的指数增长继续带来新的挑战。一个
挑战是社区内担心全球唯一
地址空间将被耗尽。

(来源:RFC-1918 私有互联网地址分配

无法从 Internet 访问这些私有 IP 范围内的 IP 地址。您的 IP 地址192.168.87.235是 C 类私有 IP 地址范围192.168.0.0/16的一部分,因此它本质上无法从 Internet 访问。此外,您声明它在您的本地网络中正常工作。

对此的后续问题是:如果它是专用网络,我如何访问我的网络?

要访问您的本地网络,您需要有一个同时具有内部和公共 IP 的网关,以便您可以通过公共 IP 访问您的网络。一种解决方案可能是将 DNS 名称映射到公共 IP,并通过反向代理在内部路由到内部负载平衡器 IP 192.168.87.235 。

不幸的是,我不能告诉你为什么它偶尔会工作,因为这需要更多关于你的本地网络的知识。但我想这可能是您通过 VPN 连接到您的本地网络,或者您已经有一个反向代理,只是一直不在线。

观看视频后编辑:

在视频结束时,您的集群仍然可以从 Internet 访问。您会收到消息“服务不可用”,实际上每次您希望访问不健康的应用程序时,traefik 都会返回该消息。您的问题是重新启动 VM 后演示应用程序未启动。因此,您接下来需要做的是检查演示应用程序未启动的原因。这包括检查 pod 的日志和失败 pod 的事件。

我想谈的另一个话题是 traefik 以及它的实际作用。首先只称 Traefik 为反向代理,虽然不是假的,但并不是全部真相。Kubernetes 环境中的 Traefik 是一个入口控制器。这意味着它是由 kubernetes 资源配置的反向代理,即由“Ingress”对象或“IngressRoute”对象配置。后者是 Traefik 本身引入的自定义资源(请阅读此处了解更多信息),因为它引入了配置 traefik 的高级选项。我告诉你这个的原因是因为你实际上在你的集群中安装了两个入口控制器,“Traefik”“nginx-ingress-controller”,你只需要一个。

于 2020-09-17T09:17:37.147 回答