【问题标题】:Kubernetes deployments and servicesKubernetes 部署和服务
【发布时间】:2022-01-23 03:20:56
【问题描述】:

如果我有两个部署在同一个命名空间中运行,并且一个服务公开部署 A,我如何让 Deploymet B 使用相同的服务来仅公开在该部署上运行的 20% 的 PODS?如何使服务以负载平衡部署的方式使已运行 5 个副本的部署 A 已全部通过该服务公开,并使部署 B 仅将服务用于在其上运行的 20% 的 PODS

【问题讨论】:

  • 这个OTB不容易做到。在大多数情况下,您需要一个服务网格,尽管 nginx 入口确实提供了这个功能。看看flagger.app。您是在尝试进行 A/B 测试还是金丝雀版本?
  • ...make Deploymet B use the same service to only expose the 20 % of the PODS running on that deployment... - 这是什么same servicemake deployment B to use the service only for the 20% 是什么意思?剩下的 80% 在哪里?
  • 您能否澄清一下 - 您想从部署 B 向部署 A 中仅有的 20% 的 pod 发出请求?那么,在您的示例中,部署 B 将从 A 部署(5 个副本)向 1 个 pod 发送请求?
  • 这是针对金丝雀部署的,服务是一个节点端口类型的服务,并且有一个部署已经运行了 qith 5 个副本,部署 B 将是金丝雀一个,并且只有 5 个副本的 20%在其上运行的副本将使用已在集群上运行的 Nodeport 服务
  • 这是为了让服务成为两种部署的 LB,很可能

标签: kubernetes networking


【解决方案1】:

对于金丝雀部署,您将拥有两个部署和一个服务(就像您已经拥有的那样)。

假设您的第一个部署是“稳定的”,另一个部署是“金丝雀”。 两者都具有与服务匹配的相同匹配标签,因此服务可以对两个部署进行负载平衡。 根据您的示例,“稳定”部署有 5 个副本,在这种情况下,您应该使用 1 个副本(需要总副本的 20%)部署“金丝雀”部署并进行部署。我想这就是你要找的。​​p>

【讨论】:

  • 嗯,很有趣,谢谢
  • 有道理,谢谢
  • 嗨@user9356263,Sam 的这个回答能回答你的问题吗?如果是,请考虑up-voting / accepting it
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
  • 2017-01-08
  • 2019-08-24
  • 1970-01-01
  • 1970-01-01
  • 2020-09-15
  • 1970-01-01
相关资源
最近更新 更多