【问题标题】:How to expose nginx ingress controller [on-premise infrastructure]如何暴露 nginx 入口控制器 [本地基础设施]
【发布时间】:2020-02-05 18:35:46
【问题描述】:

这更像是一个设计问题而不是一个问题。我们已经在我们公司部署了我们自己的 Kubernetes 基础设施,我们正在尝试使用入口和 NGINX 入口控制器来对外公开我们的服务,但是由于它不是 GCP 或 AWS 等云环境,我们不能使用服务类型“LoadBalancer” ”。我们是否应该通过服务类型“NodePort”公开我们的入口控制器?这是生产环境(非云)的正常方式吗?

根据我在另一个 post 中读到的内容,一个合适的建议是使用 NodePort,并手动将另一个外部负载均衡器指向 Kubernetes 节点上的端口。

似乎通过这种机制暴露入口控制器在某种程度上不是很实用或健壮(例如,您不知道您的服务将分配哪个端口,并且端口可能会在某个时候重新分配,等等)

是否有任何其他机制可以将入口控制器暴露给外部世界?

【问题讨论】:

标签: kubernetes kubernetes-ingress nginx-ingress


【解决方案1】:

Loadbalancer 服务方法是实现它的一种方法,但它背后只不过是集群上的一个节点端口。

即使您使用在云提供商上创建 LB 的服务,LB 也需要有目标端口才能与集群通信。

当使用主要处理 Web 请求的 nginx-ingress 时,通常将 ingress 放在 nodeport 服务前面。

因此,我认为使用 NodePort 服务来做你想做的事是个好主意;)

这是我的看法,如果其他人有其他方法,我很感兴趣。

【讨论】:

  • 谢谢。我最终使用了MetalLB,到目前为止效果很好
【解决方案2】:

您可以在服务中通过 nodePort 指定端口。那么它就不是随机的了。

【讨论】:

  • 如果你使用的是 gitops,你可以跟踪这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
相关资源
最近更新 更多