部署-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 流水线;
  • 三者结合:构成了现代云原生应用的标准技术栈,适用于从开发到生产的一体化交付流程。
相关推荐
别致的影分身1 小时前
Docker 镜像原理
运维·docker·容器
阿葱(聪)1 小时前
java 在k8s中的部署流程
java·开发语言·docker·kubernetes
指月小筑1 小时前
K8s 自定义调度器 Part1:通过 Scheduler Extender 实现自定义调度逻辑
云原生·容器·kubernetes·go
?ccc?2 小时前
Kubernetes 架构原理与集群环境部署
容器·架构·kubernetes
Elastic 中国社区官方博客3 小时前
在 Windows 上使用 Docker 运行 Elastic Open Crawler
大数据·windows·爬虫·elasticsearch·搜索引擎·docker·容器
云和数据.ChenGuang3 小时前
运维技术教程之Jenkins的秘钥设置
运维·servlet·jenkins·自动化监控·运维技术教程
谢白羽3 小时前
jenkins搭建笔记
运维·笔记·jenkins
玄辰星君4 小时前
【MAC】nacos 2.5.1容器docker安装
macos·docker·nacos
土小帽软件测试4 小时前
docker安装、启动jenkins服务,创建接口自动化定时任务(mac系统)
docker·容器·jenkins