Kubernetes 主服务器可以在地理上与节点分开吗?

Kubernetes 主服务器可以在地理上与节点分开吗?

如果我要设置一个 kubernetes 集群,那么将 kubernetes 主服务器放在数据中心 A,将节点放在数据中心 B 是否可行?我知道由于 pod 之间的高延迟,将节点分布在多个数据中心可能会出现问题,但我找不到任何有关分离主服务器和节点的文档。

我的理解是否正确:如果主服务器暂时发生故障(例如由于数据中心 A 的电源问题),那么节点将继续运行,但没有监控、健康检查等?

答案1

如果您使用云,那么肯定不行。如果您使用本地 kubernetes,那么肯定可以。此设置的唯一缺点是设置适当的节点标签,以按数据中心和 pod 亲和性划分它们,以便将 pod 正确调度到目标数据中心。更复杂的设置将是数据中心之间共享 pod。在这种情况下,您将需要一个“全局”VPN,以便它们可以相互访问及其负载均衡器

答案2

如果我理解正确的话,简短的回答是否定的,不可能在单个集群中使用来自不同区域的节点。

但是你可以在多个区域

Kubernetes 1.2 添加了在多个故障区域(GCE 简称为“区域”,AWS 称之为“可用区域”,这里我们将其称为“区域”)中运行单个集群的支持。

多区域支持是故意限制的:单个 Kubernetes 集群可以在多个区域中运行,但只能在同一地区(和云提供商)内运行。

我希望它有帮助。

答案3

EKS(AWS Kubernetes 服务)按照您描述的方式执行。

一个 EKS 集群由两个 VPC 组成:

  • 托管 Kubernetes 控制平面的 AWS 管理 VPC。此 VPC 不会显示在客户账户中。

  • 托管 Kubernetes 节点的客户管理 VPC。容器以及其他客户管理的 AWS 基础设施(例如集群使用的负载均衡器)都在此处运行。此 VPC 显示在客户账户中。

https://aws.github.io/aws-eks-best-practices/reliability/docs/controlplane/

在此处输入图片描述

相关内容