Kubernetes 联邦机制介绍

简介: Federation(联邦) 此页面解释了为什么以及如何使用联邦来管理多个Kubernetes集群。 Why federation Caveats Hybrid cloud capabilities Setting up federation API resources Cascading deletion Scope of a single cluster Selecting the right number of clusters What’s next 为什么联邦 联合可以轻松管理多个群集。

Federation(联邦) 

此页面解释了为什么以及如何使用联邦来管理多个Kubernetes集群。

为什么联邦

联合可以轻松管理多个群集。 它通过提供2个主要构件来实现:

  • 跨群集同步资源:联邦可以使多个群集中的资源保持同步。 例如,可以确保多个群集中部署相同的程序。

  • 跨群集发现:联邦提供了自动配置DNS服务器和负载均衡器与所有群集后端的功能。例如,您可以确保可以使用全局VIP或DNS记录来访问多个群集的后端。

联邦的一些其它用处如下:

  • 高可用:通过在群集之间传播负载并自动配置DNS服务器和负载平衡器,联邦会将群集故障的影响降至最低。
  • 避免提供者锁定(lock-in):通过更轻松地跨群集迁移应用程序,联邦会阻止群集提供者锁定(lock-in)。

除非有多个集群,否则联邦并没有任何用。你可能需要多个集群的一些原因有:

  • 低延迟:让多个区域中的集群通过向距离它们最近的集群提供服务来最大限度地减少延迟。
  • 故障隔离:最好有多个小型集群而不是一个单独人大型集群来进行故障隔离(例如:云提供商的不同可用区域中有多个集群)。
  • 可扩展性:单个kubernetes集群具有可扩展性限制(大多数用户不应该这样做,更多详情请参阅Kubernetes Scaling和Performance Goals)。
  • 混合云:可以在不同的云提供商或本地数据中心上拥有多个群集。

注意事项

虽然联邦有很多有吸引力的用处,但也有一些注意事项:

  • 增加网络带宽和成本:联邦控制台监视所有群集以确保当前状态符合预期。如果集群在云提供商或不同云提供商的不同区域(regions)运行,这可能会导致显着的网络成本。
  • 减少跨群集隔离:联邦控制台中的错误可能影响所有群集。通过将联邦控制台中的逻辑保持最简,可以缓解这一问题。 只要可能,它大部分都会委托给控制台的kubernetes集群中。 设计和实施也在安全方面做了很多考虑,并避免发生错误时多集群停机。
  • 成熟度:联邦项目相对较新,不太成熟。 并非所有资源都可用,许多资源仍然是alpha状态。 Issue 88列举了团队忙于解决的系统已知问题。

混合云功能

Kubernetes集群联邦可以运行在不同云提供商(例如Google Cloud,AWS)和本地(例如OpenStack)中的集群。 Kubefed是部署联邦集群的推荐方式。

此后,您的API资源可以跨越不同的集群和云提供商。

设置联邦

为了能够联合多个集群,首先需要设置联邦控制台。按照设置指南进行设置。

API 资源

一旦设置了控制台,就可以开始创建联邦API资源。 以下指南详细解释了一些资源:

API参考文档列出了联邦apiserver支持的所有资源。

级联删除

Kubernetes 1.6版支持级联删除联邦资源。当从联邦控制台中删除资源时,还会删除所有基础集群中的相应资源。

在使用REST API时,级联删除在默认情况下不会启用。要启用它,请在使用REST API从联邦控制台中删除资源时设置DeleteOptions.orphanDependents=false选项。 使用kubectl delete可以在默认情况下启用级联删除。还可以通过运行kubectl delete --cascade=false来禁用它

注意:Kubernetes版本1.5包括对联邦资源子集的级联删除支持。

单个群集的范围

在诸如Google Compute Engine或Amazon Web Services之类的IaaS供应商中,虚拟机存在于zone 或AZ中。 我们建议Kubernetes集群中的所有虚拟机应位于相同的可用区域中,因为:

  • 与具有单个全局Kubernetes集群相比,单点故障的数量更少。
  • 与跨越可用区域的集群相比,更容易推断单区域群集的可用性属性。
  • 当Kubernetes开发人员正在设计系统时(例如对延迟,带宽或相关故障进行假设),他们假设所有机器都位于单个数据中心或连接非常近。

建议在每个可用区域运行更少的虚拟机群集; 但可以在每个可用区域运行多个群集。

