项目容器化改造心得

  

一。概述

  

1.1背景

  

近来和同事共同开发的迁移平台项目想进行容器化改造,顺应大趋势往容器化这边靠,项目前端平台利用Django开发,后端Restful API利用高性能网框架龙卷风完成,代理端利用瓶开发,各取了几个大Python框架的优势。

  

之前CI/CD测试环境之前用的是Gitlab CI,大师提交合并请求后自动构建部署,正式环境通过詹金斯管道手动拉去释放部署,容器化改造将詹金斯托管在Kubernetes之上,主接受工作请求,动态生成奴隶来完成工作任务。

  

此文记录了容器化改造中自己遇到的一些心得,可能自己研究的还不够,以下均为个人理解,大佬不喜勿喷,在本次利用Kubernetes将项目容器化过程中,决定python项目有点大材小用,但是通过这次改造,理解了不少容器化的特征,不断的提升自己它技术,丰富自己的技能栈。

  

1.2容器化改造优势

  
      <李>更省:极大的资源利用效率,最大限度榨取和共享物理资源,多项目更能体现出容器化多优势,节约部署它成本。   <李>更快:秒级启动,实现业务系统更快的开发迭代和交付部署。   <李>弹性:可根据业务负载进行弹性容器伸缩,弹性扩展。   <李>方便:容器化业务部署支持蓝绿/灰度/金丝雀等发布,回滚,更加灵活方便。   <李>灵活:监控底层节点节点健康状态,灵活调度至最优节点部署。   <李>强一致性:容器将环境和代码打包在镜像内,保证了测试与生产环境的强一致性。   
  

1.3容器化改造的要求

  
      <李>开发人员熟悉码头工人虚拟化技术,熟练编写Dockerfile。   <李>熟悉kubernetes容器化编排系统,熟悉各组件资源清单编写。   <李>开发需要考虑后期容器编排部署的需求来组织结构和编写代码。   <李>部署人员需要熟悉kubernetes资源清单各参数含义,需要总体把控架构中到从上到下架构。   <李>考虑高可用架构和rbac安全策略,外部流量引入及后期扩容伸缩。   
  

二。工具

  

2.1云原生生态

  

一入云原生深似海,下图为我们更好的全局性了解云原生生态。

  

项目容器化改造心得

  

2.2工具应用

  

本次项目改造用到的一些工具和应用与大家分享(后期有时间将各个工具应用单独写出来分享)

  
      <李>代码托管李   
  

Gitlab服务器进行代码托管,及Gitlab ci/cd,后期可以将其托管至kubernetes集群之上。

  
      <李>私有镜像托管李   
  

利用港进行镜像存储,审计管理及镜像检查,后期可托管至kubernetes之上。

  
      <李>集群管理李   
  

kubernetes-dashboard部署、web界面方便各组件查看管理,简单容器终端管理,日志分享查看。

  

牧场主部署,导入私有化kubernetes平台,方便集群管理及应用安装部署。

  
      <李>存储管理李   
  

ceph到下分布式集群web界面管理

  

minio/chartmuseum对象存储,方便图表存储管理。

  
      <李>集成发布李   
  

詹金斯进行持续集成,持续发布,后期可以将其托管至kubernetes集群之上。

  
      <李>日志监控李   
  

efk进行kubernetes集群容器日志监控管理,f为flutend容器化监控利器。

  
      <李>执掌仓库管理李   
  

kubeapps进行图,注册表添加,方便执掌安装部署。

  
      <李>容器内应用监控李   
  

普罗米修斯+ grafana各个应用程序内进行出口出来,进行单个应用到大学入学考试监控。

  
      <李>下图为导航页,直观的展示用的这些工具李   
  

项目容器化改造心得

  

三。改造的要求

  

3.1程序要求

  
3.1.1项目结构h5>   <李>将配置文件单独创建配置文件夹,方便后期kubernetes创建configmap进行资源映射李      

?项目容器化改造心得

  
      <李>如果后期部署为部署无状态应用,应该将共享的数据存储单独创建目录,方便后去卷挂载李

    项目容器化改造心得