【k8s】CICD 简介与服务规划

467 阅读2分钟

「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战」。


一,前言

去年公司上了一个持续集成平台,使用的开源工具集(技术组件)大致如下:

  • 使用 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核4GJenkins + Nexus + Dockerci-server
2核4GDocker + Kubernetesk8s-master
1核1GDocker + Kubernetesk8s-node

备注:

有条件的话,最好准备 4 台服务器,k8s 集群使用1 主 + 2 从的配置,可以测试任务分配和负载均衡;

按需付费,每小时每台大概 0.2~0.3 元,3 台服务器每天约15 元左右,每月约450元还是挺烧钱的;

以下是正常情况下,三台服务一天的费用情况: ECS


四,结尾

先凑一些字数,稍后完善。。。

下一篇,购买并配置阿里云 ECS 实例;