AirJD 焦点
  • 本月热门
AirJD

没有录音文件
00:00/00:00
加收藏

基于 kubernetes 的企业级容器云

发布者 kernal
发布于 1492609656331  浏览 7184 关键词 虚拟化 
分享到

第1页

基于kubernetes的企业级容器云

周彩钦 | 联想PaaS团队资深工程师

2017/04/18



第2页

2016 Lenovo Internal. All rights reserved.





第3页

大纲

• 背景和挑战 • 企业级容器云设计与思考 • 让一切自动化 • 监控与日志 • Showcase • 那些坑,那些事



2017 Lenovo Internal. All rights reserved.





第4页

背景和挑战

• IT环境比较复杂 • 集中运维模式,人少活多 • 应用类型比较复杂 • 缺少标准和规范



2017 Lenovo Internal. All rights reserved.





第5页

背景和挑战

• 内部系统演进



脚本化

每个项目自维护 难以规范和升级



工具化

抽象成工具 模板化 一键化 零散,不成体系



平台化

多个工具集成 最佳搭配 合力作战



2017 Lenovo Internal. All rights reserved.





第6页

背景和挑战

• 挑战

依然不够自动化

服务割裂,申请流程 人工参与的半自动化

资源使用率低

底层资源使用率低



规范落地困难

系统分散,难以统一

自服务平台

高效协作,加速迭代



2017 Lenovo Internal. All rights reserved.



第7页

背景和挑战

• 容器之道



加速 交付



节约 资源



统一 规范



构建 平台



2017 Lenovo Internal. All rights reserved.





第8页

企业级容器云设计与思考

• 设计思路

从成本方面衡量

资源利用率,人力成本,投入产出比

从长远技术方向考虑

未来方向,新技术潮流,公司战略



从需求出发

需求驱动,勿求大而全,没有银弹

从用户的角度思考

简单,学习成本低,改变成本小

从技术的角度评估

高效,稳定,可扩展



2017 Lenovo Internal. All rights reserved.



第9页

企业级容器云设计与思考

• 技术的抉择



2017 Lenovo Internal. All rights reserved.



Console

前端

用户界面



Router



Console

后端

后端Restful API



路由 API Gateway



Builder

镜像构建





第10页

容器云设计--多集群支持的容器云

• What?

– 多个K8S容器云集群统一管理

• Why?

跨数据中心

技术和管理难度大

2 混合基础架构 物理机,VMWare,OpenStack,AWS,Azure

统一用户体验

多集群统一管理,无需切换平台系统



2017 Lenovo Internal. All rights reserved.





第11页

容器云设计--多集群支持的容器云

• 多集群,一平台



Builder



K8S-1



Router1



2017 Lenovo Internal. All rights reserved.



Console Front End

Dev/Ops/Admin



Console Back End



Registry



K8S-2



Router2



End User



第12页

容器云设计—网络和路由

• 网络方案及路由设计—简单,低侵入



Create Service app01

Console



Dev/Ops



2017 Lenovo Internal. All rights reserved.



app01.xpaas.lenovo.com Flannel网络

Router

User



K8S Service



Pod Pod



DNS

*.xpaas.lenovo.com Router IP



Service Name app01.xpaas.lenovo.com app02.xpaas.lenovo.com





K8S Cluster IP 172.19.228.1 172.19.228.2







第13页

容器云设计—部署和回滚



• 部署流程 or 回滚流程

console

• 配置请求 • 部署请求



Deployment StatefulSet





kubernetes

• 部署服务





2017 Lenovo Internal. All rights reserved.



builder

• 准备构建环境 • 生成Dockerfile • Build镜像 • Push镜像



Docker Registry





第14页

容器云设计-- DevOps的支持

• 常用DevOps工具的支持,快速融入现有开发体系



Push



Web Hook



Upload



XPlatform



Console Restful

API



K8S-1 K8S-2



2017 Lenovo Internal. All rights reserved.



第15页

