单个 Kubernetes/OpenShift cluster/instance 跨数据中心?

Single Kubernetes/OpenShift cluster/instance across datacenters?

了解 Ubernetes 旨在完全解决这个问题,目前 是否可以(不一定推荐)跨越单个 K8/OpenShift跨多个内部 个企业数据中心进行集群?

另外假设数据中心之间的延迟相对较低,并且跨公司数据中心的基础设施相对一致。

示例:给定 3 个公司 DC,在每个数据中心部署 1..* master(作为一个集群),并在每个 DC 上有 1..* 个节点 pods/rc's/services/ ...在所有 3 个 DC 中旋转。

有人在 Ubernetes 掉线之前实施了类似的解决方案作为权宜之计吗?如果是,它是如何工作的,在像这样的 运行 上需要考虑哪些因素?

is it currently possible (not necessarily recommended) to span a single K8/OpenShift cluster across multiple internal corporate datacententers?

是的,目前可以。节点获得 apiserver 的地址和客户端凭证,然后将自己注册到集群中。节点不知道(或关心)apiserver 是本地的还是远程的,并且 apiserver 允许任何节点注册,只要它具有有效的凭据,而不管该节点在网络上的哪个位置。

Additionally assuming that latency between data centers is relatively low and that infrastructure across the corporate data centers is relatively consistent.

这很重要,因为 Kubernetes 中的许多设置都假定(隐式或显式)apiserver 和节点之间的高带宽、低延迟网络。

Example: Given 3 corporate DC's, deploy 1..* masters at each datacenter (as a single cluster) and have 1..* nodes at each DC with pods/rc's/services/... being spun up across all 3 DC's.

这种方法的缺点是,如果您有一个全局集群,就会有一个全局故障点。即使您复制了 HA 主组件,数据损坏仍然会使整个集群脱机。传播到复制控制器中所有 pods 的错误配置可能会使您的整个服务脱机。错误的节点图像推送可能会使您的所有节点脱机。等等。这是我们鼓励人们为每个故障域使用一个集群而不是一个全局集群的原因之一。