容器 PaaS 新技术架构下的运维实践
2018年11月16-17日,运维&容器技术盛会 CNUTCon 全球运维技术大会在上海·光大会展中心成功举办。时速云联合创始人兼 CTO 王磊受邀参加此次大会,并发表主题演讲。
王磊此次演讲的题目为《容器PaaS 新技术架构下的运维实践》,详细为大家讲解了在基于 Docker +Kubernetes 构建容器 PaaS 的过程中,如何以应用为中心,通过新的技术、工具对服务、节点、集群、平台等多个方面进行管理运维,提高系统的自动化运维能力。同时结合基于容器PaaS 构建 DevOps、微服务产品的实践经验,分享如何在简化DevOps 工具和微服务框架本身的同时,提高其可用性和简化运维管理的成本。
王磊认为,随着容器技术的普及落地,容器 PaaS 平台成为了企业云计算战略或云平台建设中不可或缺的部分;同时,容器技术也推动了DevOps 和微服务的逐步标准化和深入发展,容器 PaaS已经成为这些新理念、新技术、新框架的理想支撑平台。但在容器 PaaS 新技术架构落地过程中,企业和运维人员还面临着如下挑战:
- 新技术、新理念带来的学习成本
- 技术生态的飞速发展带来的复杂性以及如何保证其稳定性
- 管理高密度、快速变化的运行时环境的复杂性
- 如何在新技术架构下提高自由度和创新能力
- 如何进行跨中心的开发协作 – DevOps
- 微服务架构下的平台支撑及运维
我们先来看一下基于 Kubernetes 的容器 PaaS 平台有哪些运维的主要方式,这里从用户服务、节点、集群、平台自身运维几个角度分别介绍。
用户服务运维的手段,主要包含以下几点:
- 所在节点故障,自动迁移 - 设置合适的驱赶时间
- 设置探针,防止容器中服务无响应时带来的故障
- 合理设置探针各项参数,滚动升级时保障服务不中断
- 使用PodDisruptionBudget服务可用性、PodSecurityPolicy安全性、定义 PriorityClass优先级
- 通过服务分布及各项资源使用情况,打散热点进行重新调度
- 根据服务的状态、重启次数等数据及持续时间告警
- 根据服务日志匹配策略、频率告警
- 结合 ConfigMap与 gitlab的配置版本控制
- 把调试工具交给用户
- 服务操作审计、事件统一管理
同时对于数据中间件的支撑,可以通过 CRD 和自定义 operator 的方式来对不同的中间件集群进行部署运维等操作。包括集群的创建维护,数据的备份恢复,存储的扩容等,都可以通过不同的 CRD 及 controller 的方式进行实现,既要保证服务的可用性,又要保证数据的安全性。
集群节点的运维,可以从以下几点考虑并灵活运用:
- 主要资源指标监控、告警
- Node affinity /taint
- 镜像、容器gc 策略
- 扩展节点设备类型- ListAndWatch / Allocate
- 节点维护状态
- 时间同步
- 节点故障、自定义 agent 上报异常情况
节点资源不足时的处理
驱赶策略 节点 OOM 行为 最佳实践(预留资源、服务QoS、DaemonSet)
对于 Kubernetes 集群的运维,主要从集群高可用、联邦集群、资源管理、配额管理,集群的运维工具、清理工具等方面进行了介绍。同时,在不同的底层 IaaS 平台基础上,还可以充分发挥 IaaS 的一些能力来简化或者改善容器 PaaS 的运维工作。随着 Kubernetes 自身的快速迭代,升级也就成了不得不考虑的一方面,目前我们提供两种升级路径,in-place或者 data migration,分别适合小版本升级和跨度较大的版本升级。
同时,对于整个平台的监控、运维,我们开发了一个独立的、易于部署的监控平台,用来对开发测试镜像仓库,生产镜像仓库、PaaS 平台、各类 API 服务、K8s 集群及其核心组件、各节点组件等进行统一状态收集,可以监控相关服务的状态,也可以对历史状态和异常情况进行回溯,从整体上考量每个组件的服务质量。
对于平台的运维,当然也要考虑到对数据的备份和恢复,以便在某些场景下对数据进行回滚操作。我们的容器 PaaS 上也提供了平台、集群相关的数据定时备份及恢复管理,可以把平台的 MySQL 数据及每个集群的 etcd 数据进行统一管理,也允许接入自定义备份源,实现对数据的统一管理。
接下来,介绍一下我们如何基于 Kubernetes 构建自己的 DevOps 平台。首先说一下时速云对自己的 DevOps 平台的期望:
- 可以更简单的同其它 DevOps 或者第三方工具集成
- 用户的 DevOps 需求比较多样,需要有更好的定制能力
- 更容易安装、运维、扩展和伸缩
- 减少客户和公司内部的学习成本
- 同 PaaS 平台保持一致的用户体验和数据一致性,充分发挥 PaaS 平台已有的能力
- 帮助自己的 PaaS 和微服务治理产品实现更好的 DevOps 能力
整体 DevOps 平台的基本架构如下,通过自定义 CRD 和 operator 来对构建任务进行管理,日志的收集、监控告警、节点管理、构建资源的伸缩、配额管理、权限控制都可以同PaaS 层的能力相一致,同时可以利用 PaaS 上的 Pod、Job、CronJob、Volume、ConfigMap、Secret 等诸多资源的能力,在持续集成、持续交付、持续部署等方面进行创新。未来 PaaS 层的新功能、功能改善,都可以直接适用于 DevOps 平台,大大降低了 DevOps 的开发和运维成本。
接着,我们来看一下如何在 DevOps平台上实现 CI/CD的一些例子:
- 实现 docker 镜像的构建
- 如何对构建中的产出物进行管理(war 包、jar 包等)
- 实现 Gitlab/Jenkins/Sonar 等工具的集成
- 人工审核任务
- 实现 Gitlab/Harbor/Jira 等工具的集成
最后,再分享一下如何在容器 PaaS 的新技术平台上更好的支撑位服务治理框架。主要包括如何对跨部门、跨中心的微服务协同开发进行支撑,如何减少微服务框架和 PaaS 平台之间的能力冲突,使彼此更好的融合。
在 Spring Cloud 和 K8s融合方面,可以使用 Spring Cloud开源的依赖项目,使用 K8s自身的服务发现、配置管理等相关能力;同时为了方便管理运维,我们将 Zuul 的路由配置使用数据库进行持久化,将 Zipkin 的调用链数据和 Hystrix 的熔断监控数据分别进行了持久化,以便随时对历史数据进行回溯;也可以直接在微服务治理平台上动态配置熔断策略或者开启降级操作。
在 Dubbo 和 K8s 融合方面,我们在 K8s 上进行了扩展,并对 Dubbo 的依赖包进行定制,替换了 zookeeper,使用 k8s 作为服务发现和注册中心,并支持 dubbo consumer 和 provider 之间通过 K8s 的 service 或者 pod ip 进行通信,用户可以根据自己的需求选择使用服务端负载均衡还是 Dubbo 的客户端负载均衡。
综上,我们一直致力于打造具备可靠、简单、自动化、集成扩展、协作等特点的容器PaaS、DevOps 和微服务治理平台,希望可以让用户更快捷、安全的进行云原生应用的实践与创新,未来我们也会继续在自动化、智能化运维以及引入适合于 容器 PaaS 的 ChatOps 上继续自己的努力。
容器 PaaS 新技术架构下的运维实践相关推荐
- 微服务架构下的运维知识体系
微服务架构下的运维知识体系 基础设施与应用的标准化 微服务技术体系下的应用指的是以什么呢? 软件架构服务化的过程,就是我们根据业务模型进行细化的过程,在这个过程中切分出一个个具备不同职责的业务逻辑模块 ...
- 魅族容器云平台基于Kubernetes自动化运维实践
作者简介: 曾彬 阿里巴巴 高级技术专家 互联网老兵,十多年的基础架构经验,曾在支付宝.爱立信.魅族等担任系统架构师,从事过 Linux 内核开发,Java 中间件.SOA 应用框架的设计实现.云平台 ...
- 浅谈SDN架构下的运维工作
目前国内的网络运维还处于初级阶段,工作人员每天就像救火一样,天天疲于奔命.运维人员只能埋头查找系统运行的日志,耗时耗力,老眼昏花不说,有时候忙了半天还一无所获,作为运维工程师的你,有木有遇到过类似苦逼 ...
- 聚美优品张川:如何搭建秒杀场景下的运维架构
2016年8月12日-13日,由CSDN重磅打造的互联网应用架构实战峰会.运维技术与实战峰会将在成都举行. 这是继SDCC 2016架构技术峰会(上海站,官网.图文直播.架构峰会PPT.数据库峰会PP ...
- 云原生背景下的运维价值思考与实践
作者:刘天斯,腾讯游戏高级工程师 前言 随着公司自研上云战略如火如荼地进行,IEG-增值服务部作为较早一批响应的团队,截止目前自研上云已完成1/3的流量切换,日PV超百亿.切云的服务大量采用了云原生的 ...
- 架构设计 - 自动化运维之架构设计六要点
运维自动化是我们所渴望获得的,但是我们在一味强调自动化能力时,却忽略了影响自动化落地的一个关键因素.那便是跟运维朝夕相处,让人又爱又恨的业务架构. 因为业务架构是决定运维效率和质量的关键因素之一,所以 ...
- linux框架下搭建orl,DevOps和自动化运维实践/Linux\Unix技术丛书
导语 内容提要 随着云计算.Docker.Kubernetes技术的流行,相信大家经常会听到"容器云"这个专业词汇,容器技术的兴起,对于传统的运维知识体系而言也是一种冲击和挑战.& ...
- 龙图 VP 李翀:数据化运营及云计算下的运维
文 | 龙图 VP 李翀 原文地址:当游戏遇上大数据和云计算--谈数据化运营及云计算下的运维 龙图做了8年的游戏,真正快速发展起来是在移动互联网这个时代.随着刀塔快速的扩张,我们在各个领域都遇到了非常 ...
- MySQL异步复制延迟解决的架构设计与运维架构ppt
<MySQL异步复制延迟解决的架构设计与运维架构ppt> 下载地址:网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731216.html
最新文章
- java bean 绑定,在 Java 应用程序中绑定 Bean 和数据
- 算法之排列与组合算法
- mysql 1个月多少天_在MySQL日期间隔中,1个月是否与30天相同? 1个季度与3个月相同吗?等等?...
- 超级账本(Hyperledger Fabric):基本架构及运作机制
- [线性代数]Note3--乘法和逆矩阵
- 05_HttpClient_模拟登陆
- MySQL运维常用系统命令
- 原生js实现浏览器全屏和退出全屏
- 《软件测试与质量保证》期末复习重点
- 模式实例之——单件模式实例
- 《R数据可视化手册》——3.8 绘制百分比堆积条形图
- 数据库大作业——基于C#和SQL Server的简单日常记账系统
- Servlet JSP 面试题
- Go语言查缺补漏ing Day1
- 伤我最深,记得最真的句子:QQ伤感日志
- java 类 模型_JVM之Java对象模型
- 数据库拆分:横向拆分和纵向拆分
- java指令工具_jvm 指令工具 jcmd 命令(Java多功能命令行)
- Redis第六讲 Redis之List底层数据结构实现
- 【耀杨的前世今生】耀杨的毕生所学——《狗叫江湖》之“葫芦给学习法”(1)