加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

浅析 Kubernetes 多集群的几种方法

发布时间:2022-01-15 18:48:02 所属栏目:系统 来源:互联网
导读:随着 Kubernetes 在企业中应用的越来越广泛和普及,越来越多的公司在生产环境中运维多个集群。本文主要讲述一些关于多集群 Kubernetes 的思考,包括为什么选择多集群,多集群的好处以及多集群的落地方案。 VMware2020 年 Kubernetes 使用报告中指出,在采
  随着 Kubernetes 在企业中应用的越来越广泛和普及,越来越多的公司在生产环境中运维多个集群。本文主要讲述一些关于多集群 Kubernetes 的思考,包括为什么选择多集群,多集群的好处以及多集群的落地方案。
 
  VMware2020 年 Kubernetes 使用报告中指出,在采用 kubernetes 组织中 20%的组织运行 40+数目的集群。
 
  为什么企业需要多集群?
  单集群 Kubernetes 承载能力有限
 
  首先看看官方文档中关于单集群承载能力的描述:
 
  在 v1.12,Kubernetes 支持最多具有 5000 个节点的集群。更具体地说,我们支持满足以下所有条件的配置:
 
   不超过 5000 个节点
   Pod 总数不超过 150000
   总共不超过 300000 个容器
   每个节点不超过 100 个 Pod
  虽然现在 Kubernetes 已经发展到 v1.20,但是关于单集群承载能力一直没有变化。可见提高单集群负载能力并不是社区的发展方向。
 
  如果我们的业务规模超过了 5000 台,那么企业不得不考虑多个集群。
 
  混合云或是多云架构决定了需要多个集群
 
  到目前,其实多云或是混合云的架构很普遍了。
 
  比如企业是一个全球化的公司,提供 Global 服务。
 
  也许大家认为 Kubernetes 的控制面本身就是高可用的(三个 api-server),不会有整个控制层不可用的可能。
 
  其实则不然,我们在生产环境中,已经处理很多次类似故障了。如果一个应用(一般指需要调用 api-server 接口)在大量地调用 api-server,会导致 api-server 接连挂掉,最终不可用。直到找到故障应用,并把故障应用删除。
 
  所以在生产环境中,一是需要严格控制访问 api-server 的权限,二是需要做好测试,三是可以考虑业务应用和基础设施分开部署。其实单集群和多集群的选择和”选择一台超算 or 多台普通机器“的问题类似。后来分布式计算的发展说明大家选择了多个普通机器。
 
  多集群的好处
  多集群在以下三个方面,有着更好的表现:
 
   可用性
   隔离性
   扩展性
  多集群应用程序架构
  实际上,可以通过两种模型来构建多集群应用程序架构
 
   副本 :将应用程序复制到多个可用性区域或数据中心,每个集群都运行应用程序的完整副本。我们可以依靠 Smart DNS(在 GCP,有 Global 负载均衡器的概念) 将流量路由到距离用户最近的集群,以实现最小的网络延迟。如果我们一个集群发生故障,我们可以将流量路由到其他健康集群,实现故障转移。
   按服务划分:按照业务相关程度,将应用部署在不同的集群。这种模型,提供了非常好的隔离性,但是服务划分却比较复杂。
  社区多集群落地方案
  实际上,社区一直在探索多集群 Kubernetes 的最佳实践,目前来看主要有以下两种。
 
  以 Kubernetes 为中心
 
  着力于支持和扩展用于多集群用例的核心 Kubernetes 原语,从而为多个集群提供集中式管理平面。Kubernetes 集群联邦项目采用了这种方法。
 
  理解集群联邦的最好方法是可视化跨多个 Kubernetes 集群的元集群。想象一下一个逻辑控制平面,该逻辑控制平面编排多个 Kubernetes 主节点,类似于每个主节点如何控制其自身集群中的节点。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读