k8s与caas--容器云caas平台的落地实践

前言

在移动互联网时代,新的技术须要新技术支持环境、新的软件交付流程和IT架构,从而实现架构平台化,交付持续化,业务服务化。容器将成为新一代应用的标准交付件,容器云将帮助企业用户构建研发流程和云平台基础设施。缩短应用向云端交付的周期,下降运营门槛。加速向互联网技术和业务的双转型。容器云将对接各种代码托管库,实现自动化持续集成和DOCKER镜像构建,为新一代应用交付和开发运维一体化奠基了基础。容器云将支持应用的一键式部署交付,提供负载均衡,私有域名绑定,性能监控等应用生命周期管理服务。是微服务架构,轻量级应用部署和运维的理想平台。将来IT界会以容器化应用做为交付的标准。容器云为开发者和企业提供了一个快速构建、集成、部署、运行容器化应用的平台,从而提升应用开发的迭代效率,简化运维环节,下降运维成本。
对于企业来讲,容器云价值体如今:算法

  1. 做为内部技术纽带,多应用统一部署平台,提升开发效率,减小运维成本。
  2. 平台产品化过程当中,投入少且产出价值高。可依托现有的IaaS平台资源,相对于传统的承接项目获益的方式,容器云会积累宝贵的客户资源及数据资源,这些无形资产最终会为公司赢得巨大战略价值。
  3. 增长云企业辨识度,若是只具备IaaS层服务的云平台是不完整的,对用户的云服务是不充分的,应该具备为用户提供全方位的云服务体系,应该具备先进且高附加值的云平台。

应用功能架构

基于Kubernetes实现的容器云平台,就功用而言能够分为四大部分:sql

  1. 自动化容器的部署、升级和复制;
  2. 随时扩展或收缩容器规模,实现容器的弹性扩展;
  3. 以集群的方式运行、管理跨机器的容器,而且提供容器间的负载均衡;
  4. Kubernetes的自我修复机制使得容器集群老是运行在用户指望的状态。

将来容器云也可能会成为云管理平台的统治者,也还会有更多的应用在容器云上原生运行起来。由于对于容器云,它能够把不少分散的物理计算资源抽象成一个大的资源池,利用这些资源来执行用户的计算任务。对于用户来讲,操做一个分散的集群资源就像在使用一台计算机。人工智能的集中式爆发,机器学习的训练过程对于快速迭代的高要求,让可以轻量级接入,而且能够对用户提供秒级响应的容器云发挥了巨大的优点。师出同门的Google Tensorflow项目很早也进行了与Kubernetes的集成,人工智能平台上实现了Spark on Kubernetes和 Hadoop on Kubernetes。不管是容器技术,仍是DevOps和微服务,都说明灵活、弹性、轻量化的IT应用模式逐渐造成。而这种模式的造成对于复杂产品的快速开发有着积极意义,谷歌等IT巨头对产业的贡献,让初创企业与大型IT企业之间的差距缩短,迎来最好的IT时代。容器云架构方案,具备六大功能模块,每一个部分包含对应的容器技术栈。具体架构以下数据库

图片描述

存储方案

后端存储主要采用 Ceph 驱动。Ceph 独一无二地用统一的系统提供了对象、块、和文件存储功能,它可靠性高、管理简便、而且是自由软件。 Ceph 的强大足以改变贵公司的 IT 基础架构、和管理海量数据。 Ceph 可提供极大的伸缩性——供成千用户访问 PB 乃至 EB 级的数据。 Ceph 节点以普通硬件和智能守护进程做为支撑点, Ceph 存储集群组织起了大量节点,它们之间靠相互通信来复制数据、并动态地重分布数据。Ceph在容器云中主要应用场景是有状态服务。包括关系型数据库和nosql数据库等数据须要持久化的业务。后端

网络方案

图片描述
底层容器网络咱们最初使用的是Calico。 Calico基本架构图 Calico是一个纯三层网络,没有引入一个DP,没有封包。在主机内部作另一个容器,能够三条到达终端,你能够知道是谁出了问题,调试的时候很容易,很好管理。容器内的应用数据传出来,和二层彻底隔离,对于咱们绝大多数的应用来说只须要三层就够了,不多有应用处理二层。并且Calico支持丰富的网络策略,能够实现多租户管理,对于将来对外提供容器云服务相当重要。网络

容器编排方案

Kubernetes是谷歌开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的开源版本,主要功能包括:架构

  • 1.基于容器的应用部署、维护和滚动升级
  • 2.负载均衡和服务发现
  • 3.跨机器和跨地区的集群调度
  • 4.自动伸缩
  • 5.无状态服务和有状态服务
  • 6.普遍的Volume支持
  • 7.插件机制保证扩展性

