Kubernetes+Federation打造跨多云管理服务

Kubernetes日渐普及,在公有云、私有云等多个环境中部署kubernetes集群已是常规做法,而随着环境的复杂多样和集群数量增长,如何高效地管理这些集群成为新的问题。于是跨多云管理服务应运而生。

华为云高级工程师Fisher在Cloud Native Days China 2019杭州站发表了名为《Kubernetes+Federation打造跨多云管理服务》的议题,介绍了基于Federation的多云管理现状及未来计划。本文整理自Fisher现场分享实录。

大家好,我是华为云的Fisher。今天和大家分享基于Kubernetes+Federation打造跨多云服务。跨多云概念在2018年比较火,相信大家或多或少都听说过,今天主要介绍如何打造跨多云管理,包括公有云和私有云。

首先介绍场景——PAAS混合云典型场景。它的需求第一是高可用,业务负载从集群故障中快速恢复;第二是资源容量溢出,单个集群的扩容速度或者是机房的机器扩容速度跟不上应用扩容速度,利用多云可进行快速扩容;第三是避免厂商绑定,服务只是在一家云厂商里,假如厂商宕机服务就会中断,而在多云上更加保险;第四就是资源池划分,用于私有云和公有云,数据根据敏感程度分布到线上或者线下。

这4个需求,也是跨多云管理服务主要解决的问题。

如上图场景,就是我刚刚所说的私有云和公有云联动的状态。运维人员统一应用交付。对于APP用户来说,是一个平面,可以进行统一访问控制。

V1版本

接下来和大家一起看看Federation项目以及Multicluster SIG的发展历程。

Kubernetes Federation发展历程中,15—17年是前期的V1版本。如下图所示,上面是管理面,下面是被管理的集群。Federated APIServer 兼容Kubernetes的API,通过Federated Controller驱动,将对象同步到各集群。

上图为V1中RepicaSet的配置,把联邦的所有配置信息都写到annotations里,整个创建流程与Kubernetes类似。配置信息先到Federated APIServer,再通过Federated Schduler调度,最后通过Federated Controller把应用创建到各子集群。Federated Schduler会根据各集群的配置比重与集群中资源的使用情况进行综合调度。

这个版本的问题是:

  • 联邦层重新实现K8S API ——导致对象携带许多Federation专属的Annotation;
  • 缺少独立的API对象版本控制——K8S Deployment GA,但是Federation v1中的Deployment仍是Beta;
  • 原封不动映射K8S API——联邦层对象在调度、生命周期管理等方面可做的增强点很受限;

V2版本

Federation V2版本,吸取V1的教训做了很多改进。架构上采用了流行的CRD+Controller模型,其可以运行在任意Kubernetes集群中。把Federation专用的Annotation剥离出来作为独立的API对象,通过CRD来定义,将K8S对象封装到Federation API对象里,这样不会影响Federation层API的演进。

V2版本整体架构如上图,有4种类型的CRD:CLuster,Type,Schedule,DNS。

Cluster configuration

首先看集群注册,通过Kubefed2 join向联邦添加集群,Controller读取集群的Context信息,转化为Cluster Registry项目定义的Kubernetes Cluster API并保存。Cluster Registry项目对Cluster API对象标准化和增强,将作为后续多集群发展的基础模块,管理了member集群的API Endpoint及认证信息等。

Type configuration

再介绍一下Type Configuration,其定义了Federation可以处理哪些资源对象(在v1版本中靠独立APIServer来过滤),例如使Federation处理Deployment,就创建一个Deployment Type Configuration,其中包含三个比较重要的点:

① Template:Federated API 中封装的K8S对象

② Plocement:配置对象实例分布到哪些集群

③ Overider:指定集群中的特定字段定制化,用于解决不同的云厂商之间的配置差异。

Schedule

调度的关键是配置了集群的比重,比重决定了调度时实例的分布。主要分为按权重分配和按资源利用情况分配。

MultiClusterDNS

上图是服务发现—Multicluster DNS。服务发现主要基于Federation的设计规则,即认为多个集群之间的网络不一定是通的,因此现在主要是把服务发现的规则配置在华为的DNS服务器上,多个集群通过DNS实现服务发现。

未来计划

后续我们打算结合Istio实现K8S多云上多集群的流量治理。第一种方案如下图,这要求底层是互通的,只需部署一个Istio控制面,就可以watch所有集群的Service。目前这个方案的限制还比较多,因为不同集群的Service网段不能冲突,现阶段方案还在规划中。

Istio还有如下图所示的另外一种方案:每个集群都部署一个Istio控制面板,把其他集群的服务配置成本集群的外部服务,跨集群群服务类似Istio访问外部服务,显然配置是比较繁琐的,当前也在规划中。

相关服务请访问:https://support.huaweicloud.com/cce/index.html?utm_content=cce_helpcenter_2019

原文地址:https://www.cnblogs.com/CCE-SWR/p/10678562.html

时间: 2024-08-03 05:01:51

Kubernetes+Federation打造跨多云管理服务的相关文章

多云管理助力企业数字化转型已成必然

