携程:我们是如何利用容器实现快速弹性伸缩的?
图7 1)自定义?CExecutor,Go?语言实现
2)task:container -1:1 -> N:1 3)容器持久化 如图?7,可以观察得到前段抖动非常厉害(如果过渡频繁地创建删除容器,会带来非常大的负担,抖动会非常高),在用?1:1?调度之后就变得平缓了.所以携程自定义 CExecutorr(Go?语言实现),避免过于频繁创建删除容器,带来的副作用(抖动非常强、load非常高),之后就基本上处于水平线了. 七、容器监控方案1、Mesos?监控
图?8 图?9 如图?8-9?携程用了很多开源技术,Telegraf、influxdb、Grafana?并做了一些扩展来实现 mesos 集群的监控,采集 mesos-master 状态、task执行数量、executor 状态等等,以便当 mesos 集群出现问题时能第一时间知道整个集群状态,进而进行修复. 此外,我们还从 mesos 调度入手,做了一些应用层的监控,比如: 针对 cron job 类型的应用,让用户可以看到 job 应该在什么时候执行,执行的过程,整个 job 的成功率,job 还有多个实例在跑等; 2、容器监控 图?10 携程监控团队全新开发了一套监控系统?hickwall,也实现了对容器的监控支持;hickwall agent 部署在容器物理机上,通过 docker client 、cgroup等采集容器的运行情况,包括?CPU?、Memory、Disk?IO 等常规监控项; (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |