K8s 在完整 CI/CD 流程里的作用

GitLab CI → Docker 镜像 → 部署开发环境 → 接口自动化测试

一、不用 K8s vs 用 K8s

现在简单版(无 K8s)

GitLab CI → 构建 Docker 镜像 → SSH 登录服务器,docker run 手动启动容器问题:

  • 机器少还行,多了管不过来
  • 挂了不会自动重启
  • 不能自动扩容
  • 环境(开发 / 测试 / 生产)切换麻烦

用K8s 之后

GitLab CI → 构建 Docker 镜像 → 推镜像仓库 → K8s 自动拉取、部署、调度 SSH 手动操作全部消失,全自动化


二、K8s 在你完整 CI/CD 流程里的位置

完整带 K8s 的流水线,对应你们公司真实部署后做接口自动化:

plaintext

复制代码
本地git push
    ↓
【CI阶段】
构建 → 单元测试 → 打包Docker镜像 → 推送镜像仓库
    ↓
【CD阶段】
K8s部署到 开发环境(Namespace)
    ↓
接口自动化测试(测开发环境K8s里的服务)
    ↓
测试通过 → K8s部署到测试/预发/生产环境

三、K8s 在流程中具体做什么?5 个核心作用

1. 代替 SSH 手动部署

原来:CI 里写 ssh 命令远程 docker run

现在:CI 只需要发一条指令 kubectl applyK8s 自动部署

2. 环境隔离(开发 / 测试 / 生产)

用 Namespace 区分:

  • dev-ns:开发环境
  • test-ns:测试环境
  • prod-ns:生产环境一键切换部署到不同环境,不用改服务器 IP

3. 自愈能力

容器挂了、节点宕机 → K8s 自动重启、自动迁移,不用人管

4. 扩缩容、灰度发布

流量大自动多启动几个 Pod;新版本先部署一部分,验证没问题全量发布

5. 统一管理 Nginx(Ingress)

K8s 里用 Ingress-Nginx,统一做反向代理、域名、HTTPS,不用在每台服务器单独装 Nginx


四、Docker、Nginx、K8s 三者分工

  • Docker:打包应用成镜像(盒子)
  • K8s:调度、运行、管理这些盒子(容器编排)
  • Nginx:K8s 里的 Ingress,统一流量入口、反向代理

简单比喻:

  • Docker = 集装箱
  • K8s = 港口调度中心(管集装箱放哪、坏了换、加箱子)
  • Nginx = 港口大门,负责接待访客

五、总结

Docker 用于应用容器化打包;K8s 作为容器编排平台,实现自动化部署、环境隔离、自愈、扩缩容;Nginx 作为反向代理提供统一访问入口。在 CI/CD 流程中,GitLab CI 构建镜像后,通过 K8s 将应用自动部署到开发环境,再执行接口自动化测试,验证通过后发布至生产环境。

相关推荐
正经教主11 小时前
【docker基础】第九周:Docker安全与镜像优化
运维·docker·容器
qq_4523962313 小时前
第十三篇:《K8s 安全基础:RBAC、ServiceAccount、Pod Security》
java·安全·kubernetes
睡不醒男孩03082314 小时前
云原生运维实战:高并发架构下的云原生可观测性、韧性降级与自动化干预体系
数据库·kubernetes·高并发·prometheus·devops·sre·缓存调优
qq_4523962314 小时前
第十四篇:《K8s 网络模型与 CNI 插件(Calico、Flannel、Cilium)》
网络·kubernetes·php
日取其半万世不竭15 小时前
Memos 私人碎片笔记怎么搭?Docker 加 Caddy 一小时跑起来
笔记·docker·容器
写代码的学渣15 小时前
docker部署开源实时观测系统hertzbeat
docker·容器·开源
互联网推荐官15 小时前
上海软件定制开发公司推荐:从PaaS工程化路径看D-coding的技术取舍
云原生·云计算·paas·软件开发·开发经验·上海
sbjdhjd15 小时前
从零搭建企业级 CI/CD(下):Jenkins+GitLab+Harbor 全链路实战指南
git·servlet·ci/cd·云原生·云计算·gitlab·jenkins
TimberWill15 小时前
Docker使用总结
运维·docker·容器
蜀道山老天师15 小时前
Docker 实战:构建永不宕机的服务器监控探针(ServerStatus)
运维·服务器·docker·容器