从 Mesos 到 Kubernetes——YIN SUN,小米有限公司

九大主题:背景、容器网络、ELB、登录与审计、安全、监视、日志、有状态的服务包和未来展望。 所有架构和解决方案均被设计为解耦体系,因此我们可以用同样的方式来适应每个编制系统。 我们以自有的方式来解决网络性能的问题。我们支持各种包、工具、插件以帮助用户部署任务,同时我们还支持监视和日志采集。 那么,系统各部分是如何协同工作的呢?为改善生态体系,我们将分享所遇到的一切问题以及我们是怎样解决这些问题的。
展开查看详情

1.从Mesos到Kubernetes 孙寅

2.平台演进 DCBrain DCOS PaaS

3.体系架构

4.Mesos时代

5.容器网络 方案演进:MACVLAN(DHCP)->Flannel(HostGW) DEMO过:MACVLAN(自定义CNI插件)、Calico、Culim 网络性能、架构可靠性的最佳折中

6.存储架构 Volumn /home分区 LVM  比拟物理磁盘IO性能  磁盘空间隔离 根分区 DeviceMapper  调度扩展磁盘资源  异步清理 Docker

7.Build IMAGE  封装规范Dockerfile  Dockerfile分片,构建编译 和运行环境  CMD固定为Docker-init  环境变量指引功能

8.Docker-Init 进程组 健康检查端口 容器启动退出钩子 回收僵尸进程 调试模式 注入环境变量开关 与内部基础设施对接

9.基础架构组合

10.负载均衡(ELB) 自动配置域名,按运 营商自动划分线路 docker-init和ELB服 务都会动态更新LVS 配置,可重入 云厂商集群,多一层 HAProxy

11.日志服务  更轻量的客户端FileBeat  容器退出后延迟回收  日志目录规范+自发现  行检索的挑战

12.免密安全登录 基于服务树节点授权 每登录认证凭据

13.动态服务安全 仅需Server端嵌入SDK和配置 数据库,DB-Proxy简化接入 IP+JOBNAME共同生效,防 御ZK故障

14.监控 Push采集,与动态 环境更亲和 促成自动发现能力

15.监控  节点内增加主机或容器  主机或容器增加分区

16.转向K8S

17.双引擎 O  翻译为Marathon/Mesos API Adapter  代理Events Marathon/ Kubernetes Mesos API Server

18.有效裁剪 性能 Service 可靠 Ingress

19.部分机制适配  磁盘资源  CRD自定义资源  Flexvolume插件支持LVM  Node异步回收  改造发布策略  新建Deployment  新旧版本Deployment扩缩  健康检查探针适配

20.DCOS

21.组件服务 ZK Mysql ELK Redis Memc achd  规范配置  统一监控  数据自动迁移  故障自愈

22.CI/CD Condition Action Object Branch Build staging Staging Job UT test change Deploy Staging Job IT Test Staing Job Preview Merge Step1 Branch Branch preview Deploy Preview Job change Production Merge Branch Step2

23.流量镜像 一键压测  接入层(TCPCopy)  支持流量放大、缩小  一键批处理压测

24.服务网格  智能负载均衡  流量路由策略  服务保护机制

25.混沌军团  随机关闭生产环境中的实例,模拟服 务故障  引入人为延时,模拟服务降级  寻找未使用、可被清理的资源  寻找不符合预定义最佳实践的服务  发现和跟踪异常修改,排查安全问题

26.DCBrain

27.根因分析 SWITCH HOST ServiceB  自动发现依赖拓扑 ServiceA  完善的监控点  决策树找到最末报警点 LB Domain

28.故障自愈 监控 访问 日志 发布 其他 系统 质量 系统 系统 event StackStorm trigger 主机 发布 域名 弹性 其他 管理 系统 管理 调度

29.小米运维公众号