【问题标题】:Kubernetes in GKE - Nginx Ingress deployment - Public IP assigned to Ingress resourceGKE 中的 Kubernetes - Nginx Ingress 部署 - 分配给 Ingress 资源的公共 IP
【发布时间】:2019-09-18 13:12:23
【问题描述】:

TLDR,为什么入口资源有公共 IP?真的,我正在寻找原因。

描述“其中 107.178.254.228 是 Ingress 控制器为满足这个 Ingress 而分配的 IP。”来自Kubernetes documentation 并不能真正满足我完全理解它的需要。

我对资源的理解是,在这种情况下,它充当伪 Nginx 配置,仅基于配置元素对我来说确实有意义。不过,症结在于为什么它自己,即资源,有一个公共 IP?在这个实现的实验室之后,我还发现 SSH 正在公开监听这个资源,我觉得这很奇怪。在测试中,从控制器到此 IP 的网络路径确实会从网络流出,因此不会在 VIF 上分配另一个公共 IP,以便可以在本地接口上路由流量。

FWIW,我的测试完全在 GKE 中进行,但根据文档,这似乎只是跨平台的“它是如何工作的”。

【问题讨论】:

  • 我不确定 GKE,但我相信如果您的服务是 Loadbalancer 类型,那么它会创建这个 IP,如果不是,那么这个地址就是空的(我在 AKS 上的经验)
  • 使用 Ingress 你应该有一个 nodeport 服务而不是 LoadBalancer 服务。

标签: nginx networking kubernetes kubernetes-ingress


【解决方案1】:

在 GKE 或云提供商中使用的 Ingress 将与服务负载均衡器具有“相同的效果”,因为它将在您的云提供商上创建负载均衡器资源。这就解释了为什么它有一个公共 IP。

如果您不需要全局负载均衡器(注释中的 gce),您可以将自己限制为简单的负载均衡器服务。

【讨论】:

  • 在实施 Nginx 示例时,负载均衡器配备了公共 IP(这是不言自明的)。但是,入口资源(不是负载均衡器)也有一个公共 IP。原因尚不清楚,尽管我承认我可能遗漏了一些明显的东西。需要注意的是,如果您部署第二个 ingres 资源,则使用与第一个相同的 IP。在某种程度上仍然无法解释,但值得注意。
  • 这很奇怪,根据我的尝试,每个入口都链接到 LB,因为它发生在服务 LB 上,而外部 ip 是生成的 lb 之一。我应该再次尝试确定.. . 您为第二个入口进行了第二次部署?
  • 对不起,我使用 Nginx 创建了第二个入口资源,它创建了与第一个 IP 相同的资源。作为参考和更合理的比较,我在 google.qwiklabs.com 上运行了 NGINX Ingress Controller on Google Kubernetes Engine Qwiklab,它也表现出这种行为。这导致了我的困惑,我向谷歌培训师提出了同样的问题,但没有得到满足,我来了。 :)
猜你喜欢
  • 2016-10-10
  • 2021-02-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
  • 1970-01-01
  • 2018-11-25
  • 1970-01-01
  • 2021-11-05
相关资源
最近更新 更多