Kubernetes发展很是迅速,已经成为容器编排领域的领导者。Kubernetes提供了不少的功能,它能够简化应用程序的工做流,加快开发速度。一般,一个成功的应用编排系统须要有较强的自动化能力,这也是为何 Kubernetes 被设计做为构建组件和工具的生态系统平台,以便更轻松地部署、扩展和管理应用程序。用户可使用Label以本身的方式组织管理资源,还可使用Annotation来自定义资源的描述信息,好比为管理工具提供状态检查等。此外,Kubernetes控制器也是构建在跟开发人员和用户使用的相同的API之上。用户还能够编写本身的控制器和调度器,也能够经过各类插件机制扩展系统的功能。这种设计使得能够方便地在Kubernetes之上构建各类应用系统。目前整个kubernetes集群采用高可用部署,架构以下图: 负载均衡

图片描述

性能监控方案

容器监控的对象主要包括 Kubernetes 集群(各组件)、应用服务、Pod、容器及网络等。这些对象主要表现为如下三个方面: 1.Kubernetes 集群自身健康状态监控(5个基础组件、Docker、Etcd、Calico等) 2.系统性能的监控,好比:CPU、内存、磁盘、网络、filesystem 及 processes 等; 3.业务资源状态监控,主要包括:rc/rs/deployment、Pod、Service 等; 针对容器的总体运行情况及性能情况监控,采用了自研的监控系统实现总体IT资源的统一监控。运维

日志收集方案

容器平台的日志系统通常包括:Kubernetes 组件的日志,资源的事件日志及容器所运行的应用的日志。本容器云平台,使用fluentd(以DaemonSet的方式启动)来收集日志,并将收集的日志发送给统一日志平台。机器学习

CI/CD方案

CI/CD(持续集成与部署)模块肩负着 DevOps 的重任,是开发与运维人员的桥梁,它实现了业务(应用)从代码到服务的自动上线,知足了开发过程当中一键的持续集成与部署的需求。本容器云平台,对接持续集成&发布系统。除此以外,实现服务扩缩容,弹性伸缩(HPA)、负载均衡、灰度发布等,也加入了代码质量检查(Sonar)、自动化测试及性能测试插件等,这些都是 CI/CD PaaS 平台的重要组成部分。nosql

云平台功能

经过可视化界面,能够简单方便的实现对资源的部署、管理与监控,包括:资源编排。能够实现如下功能: 1.全面监控:主机、路由器、硬盘、公网IP、负载均衡器都具有完整全面的历史监控和实时监控信息。 2.开放式的图形化操做: 直观展现主机及其相关资源,并能够直接操做图形,全部改动自动更新。 3.操做日志记录: 记录下用户全部重要操做历史,方便定位和查找。 4.网络拓扑结构展现: 用图形展现复杂的网络拓扑结构,链接私有网络和主机更加方便直观。 5.备份链可视化操做: 对于备份各节点一目了然,同时可直接操做新建备份及回滚到以前的状态。 6.自动伸缩策略: 根据资源监控信息定义自动伸缩策略,调节资源配置或集群规模,无需人工介入。 7.通知列表: 用于接收监控告警通知、定时器任务或自动伸缩策略的执行结果。 8.快速的系统构建: 使用资源编排,能够在短短几分钟内迅速复制一套已存在的拥有复杂拓扑的系统;或者迅速规划您的系统架构并评估成本;还能够实现资源拓扑的跨区域复用。 9.丰富的模板建立方式: 在控制台中,用户能够从无到有构建模板;也能够从系统推荐的常见模板入手建立,或基于已经建立的模板继续完善;还能够将已经存在的资源抽取出一套拓扑关系成为模板。

总结

caas平台衍生出来的整个devops体系是相当重要的。最终实现打通日志,监控和apm数据,算法实现根因分析,也就是AIOPS。可以快速定位故障。快速反馈到运维和开发,造成一个闭环。Gartner定义的AIOps平台拥有11项能力,包括历史数据管理( Historical data management) 、流数据管理( Streaming data management )、日志数据提取( Log data ingestion) 、网络数据提取( Wire data ingestion )、算法数据提取( Metric data ingestion )、文本和NLP文档提取( Document text ingestion )、自动化模型的发现和预测( Automated pattern discovery and prediction )、异常检测( Anomaly detection )、根因分析( Root cause determination )、按需交付( On-premises delivery )和软件服务交付( Software as a service )等。固然这是后续和正在作的工做。

相关文章
相关标签/搜索