Google Cloud GKE多区域集群与区域集群

时间:2019-07-26 08:06:52

标签: kubernetes google-cloud-platform google-kubernetes-engine

有人知道两者之间的区别吗? 现在,我唯一看到的区别是区域需要> = 3个区域。

4 个答案:

答案 0 :(得分:2)

找到了很好的解释here

  

“多区域”集群是至少具有一个的区域集群   定义的附加区域;在多区域集群中,集群主服务器   仅存在于单个区域中,而每个节点中均存在节点   主要区域和节点位置。相反,在一个区域   群集中,群集主节点位于   区域。因此,应该优先选择区域集群。

答案 1 :(得分:1)

根据Google文档(2020年10月30日)

区域集群:默认情况下,集群的控制平面(主节点)和节点都在您创建集群时指定的单个计算区域中运行。

多区域集群::在创建GKE集群时选择多个区域来创建节点时,它将成为多区域集群。尽管群集的控制平面(主控)将在单个区域中运行,并且节点将跨多个计算区域。

区域集群:通过跨区域的多个区域复制它们,可以提高集群控制平面(主节点)及其节点的可用性。这提供了多区域集群的优势,还有以下附加优势:

  1. 如果某个区域中的一个或多个(但不是全部)区域发生中断, 集群的控制平面只要一 控制平面的副本仍然可用。
  2. 列表项在诸如集群升级之类的集群维护期间,一次仅在控制平面的副本上不可用,并且集群仍可运行。

对于区域集群,默认情况下,控制平面和每个节点池在一个区域的三个区域中复制,但是您可以自定义副本数。

创建群集后,您不能修改群集是区域群集,多区域群集还是区域群集。

答案 2 :(得分:0)

Compute Engine资源在全球的多个位置托管。这些位置由区域和区域组成。区域是您可以托管资源的特定地理位置。每个区域都有一个或多个区域。大多数地区都有三个或更多区域。例如,us-west1区域表示美国西海岸的一个区域,具有三个区域:us-west1-aus-west1-bus-west1-c

有关区域,区域和位置的非常详细的信息可以在GCP Documentation上找到。您还可以在每个区域中找到可用的功能(CPU,计算机类型,光盘等)。

有关here的多区域和区域集群的信息以及如何创建/修改它们的信息。

1。。区域/多区域群集 默认情况下,群集是在单个计算区域中创建的。多区域群集在同一区域内的多个区域中运行节点。单区域或多区域群集中的所有节点均由同一群集主服务器控制。

多区域群集可以通过在多个区域的节点上运行它们来帮助提高应用程序的可用性。这有助于防止因区域范围内的意外停机而造成的停机。

2。。区域集群 区域集群将Kubernetes资源分布在一个区域内的多个区域中。区域集群在三个区域中创建三个集群主节点,默认情况下,在三个区域或所需的多个区域中创建节点。

请记住,如果您选择离您所在位置最近的区域,您的响应速度会更快。

答案 3 :(得分:0)

来自GKE文档:

  

默认情况下,群集是在单个计算区域中创建的。多区域群集在同一区域内的多个区域中运行节点。单区域或多区域群集中的所有节点均由同一群集主服务器控制。

对于区域GKE集群:

  

区域集群将Kubernetes资源分布在一个区域内的多个区域中。区域集群的主节点和节点分布在多个区域中。默认的主服务器数量,每个区域的默认节点数量以及所包含的区域的默认数量都是三个,但是您可以减少或增加数量以实现适当的群集大小和区域数量。

我最近建立了一个区域性GKE引导程序,并且管理区域性存储的挑战是巨大的(当然对我而言)。如文档中所述,不能将读写持久性磁盘连接到多个节点。如果您的Statefulset尝试在没有持久卷的节点中计划Pod,则将遇到诸如1 node(s) had volume node affinity conflict之类的问题。完全可以通过taintsnode afinity策略来克服这些挑战,但这伴随着Kubernetes Administration的日趋成熟。

此外,请记住,区域之间的流量是收费的,如果您对建筑细节没有绝对的控制权,最终您将付出比计划更多的代价:

  

此外,您还需要支付跨区域的节点到节点流量。例如,如果您在一个区域中有一项服务需要与另一区域中的服务进行通话,则将向您收取跨区域网络流量的费用。有关更多信息,请参考Compute Engine定价页面上的“同一区域内区域之间的出口(每GB)”定价。

作为个人/小型专业设置,我建议您坚持使用多区域群集并使用多区域磁盘的功能。