基于Kubernetes和ker的云平台设计.docxVIP

  • 1
  • 0
  • 约6.49千字
  • 约 13页
  • 2019-10-17 发布于广东
  • 举报
基于Kubernetes和Docker的云平台设计 李万鸿2016-2-25 Kubernetes是Google推出的开源容器集群管理系统,基于Docker 构建一个容器调度服务,为容器化的应用提供资源调度.部署运行. 均衡容灾、服务注册.扩容缩容等功能,本质上可看作是基于容器技 术的mini-PaaS平台,提取PaaS中的业务编排和管理模块而形成的。 部署容器的过程中最大化利用资源是十分重要的,OpenStack. Docker 和Kubernetes组合就可以完美的实现这一点。 Kubernetes和Docker可以运行在物理机上,也可以运行在虚拟 机上。提供pass支撑,对项目的开发、测试、实施运行、运维都提 供极大的便利,是目前最先进的技术,在国内外得到较多的采用,如 google、阿里等。Kubernetes和Docker支持集群服务,自动负载均 衡和提供高可靠的稳定服务。 1分布式系统设计原则 可伸缩性 首先分布式系统一定是大规模的系统,有很好的Scalab订ity。 出于成本的考虑,很多大规模的分布式系统一般采用廉价的PC服务 器,而不是大型的高性能服务器。 没有单点失效 服务器在大规模使用中经常会遇到各种各样的问题,服务器的 硬件不可能是高可靠的,比如Google的数据中心每天都会有大量的 硬盘失效,所以分布式系统一定要对硬件容错,保证没有任何的单 点失效。在这种很不稳定、很不可靠的硬件计算环境下,搭建一个 分布式系统提供高可靠服务,必须要通过软件来容错。分布式系统 针对不允许有单点失效的要求有两方面的设计考虑,一种是服务类 的企业级应用,每个服务后台实例都要有多个副本,一两台硬件故 障不至于影响所有服务实例;另外一种数据存储的应用,每份数据 也必须要有多个备份,保证即使某几个硬件坏掉了数据也不会丢 失。 高可靠性 除了单点失效,还要保证高可靠性。在分布式环境下,针对企 业级服务应用,要做负载均衡和服务发现来保证高可靠性;针对数 据服务,为了做到高可靠性,首先要按照某种算法来把整体数据分 片(因为一台服务器装不下),然后按照同样的算法来进行分片查 找。 数据本地性 再一个分布式设计理念是数据本地性,因为网络通信开销是分 布式系统的瓶颈,要减少网络开销,应当让计算任务去找数据,而 不是让数据去找计算。 弹性伸缩服务 根据用户的业务需求和策略,自动调整其弹性计算资源的管理 服务,以最大限度的降低用户的成本。能够在用户业务增长或下降 时自动调整云主机配f 需要开发基于Kubernetes的Docker管理平台。还需要开发监控 系统,准确及时发现并处理故障,保障平台运维的高效化和自动化, 并利于优化平台及各个应用系统。基于Docker的应用系统需要需要 满足三个要求: 1.由于Docker是无状态的,且会动态飘逸,因此不能存储 1. 会话,Session会话必须单独保存到Redis缓存,供应用 系统共用O 3.2. 同样,Log文件需要远程集中存储,不能存在Docker. 3. 由于Docker的飘逸性,上传文件需要单独保存,不能使 用NAS存储,需要使用Mongodb保存。 公司现有系统迁移到Docker之前,必须从上面3个方面进行修 Docker是一个开源的应用容器引擎,让开发者可以打包他们的 应用以及依赖包到一个可移植的容器中,然后发布到任何流行 的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制, 相互之间不会有任何接口(类似Iphone的App)o几乎没有性能开 销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖 于任何语言、框架包括系统。 2容器系统管理模块设计方案 Internetkubecfg * user comma ndsMinion Internet kubecfg * user comma nds Minion Master Minion Minion 云平台采用Kubernetes开发Docker管理平台,多个应用系统通 过Docker形成集群,Kubernetes可以简单有效地管理各个集群。 Kubernetes的基本单元是Pods,用来定义一组相关的Container。 Kubernetes的优点是可以通过定义一个Replicationcontroller来 将同一个模块部署到任意多个容器中,并且由Kubernetes自动管理。 比如定义了一个 Apache Pod,通Replicationcontroller 设置启 动100个Replicas,系统就会在Pod创建后自动在所有可用的 Minions中启动100个Apache Containero并且轻松的是,当 Container或者是所在的服务器不可用时,Kubernetes会自动通过 启动新的Container

文档评论(0)

1亿VIP精品文档

相关文档