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 将应用自动部署到开发环境,再执行接口自动化测试,验证通过后发布至生产环境。

相关推荐
编码如写诗1 小时前
瑞芯微RK3588+麒麟V10国防版+昇腾310异构部署k8s集群+KubeSphere
人工智能·ai·云原生·kubernetes
Devin~Y2 小时前
大厂 Java 面试实录:Spring Boot微服务/Kafka/Redis/K8s可观测性 + RAG Agent(小Y社死版)
java·spring boot·redis·spring cloud·kafka·kubernetes·micrometer
想你依然心痛2 小时前
工业物联网云原生时代:时序数据库全链路选型与 Apache IoTDB 实践
物联网·云原生·时序数据库·iotdb
密瓜智能2 小时前
MIG、Time-slicing 还是HAMi?密瓜智能CEO张潇本周六亮相JuiceFS Meetup,聊聊GPU共享的生产取舍
人工智能·云原生·kubernetes·开源·gpu算力·ai算力
网宿安全演武实验室12 小时前
当AI跑进容器:全链路容器安全检测与智能运营实
人工智能·安全·容器·k8s
一点事16 小时前
docker:安装oracle 19c
docker·oracle·容器
安当加密16 小时前
Kubernetes Secret不安全?External Secrets Operator接入凭据管理服务实战,自动轮转零停机
安全·容器·kubernetes
用户15583199681417 小时前
文件同步冲突技术根因与解决方案:Last-Write-Wins、OT、CRDT对比
云原生