云计算经过10多年的发展已经从概念到务实.从落地到应用,进入了一个爆发期,全面云化的时代正在到来,云计算作为数字化转型的重要支撑技术,可降低IT复杂性.缩短交付时间,让业务更加敏捷,同时提升资源利用率,有效改善IT成本结构.在云计算的基础上,更孕育了大数据.人工智能.物联网等数字化创新应用的发展.因此,企业应用云化,采用云服务来加速数字化转型是必然的方向,且已经成为各行各业的共识.企业IT在采用云服务的过程中需考虑多种因素,包括时间.成本.性能.高可用.性价比.合规性.安全风险.法律遵从以及关键

IBM推出新一代云计算技术来解决多云管理

IBM 云计算论坛在南京举行,推出了一项全新的开放式技术,使用户能够更加便捷地跨不同云计算基础架构来管理.迁移和整合应用. IBM 多云管理解决方案(Multicloud Manager)控制面板 据了解,IBM 新推出的多云管理解决方案(Multicloud Manager)运行在 ICP 平台(IBM Cloud Private)上.该平台基于 Kubernetes 容器技术构建,这是一种在容器中"打包"应用程序的开源技术,能够使企业更加便利和经济地同时管理在本地部署和公有云上的企

IBM、BMC、HP集体缺席的云管理服务,是数字化转型新思维

2017年,Gartner首次发布了公共云基础设施托管服务提供商年度魔力象限(简称:云管理服务商,MSP).所谓云管理服务商,是指为一家或多家超大规模的公共云服务商,包括亚马逊AWS.微软Azure和谷歌云GCP等,提供与基础设施和平台运维有关的托管服务及专业服务.Gartner认为云MSP对于公共云产业来说十分重要,这是因为日异复杂而繁多的公共云产品,客户十分需要有专业知识与经验的第三方服务商的帮助. 仅从Gartner于2017年才首次推出云MSP魔力象限,就可知云MSP是一个非常新的市场,

K8S中如何跨namespace 访问服务?为什么ping不通ClusterIP?

1.K8S中如何跨namespace 访问服务? 2.在Pod中为什么ping不通ClusterIP? 简述: ??????? Rancher2.0中的一个用户,在K8S环境中,创建两个namespace,对应用进行分割管理,在一个namespace的pod中,如何访问另一个namespace中的服务?--K8S使用kube-DNS实现服务发现功能的,可以通过DNS名称访问服务名. ??????? 在K8S中,部署一个带ClusterIP的服务,供集群内部网络访问.为什么这个ClusterIP无

为跨云管理而生:行云管家助力企业高效管理云资源

随着云成为越来越多企业不可或缺的IT基础设施,为了满足不同的业务需求,许多企业存在多云并存的局面.而多云带来的问题也显而易见,包括多种云平台难以统一管理,资源运维效率大幅降低,企业成本居高不下等. 在这样的环境之下,要想让企业高效管理云计算资源,实现易上云.用好云.管好云的目标,一套运维简单.可一站式管理的跨云管理解决方案就显得尤为重要,由此,行云管家云管平台应运而生. 作为针对跨云管理量身打造的一站式解决方案,行云管家为企业提供了以下功能: 1.多云纳管.混合式管理 支持业界主流的公有云厂商和

Kubernetes V1.17开启 拓扑感知服务路由

Kubernetes V1.17开启 拓扑感知服务路由 1.名词解释: 拓扑域:表示在集群中某个节点,可操作区域,也就是拓扑域名. Endpoint: IP-Port 一般来说是Node当中pod的ip+port. Service:一组依靠labelselector的pod,起到流量均衡分发管理的作用. 2.给所有组件打开ServiceTopology和Endpointslice 集群版本在V1.17以上 Kube-proxy 以iptables或IPVS模式运行(alpha阶段暂时只实现这两种

基于kubernetes构建Docker集群管理详解-转

http://blog.liuts.com/post/247/ 一.前言        Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.动态扩缩容等功能套件,目前最新版本为0.6.2.本文介绍如何基于Centos7.0构建Kubernetes平台,在正式介绍之前,大家有必要先理解Kubernetes几个核心概念及其承担的功能.以下为Kubernetes的架构设计图:1. Pods        在Kuberne

【配置CDH和管理服务】关闭DataNode前HDFS的调优

配置CDH和管理服务 关闭DataNode前HDFS的调优 角色要求:配置员.集群管理员.完全管理员 当一个DataNode关闭,NameNode确保每一个DataNode中的每一个块根据复制系数(the replication factor)跨集群仍然是可用的.这个过程涉及到DataNode间小批次的块复制.在这种情况下,一个DataNode有成千上万个块,关闭后集群间还原备份数可能需要几个小时.关闭DataNode的主机之前,你应该首先调整HDFS: 1.提高DataNode的堆栈大小.Da

七牛融合 CDN 管理服务上线,携手 oschina 社区送券福利升级!

为解决单一CDN存在的质量.稳定性.服务不透明等问题,七牛特别推出融合CDN管理服务,全面覆盖各种宽带线路的同时,真正做到对CDN有控制能力的整合,以及全面的监控与分析.帮助开发者根据使用场景选择最优的加速线路,在用户之前发现问题,并及时解决问题,确保体验的流畅不间断. 马上体验,请点击这里 借此之机,七牛特携手Ruby China社区,给大家派送福利,放送七牛价值200元现金券30张.见者有份,先到先得. 最后,感谢广大开发者一直以来对七牛的支持,七牛也将继续努力,不断完善产品,为大家提供功能