2017 Lenovo Internal. All rights reserved.



容器云设计– 存储方案

• 存储方案选择,主要给服务组件提供服务,如MySQL,Redis等



需求

数据持久化

数据共享



存储技术

RBD

对象存储 S3/FastDFS/TFS



使用方案

K8S Dynamic Provisioning StorageClass

应用自己管理





第16页

容器云设计-- 企业权限设计

• 功能权限:允许或拒绝用户使用系统提供的某个功能



2017 Lenovo Internal. All rights reserved.



功能/资源 修改系统配置 增加服务模板 创建服务



角色



用户



*



* Admin



*



* user01



OPS



user02



User





第17页

容器云设计-- 企业权限设计

• 业务权限/数据权限:允许或拒绝用户进行某个数据的增删改查操作



Project



删 增



Owner Master



Service



改 查



Developer Guest



2017 Lenovo Internal. All rights reserved.





第18页

让一切自动化--工欲善其事,必先利其器

• 从设计开始之初就把自动化理念融入进来 • 充分利用Docker的优势,加速平台的迭代 • 配置即代码



集群安装运维自动化 组件安装运维自动化 服务部署上线自动化



环境安装 配置管理 部署上线



2017 Lenovo Internal. All rights reserved.





第19页

监控与日志

• 监控:传统监控+新监控平台

Applications

Docker Kubernetes

OS CPU/Disk/Memory



2017 Lenovo Internal. All rights reserved.





第20页

监控与日志

• 日志平台:多种采集手段并行



stdout stderr



Applications



log tail K8S Pod LogMinion



Docker



stdout stderr



K8S DaemonSet logspout



Kubernetes OS



log tail

K8S DaemonSet



2017 Lenovo Internal. All rights reserved.



Console



Kibana



Kafka Cluster



ES Cluster

Log Parser





第21页

Showcase

• 平台主要功能特点

– 多集群管理 – 自服务式应用发布和上线部署 – 应用快速Scale Out – 应用滚动更新 – 集群容器登陆 – 应用日志查看 – 支持MySQL/Redis等常用组件服务市场



2017 Lenovo Internal. All rights reserved.





第22页

Showcase

• 部署示例:配置简单,自服务

上传包 打包镜像并部署完成部署上线 配置应用 选择应用类型/模板



2017 Lenovo Internal. All rights reserved.





第23页

Showcase

• Scale Out横向扩展:简单,快速

{“spec”:{ “replicas”:"6"}}



2017 Lenovo Internal. All rights reserved.





第24页

Showcase

• 滚动更新:实时查看更新进度





2017 Lenovo Internal. All rights reserved.



第25页

2017 Lenovo Internal. All rights reserved.



Showcase

• 容器访问:使用exec的api,通过websocket提供web终端



第26页

Showcase

• 日志查看:实时查看应用日志





2017 Lenovo Internal. All rights reserved.



第27页

Showcase

• 资源管理:项目级别的资源控制





2017 Lenovo Internal. All rights reserved.



第28页

那些坑,那些事

• 底层平台的那些坑

– K8S Deployment ID出现重复,导致部署后不更新应用 https://github.com/kubernetes/kubernetes/issues/29735

– K8S Dashboard卡顿的问题 – harbor服务器重启后出现mysql无主进程

• 平台开发的那些事

– 平台健壮性:当服务器频繁挂掉的时候,才知道现实和理想的距离 – Angular2出新版本了,更还是不更



2017 Lenovo Internal. All rights reserved.





第29页

小结

• 背景和挑战 • 企业级容器云设计与思考

– 设计思路 – 多集群支持和整体架构 – 网络方案和路由设计 – 部署、回滚流程 – DevOps支持 – 存储方案 – 权限设计

• 通过Ansible让运维自动化 • 监控与日志 • Showcase,系统流程示例 • 踩过的坑



2017 Lenovo Internal. All rights reserved.





第30页

zhoucq1@lenovo.com caiqinzhou@gmail.com



支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。