Kubernetes服务集群是特定的还是服务可以跨集群?

我是K8S的新手。我的理解是,我将不得不为单独的区域创建单独的集群。举例来说,我将必须创建3个集群,一个集群用于us-south,另一个集群用于eu-gb,第三个集群用于au-syd地区。现在说我需要在每个区域的每个群集中运行我的应用程序。另外,我可能希望将此应用程序foo复制到每个区域中跨多个节点的多个pod上。在那种情况下,服务foo-service将抽象化此应用程序,它是特定于区域集群的服务,还是会跨越我的所有三个集群?

lingfan2 回答:Kubernetes服务集群是特定的还是服务可以跨集群?

  

我的理解是,我将不得不为单独的区域创建单独的集群。

是的,这是正确的。每个区域都有一个单独的群集。

  

现在说我需要我的应用程序在每个区域的每个群集中运行。

这些群集是独立的,因此,除非您设置一些Cluster Federation,否则您将在每个群集中部署每个应用程序。

  

此外,我可能希望将此应用程序foo复制到每个区域中跨多个节点的多个pod上。

集群是独立的。因此,该应用程序将部署在每个应用程序中,并在群集内 中进行复制-可能会自动与Horizontal Autoscaling一起复制,例如如果一个区域中的负载更多,则该集群会自动将应用从3个实例扩展到5个实例,并自动独立

  

在那种情况下,服务foo-service将抽象化此应用程序,它是特定于区域集群的服务,还是会跨越我的所有三个集群?

群集是独立的,因此每个服务也将独立于其他区域中的服务。如果使用可用区,则可以在同一区域中跨可用区设置群集。

,

除了乔纳斯(Jonas)的解释之外,还可以使用Pod Topology Spread Constraints功能使单个群集覆盖多个区域(尽管有些开销和配置复杂)。

因此您的集群将如下所示:

+---------------+---------------+---------------+
|     zoneA     |     zoneB     |     zoneC     |
+-------+-------+-------+-------+-------+-------+
| node1 | node2 | node3 | node4 | node5 | node6 |
+-------+-------+-------+-------+-------+-------+

结合PodAffinity / PodAntiAffinity,您可以尝试将任意数量的Pod打包到合格的拓扑域中。

需要说的是,您必须拥有三套服务(每个区域一个)。例如,您可以使用LoadBalancer服务类型。

因此,您将能够分别处理来自foobar.us-south,foobar.au-sy和foobar.eu-gb的请求),并根据需要在特定区域中生成其他Pod。

希望(结合乔纳斯的答案)涵盖主题:)

本文链接:https://www.f2er.com/2876401.html

大家都在问