部署-k8s和docker、jenkins的区别和联系

k8s和docker、jenkins的区别和联系

Kubernetes (k8s)DockerJenkins 是现代云原生开发中常用的三个核心工具,它们分别承担不同的角色,但又可以协同工作,实现高效的 CI/CD(持续集成与持续交付) 流程。


一、三者的核心定位

工具 定位 主要功能
Docker 容器化平台 构建、运行和管理容器镜像
Kubernetes (k8s) 容器编排系统 管理大规模容器集群的部署、调度、扩缩容等
Jenkins CI/CD 工具 实现代码自动构建、测试、部署流水线

二、区别详解

1. Docker:容器构建与运行

  • 作用:将应用及其依赖打包成一个标准化的容器镜像,并在任何支持 Docker 的环境中运行。
  • 典型使用场景
    • 开发环境本地运行微服务
    • 打包应用为镜像供其他系统使用
    • 快速启动、停止、复制容器

2. Kubernetes:容器编排与集群管理

  • 作用:管理多个 Docker 容器在多台主机上的部署、调度、伸缩、服务发现等。
  • 典型使用场景
    • 微服务架构下的服务部署
    • 高可用、弹性伸缩的应用管理
    • 多租户资源隔离与调度

3. Jenkins:自动化构建与部署流水线

  • 作用:监听代码变更,触发构建、测试、打包、部署流程,实现 DevOps 中的自动化操作。
  • 典型使用场景
    • 每次 Git 提交后自动构建项目
    • 自动执行单元测试、集成测试
    • 自动推送镜像到仓库并通知 Kubernetes 部署

三、联系与协作流程

这三个工具可以组成一个完整的 CI/CD + 容器化部署体系,典型的协作流程如下:

复制代码
Git Commit → Jenkins 触发构建 → Maven/Gradle 编译 → Docker 构建镜像 → 推送至镜像仓库
     ↓
Jenkins 调用 Kubernetes API 或 Helm 命令 → Kubernetes 拉取镜像并部署新版本

示例流程说明:

  1. 开发者提交代码到 Git
  2. Jenkins 监听到提交事件,触发 Pipeline
    • 下载代码、编译、打包成 jar/war/docker 镜像
  3. Jenkins 将镜像推送到私有仓库(如 Harbor)
  4. Jenkins 调用 Kubernetes 的命令或更新 Helm Chart
  5. Kubernetes 拉取新镜像并滚动更新服务

四、类比理解

类比 描述
Docker = 集装箱 把货物(应用)打包进集装箱(容器),便于运输
Kubernetes = 港口调度中心 负责调度集装箱、安排码头、物流路线
Jenkins = 物流管理系统 自动安排何时发货、走哪条路线、是否需要质检

五、常见组合方式

场景 使用方式
本地开发调试 Docker + Docker Compose
单机部署 Docker + Shell 脚本
小型团队部署 Jenkins + Docker
企业级部署 Jenkins + Docker + Kubernetes
云厂商部署 Jenkins + Helm + K8s + Harbor

六、总结对比表

功能 Docker Kubernetes Jenkins
容器构建
容器运行 ✅(底层调用 Docker)
容器编排
自动化构建
CI/CD 支持
服务部署 ✅(配合使用)

七、实际应用场景示例

以 Spring Boot 微服务为例:

  1. 开发人员编写代码并提交到 GitLab
  2. Jenkins Pipeline 启动构建任务
    • 使用 Maven 编译项目
    • 使用 Dockerfile 构建镜像并推送到 Harbor
  3. Jenkins 调用 Kubernetes 更新 Deployment
    • 修改镜像版本号
    • Kubernetes 滚动更新 Pod
  4. 服务自动上线,完成部署

八、结语

  • Docker 是基础:负责容器化;
  • Kubernetes 是中枢:负责容器编排与集群管理;
  • Jenkins 是引擎:驱动整个 CI/CD 流水线;
  • 三者结合:构成了现代云原生应用的标准技术栈,适用于从开发到生产的一体化交付流程。
相关推荐
.柒宇.3 小时前
信创实战:银河麒麟 V10 服务器安装、网络配置与 Docker 环境搭建
linux·运维·docker·国产信创·麒麟操作系统
IT从业者张某某3 小时前
基于Docker的hadoop容器安装hive并测试
hive·hadoop·docker
杨浦老苏3 小时前
Docker容器管理面板Dockhand
运维·docker·群晖
努力的搬砖人.3 小时前
配置 Docker 镜像加速器
运维·docker·容器
江湖有缘3 小时前
实时监控所有端口,Docker 部署 WatchYourPorts 保姆级教程
运维·docker·容器
IT从业者张某某3 小时前
基于Docker的hadoop容器安装zookeeper
hadoop·docker·zookeeper
guojb8243 小时前
告别部署踩坑:用 Docker Compose 优雅搞定多前端站点、HTTPS 与 SSE 推送
nginx·docker·https
pupudawang3 小时前
docker desktop安装redis
redis·docker·容器
用户78937733908533 小时前
从0到1实战:FastAPI + MySQL 项目 Docker 容器化部署与避坑指南
docker
dLYG DUMS4 小时前
如何在docker中的mysql容器内执行命令与执行SQL文件
sql·mysql·docker