我们增加了调试模式功能,在用户选择调试模式启动容器时,就会自动启动容器内的sshd,通过webssh进入容器内进行调试,调试完成以后,通过一键保存为容器镜像功能,上传到仓库,此时用户可以选择调试后的镜像进行启动,这样容器的调试方式就和传统基于服务器开发的模式保持一致。
容器云面向服务的调试管理界面
3. 集成Ceph文件存储
有些应用要求具有上传说明文件和配置脚本的功能,需要将一些配置或者图片文件持久化,我们选择Ceph分布式文件系统来做为共享的持久化环境,Ceph社区活跃度高,使用成熟度高是选择它的一个主要原因。
然而在使用过程中,发现一个问题,如果应用有1个实例时,没有问题,当应用需要扩展多个实例时,只有一个实例能够成功启动挂载存储,通过阅读Kubernetes的源码发现,Kubernetes对此作了限制,不允许一个volume绑定多个实例,我们对此进行了专门的优化来保证多个实例都能够成功挂载存储。
4. 持续集成She-Ra组件
在部署过程中应用开发者通常有这么一个开发习惯,修改了应用的一个Java文件后,就需要上传整个war包,有些用户开始使用ssh登录到容器,进行单个class文件的替换,这样很容易导致线上版本管理混乱,应用与代码库不对应,一开始我们引入了Jenkins,通过集成应用的代码,一键生成镜像,然后进行部署。
这在一定程度上解决了问题,但是Jenkins和容器云平台系统集成度不够友好, Jekins有自己单独的一套认证体系,没有办法和容器云平台很好的融合,不方便开发和运维人员使用,用户在使用时,必须要先登录Jenkins进行镜像构建,再登录容器云进行服务部署,操作不够方便,管理员管理两套账户也不够方便。因此我们独立用go语言研发了新的持续集成工具She-Ra,通过提供REST接口,与容器云平台相结合,通过版本控制工具一站式持续集成,全程可视化管控,为用户提供简单、灵活的持续部署方式。
实现功能
容器云平台核心功能模块包括服务集成、代码构建、镜像中心、集群管理、模板管理、新手入门六个部分。
- 代码构建:可与多种代码库关联,一键联合构建发布部署。
- 镜像中心:多维度的镜像查找、归类,简单易用的操作让镜像管理不再繁琐。
- 服务集成:服务实例动态伸缩调控及健康监测,基于容器镜像版本灵活的升级回滚策略,服务运行状况拓扑关系图形化。
- 集群管理:多样化的图表展示集群节点状态和服务状态,监控整个集群的资源使用情况,如容器的内存和CPU、存储使用情况。
- 模板管理:提供常用的镜像模板,降低使用难度,避免重复工作。
- 新手入门:平台及各模块说明文档,方便用户了解并快速上手使用容器云平台。
在能力开放平台首页提供了容器云入口
应用场景
容器云实现了应用快速部署及便捷管理,租户将部署包或者镜像包,一键部署并运行,支持选择互联网访问和内网访问方式,并提供图形化配置工具,运维人员不再接触任何物理机器,开发人员可以直接完成应用的部署,体现了DevOps中运维开发一体化的思想。
现已将自有大数据能力开放平台原先部署在虚拟机上的自有工具包括元数据管理平台、数据质量管理平台、BPM流程调度平台、BI构建、BDI分布式ETL工具已经迁移到了容器云中;第三方提供的可视化报表工具也已在容器云环境发布给租户使用;联通大数据征信产品已经在容器化改造过程中。
相比传统的基于虚拟机、物理机分配、申请、部署、测试,基于容器软件部署时间节省了80%以上,当应用部署频繁度上升后,时间的节省将是惊人的,同时容器部署均为自动化驱动,可靠性也是大幅度提升。