Kubernetes容器云平台技术方案

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

  1. 作为内部技术纽带,多应用统一部署平台,提高开发效率,减少运维成本。

  2. 平台产品化过程中,投入少且产出价值高。可依托现有的IaaS平台资源,相对于传统的承接项目获益的方式,容器云会积累宝贵的客户资源及数据资源,这些无形资产最终会为公司赢得巨大战略价值。

  3. 增加云企业辨识度,如果只具有IaaS层服务的云平台是不完整的,对用户的云服务是不充分的,应该具有为用户提供全方位的云服务体系,应该具有先进且高附加值的云平台。

应用功能架构

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

  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的开源版本,主要功能包括:

  • 基于容器的应用部署、维护和滚动升级

  • 负载均衡和服务发现

  • 跨机器和跨地区的集群调度

  • 自动伸缩

  • 无状态服务和有状态服务

  • 广泛的Volume支持

  • 插件机制保证扩展性

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 平台的重要组成部分。

云平台功能

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

总结

CaaS平台衍生出来的整个DevOps体系是至关重要的。最终实现打通日志,监控和APM数据,算法实现根因分析,也就是AIOPS。能够快速定位故障。快速反馈到运维和开发,形成一个闭环。

来源:https://yq.aliyun.com/blog/679975

Kubernetes全栈技术培训

技术交流

学无止境,了解更多关于kubernetes/docker/devops/openstack/openshift/linux/IaaS/PaaS相关内容,想要获取更多资料和免费视频,可按如下方式进入技术交流群

微信:luckylucky421302

按如下指纹可关注

往期精彩文章

kubernetes全栈技术+企业案例演示【带你快速掌握和使用k8s】

突破运维和开发瓶颈、Python、k8s、DevOps转型一网打尽!

python运维开发实战-基础篇

python运维和开发实战-高级篇

python运维和开发实战-安装和创建Django项目

谈谈我的IT发展之路

Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档

k8s1.18多master节点高可用集群安装-超详细中文官方文档

linux面试题汇总

python运维和开发实战-安装和创建Django项目

Docker公司禁止被列入美国"实体名单"的国家、企业使用

Jenkis pipeline构建项目实践-编写podTemplate实现和k8s对接

安装kubernetes集群-灵活安装k8s各个版本高可用集群

Kubernetes v1.19 正式发布

高效的Nginx负载均衡器

5个维度对 Kubernetes 集群优化

什么是架构师?

QPS、TPS、并发用户数、吞吐量关系

kubernetes面试题汇总

DevOps视频和资料免费领取

kubernetes技术分享-可用于企业内部培训

谈谈我的IT发展之路

kubernetes系列文章第一篇-k8s基本介绍

kubernetes系列文章第二篇-kubectl

了解pod和pod的生命周期-这一篇文章就够了

Kubernetes中部署MySQL高可用集群

k8s中蓝绿部署、金丝雀发布、滚动更新汇总

运维常见问题汇总-tomcat篇

关于linux内核参数的调优,你需要知道

kubernetes挂载ceph rbd和cephfs

报警神器Alertmanager发送报警到多个渠道

jenkins+kubernetes+harbor+gitlab构建企业级devops平台

kubernetes网络插件-flannel篇

kubernetes网络插件-calico篇

kubernetes认证、授权、准入控制

限制不同的用户操作k8s资源

面试真题&技术资料免费领取-覆盖面超全~

Prometheus监控MySQL

Prometheus监控Nginx

Prometheus监控Tomcat

linux面试题汇总

测试通过storageclass动态生成pv

通过编写k8s的资源清单yaml文件部署gitlab服务

helm安装和使用-通过helm部署k8s应用

k8s基于Ingress-nginx实现灰度发布

k8s的Pod安全策略

Prometheus Operator-上篇-安装和使用篇

Prometheus Operator-下篇

通过kubeconfig登陆k8s的dashboard ui界面

通过token令牌登陆k8s dashboard ui界面 

kubernetes集群的etcd数据库详细介绍

Linux网络流量监控工具

kubernetes搭建EFK日志管理系统

prometheus operator监控k8s集群之外的haproxy组件         

kubernetes ConfigMap存储卷      

Python采集linux服务器数据在Django Web界面展示

基于Kubernetes的GPU类型调度实现    

容器日志管理的最佳实践    

Kubernetes 数据库 Etcd 日常运维及技巧    

一文详解 LVS、Nginx 及 HAProxy工作原理       

一篇文章全面了解运维监控知识体系

                        - END -

Kubernetes全栈技术培训

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值