去年8月底,百分点与云知声联合发布了Google开源的集群管理系统Kubernetes的“发行版”Sextant。在百分点大规模Kubernetes集群经过四五个月的应用实践后,到目前为止,集群上已经承载了百分点推荐系统的大部分业务组件和部分的运维组件。那么,在使用过程中会遇到哪些问题?如何解决?本篇将详尽总结百分点在实践中的经验教训,期望能够更多地回馈社区。 从0到1 在传统的集群管理方法下,百分点服务器利用率长期处于20%以下。通常为了完成某个业务目标,团队会申请各自的服务器,然后工程师使用跳板机登陆到这些服务器上完成程序的部署。 这样的弊端是:首先,这些服务器上的空闲资源并不会贡献出来为其他团队所使用;其次,这些服务器在解决业务高峰问题之后,负载下降,而这时团队并不希望服务器被回收,因为不知道如何备份服务器之上的数据。 这样,集群服务器利用率逐步降低,整体集群的维护和管理也变得异常困难,在百分点AI技术运用增多的趋势下,常遇到计算资源不足而导致业务进展缓慢的情况。 如何解决呢? 我们做了很多尝试,最终决定选择CoreOS、Kubernetes(以下简称K8s)、Ceph相结合的技术方案。 对于Kubernetes在生产环境中的应用,百分点是比较早的一批实践者,从开始关注Kubernetes1.0,到将1.2版本实际部署到我们的生产环境中,围绕Kubernetes做了很多周边工作,使Kubernetes能够更好地服务于业务场景。 限于篇幅原因,这里不展开介绍Kubernetes的基本原理和概念了,感兴趣的读者可以在我们的githubsextant项目中,找到相当丰富的文档。 为了达成这样的目标,我们要求开发者使用Docker将自己的应用程序完成封装,逐步将手动的集群部署,切换到使用K8S的集群容器编排之上。如下图所示,需要在团队项目的gitlab repo中增加相应的Dockerfile和编排文件内容,CI环境会自动将应用完成编译- |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|