【问题标题】:Nginx to load balance deployment inside a service kubernetesNginx 在服务 kubernetes 内进行负载平衡部署
【发布时间】:2026-01-28 19:35:01
【问题描述】:

我想使用 Nginx 对 Kubernetes 部署进行负载平衡。 部署是服务的一部分。它包含可以缩放的 pod。我希望 NGINX 成为服务的一部分而不被扩展。

我知道我可以通过使用外部 dns 解析器配置 NGINX 作为外部负载均衡器。这样它就可以扩展 pod 的 IP 并应用自己的负载平衡规则。

是否可以让 NGINX 成为服务的一部分?那么如何对 Pod 进行 DNS 解析呢?在这种情况下,服务名称指的是哪些 pod?

我想避免声明两个服务以保留代表微服务的设置的单一定义。

更一般地说,我如何在同一个服务中声明:

  • 按比例缩放的单位
  • 后端,未缩放
  • 数据库,未扩展

谢谢大家

【问题讨论】:

    标签: nginx deployment kubernetes


    【解决方案1】:

    您不能将 NGINX 作为服务的一部分。服务不包含任何 pod,部署包含。听起来您想要一个入口服务,这将是集群上所有服务的负载均衡器

    编辑:

    入口控制器本质上是 NGINX 的部署,作为负载均衡器/扇出的服务公开公开。部署会扫描您的集群以获取入口资源并重新配置 NGINX 以将请求转发到适当的服务。

    通常人们会部署一个控制器来充当所有微服务的负载平衡器。您可以根据 DNS、URI、其他标头等进行扇出。您还可以进行 TLS 终止,将基本身份验证添加到特定服务,甚至可以将 NGINX 配置 sn-ps 直接拼接到入口资源中。

    【讨论】:

    • 好的,我明白了。这意味着该服务的一个目标是隐藏一组在名称和 dns 后面缩放的 pod,以实现负载平衡。那是对的吗?好的,我将对入口控制器进行更深入的了解。在我想部署的情况下,比如说 5 个微服务,是否可以基于 NGINX 声明 5 个不同的入口控制器,具有 5 个不同的策略/配置? (缓存,负载平衡..)谢谢
    最近更新 更多