选择每个可用区域较少群集的理由是:

  • 在某些情况下,在一个群集中有更多节点(更少的资源),可以改进Pod的装箱包装。
  • 降低了运维开销(尽管随着操作工具和流程的成熟,优势没那么明显了)。
  • 降低每个集群固定资源花费的成本,例如, apiserver虚拟机(但对于大中型集群整体集群成本的比例很小)。

有多个集群的原因包括:

  • 严格的安全策略要求将一类工作与另一类工作隔离(但请参阅下面的分区集群)
  • 测试群集canary 到新Kubernetes版本或其他群集软件。

选择正确数量的集群

选择Kubernetes集群的数量一般是不会变的,只是偶尔会重新审视(revisited occasionally)。 相比之下,集群中的节点数量和服务中的pod数量可能会随着负载和业务增长频繁变化。

要选择集群数量,首先需要确定您需要在哪些区域(region)进行部署,以便在Kubernetes上运行的服务为所有最终用户提供最低的延迟,(如果使用内容分发网络,则CDN- 托管内容不需要考虑)。 法律问题也可能会对此产生影响。 例如,一家拥有全球客户群的公司可能会决定在美国,欧盟,美联社和南非地区拥有集群。需要使用的区域的数量为R。

其次,确定在不影响整体业务的情况下,最多可以容忍有多少个群集同时不可用。将不最多不可用集群数量设为U.如果您不确定,那么U=1是一个不错的选择。

如果允许负载平衡在发生集群故障时将流量引导至任何区域,则至少需要较大的R或U + 1集群。 如果不是(例如,如果要确保发生群集故障时所有用户的延迟较低),则需要具有R *(U + 1)群集(每个R区域中的U + 1)。 无论如何,尝试将每个集群放入不同的区域。

最后,如果需要构建一个比Kubernetes的最大建议节点数量多的集群,则可能需要多个群集。 Kubernetes v1.3支持最多1000个节点的群集。 Kubernetes v1.8支持多达5000个节点的集群。

本文转移开源中国-Kubernetes 联邦机制介绍

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
消息中间件 Java Spring
五、消息确认机制(ACK)
五、消息确认机制(ACK)
62 1
|
10月前
|
消息中间件
rabbitmq消息的确认机制ack
rabbitmq消息的确认机制ack
|
Kubernetes 网络协议 API
Kubernetes Kubelet 状态更新机制
Kubernetes Kubelet 状态更新机制
Kubernetes Kubelet 状态更新机制
|
Kubernetes 程序员 开发者
极客程序员“怒斥”:FAANG 科技巨头内部晋升机制正在“扼杀” Kubernetes!
极客程序员“怒斥”:FAANG 科技巨头内部晋升机制正在“扼杀” Kubernetes!
极客程序员“怒斥”:FAANG 科技巨头内部晋升机制正在“扼杀” Kubernetes!
|
Kubernetes API 网络架构
Kubernetes 选举机制 HA
Kubernetes 选举机制 HA
493 1
|
Kubernetes 监控 调度
3个自动伸缩机制,帮你降低Kubernetes的成本
3个自动伸缩机制,帮你降低Kubernetes的成本
210 0
3个自动伸缩机制,帮你降低Kubernetes的成本
|
Kubernetes API 调度
Kubernetes:默认调度器的优先级与Pod 抢占机制
Kubernetes:默认调度器的优先级与Pod 抢占机制
689 0
|
存储 域名解析 Kubernetes
kubernetes Spring Cloud 微服务架构— (3)Kubernetes spring cloud 微服务-Docker 镜像存储机制
第 3 章 Docker 镜像存储机制 本章节是对上章节Docker镜像原理理解的巩固,从Linux系统运行基础到OverlayFS存储机制去了解与分析;在底层,镜像是怎样实现存储的;并且会详细说明存储文件的作用。
136 0
|
存储 Kubernetes API
Kubernetes CRD多版本与升级机制
介绍 在K8s世界,CRD就像是api定义,CRD配套的Operator则是对应的api实现,在系统迭代过程中api会不断的发展,同样的,CRD也会不断的发展,v1alpha1 -> v1alpha2 -> v1beta1 -> v1 -> v2alpha2...,如何在K8s里面让用户轻易得地从低版本升级到高版本是一个十分通用的问题,而正好K8s CRD提供了引入并升
|
存储 Kubernetes 前端开发
一文带你彻底厘清 Kubernetes 中的证书工作机制
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 接触 Kubernetes 以来,我经常看到 Kubernetes 在不同的地方使用了证书(Certificate),在 Kubernetes 安装和组件启动参数中也需要配置大量证书相关的参数。
一文带你彻底厘清 Kubernetes 中的证书工作机制