一,前言
去年公司上了一个持续集成平台,设计技术组件与开源工具集,大致如下:
- 使用 Gitlab 作为代码的管理和托管工具;
- 使用 Gitlab CI 持续集成工具;
- 使用 Docker 开源应用容器引擎;
- 使用 Harbor 企业级 Docker 私有镜像仓库;
- 使用 Kubernetes 作为容器编排和管理工具;
- 使用 Helm 作为 Kubernetes 的包管理器;
结合上述技术特点,以 k8s 的使用为核心,从 0 到 1 实现一个前后端项目的持续集成;
主要内容:
- ci/cd 简介;
- 服务规划及阿里云 ECS 服务器采购;
- 环境安装:Linux+Git+Jenkins+Docker+k8s集群;
- docker 的使用(后续将会写在另外一个专栏)
- k8s 的配置和使用;
二,CI/CD 简介
1,持续构建(CI)
- 持续构建环节不参与部署,只负责构建代码并将制品上传至制品库;
- 比如:使用 Jenkins 拉取仓库代码 -> 执行预置脚本构建制品(docker 镜像),将制品推送至制品库(docker 镜像仓库);
- 常用工具:Gitlab CI,Github CI,Jenkins 等;
2,持续部署、持续交付(CD)
CD有 2 层含义: 持续部署(Continuous Deployment) 和 持续交付(Continuous Delivery) ;
- 持续交付:在持续集成的基础上,将集成后的代码或镜像制品部署到接近真实环境的「类生产环境」,交付给客户提前测试;
- 持续部署:在持续交付的基础上,把部署到生产环境的过程自动化;
三,服务器规划
搭建基于 k8s 的 CI/CD 环境,最少需要准备 3 台服务器:
- 1 台用于做 ci 构建机,构建镜像(最低配置需要满足 2c4g);
- 2 台用于做 K8S 集群,主从各一台:master + node;
ECS 配置 | 启动服务 | 说明 |
---|---|---|
2核4G | Jenkins + Nexus + Docker | ci-server |
2核4G | Docker + Kubernetes | k8s-master |
1核1G | Docker + Kubernetes | k8s-node |
备注:
有条件的话,最好准备 4 台服务器,k8s 集群使用1 主 + 2 从的配置,可以测试任务分配和负载均衡;
按需付费,每小时每台大概 0.2~0.3 元,3 台服务器每天约15 元左右,每月约450元还是挺烧钱的;
以下是正常情况下,三台服务一天的费用情况:
四,结尾
下一篇,购买并配置阿里云 ECS 实例;