智能
助手
最大化  清空记录 停止  历史记录
翻译选中文本
选中一段文本后进行翻译
名词解释
选中一段文本后进行名词解释
知识图谱生成
通过图谱展示知识信息
登录用户在知识浏览页面可用
答案生成
AI自动回答一个问答功能中的问题
登录用户在问答浏览页面,且问题开放回答中可用
知识摘要
自动为当前知识生成摘要
知识浏览页面可用
知识问答
针对当前知识进行智能问答
知识浏览面可用
   62  
查询码: 00000220
1. Docker 与 Kubernetes 时间简史
作者: 文艺范儿 于 2025年12月29日 发布在分类 / Docker & K8S / K8S基础 ,于 2025年12月29日 编辑
K8S

1. Docker 与 Kubernetes 时间简史

1.1 Docker:容器化的“破圈者”(2013-2017)

Docker 的出现重新定义了容器的“易用性”,将原本复杂的 LXC(Linux 容器)技术包装成“镜像+容器”的简单模型,推动容器从“极客工具”走向“大众开发”。

时间 关键事件 意义

2013.03

dotCloud 公司(后更名为 Docker Inc.)创始人 Solomon Hykes 在 PyCon 演讲中首次展示 Docker 项目

提出“Build, Ship, Run Any App, Anywhere”口号,引发容器技术热潮

2013.09

Docker 0.8 版本发布,引入Union File System(AUFS)作为镜像分层基础

解决了镜像“重复存储”问题,大幅提升镜像构建效率

2014.06

Docker 1.0 版本发布

标志 Docker 进入生产级稳定阶段,企业开始尝试用 Docker 部署应用

2014.12

Docker Inc. 推出 Docker Compose(容器编排工具)、Docker Machine(跨主机部署)

完善 Docker 生态的“单机→多机”管理能力

2015.06

Docker 主导成立 OCI(开放容器倡议),捐赠 runc(OCI 运行时参考实现)

推动容器标准化(解决“容器格式碎片化”问题,为后续 Kubernetes 整合铺路)

2017.04

Docker Inc. 将 Containerd 捐赠给 CNCF(云原生计算基金会)

拆分 Docker 的底层运行时,为 Kubernetes 集成 Containerd 奠定基础

1.2 Kubernetes:容器编排的“胜出者”(2014-2018)

Kubernetes(简称 k8s)由 Google 基于内部 Borg 系统(Google 十年容器编排经验)开源,旨在解决 Docker 生态的“多机编排短板”——Docker Swarm(Docker 官方编排工具)虽易用,但缺乏 Google 级别的集群管理经验。

时间 关键事件 意义

2014.06

Google 开源 Kubernetes 项目(Go 语言编写)

提出“声明式 API”“控制器模式”等核心思想,主打高可用、可扩展

2015.07

Kubernetes 1.0 版本发布,同时 CNCF 正式成立

CNCF 将 Kubernetes 作为首个孵化项目,标志云原生生态起步

2016.03

Kubernetes 1.2 版本发布,支持 StatefulSet(有状态应用编排)

解决了 Docker Swarm 对有状态应用(如数据库)支持不足的问题

2017.09

Kubernetes 1.8 版本发布,引入 RBAC(基于角色的访问控制)

强化企业级安全能力,满足金融、医疗等行业需求

2017.10

Docker 宣布支持 Kubernetes(Docker Enterprise 2.0 内置 Kubernetes)

容器生态从“Docker vs Kubernetes”转向“Docker + Kubernetes”融合

2018.03

Kubernetes 成为 CNCF 第一个毕业项目(Graduated Project)

技术成熟度获业界认可,成为容器编排的事实标准

1.3 融合与演进:从“对抗”到“共生”(2018-至今)

2018 年后,Docker 与 Kubernetes 的关系从“竞争”转向“互补”:

  • Docker 专注于容器镜像构建、分发与单机管理(保留 Docker CLI 的易用性);
  • Kubernetes 专注于集群编排、高可用与云原生生态(底层依赖 Docker 捐赠的 Containerd 作为运行时)。

关键里程碑:

  1. 2019 年:Docker Inc. 调整战略,将Containerd 作为 Docker 的默认运行时(取代早期的内置运行时),Kubernetes 也逐步从“支持 Docker”转向“支持 Containerd”(因为 Containerd 更轻量、更符合 OCI 标准)。
  2. 2020 年:Kubernetes 宣布弃用 Docker 作为容器运行时(Kubernetes 1.20 版本标记为 Deprecated)——注意:这里的“弃用”是指弃用 Docker 的“dockershim”组件(Kubernetes 早期为兼容 Docker 做的适配层),而非 Docker 本身。企业仍可通过 Docker → Containerd → Kubernetes 的链路使用 Docker 镜像。
  3. 2023 年至今:Kubernetes 持续迭代(如 v1.28 支持 Sidecar 容器 GA、v1.29 支持 Pod 资源原地更新),Docker 则聚焦镜像安全(Trivy 集成)、Compose V2(兼容 k8s 的 YAML 语法),两者共同支撑云原生应用的落地。

1.4 总结:生态协同的必然结果

Docker 与 Kubernetes 的发展史,本质是“容器技术从‘工具化’到‘平台化’的演进”

  • Docker 解决了“容器怎么用”的问题(让容器从复杂变简单);
  • Kubernetes 解决了“容器怎么管”的问题(让容器从单机变集群);
  • 两者的融合,最终形成了“Docker 做镜像、Kubernetes 做编排”的云原生黄金组合——这也是当前企业容器化落地的主流架构。

附:核心时间线可视化

1.5 生产中k8s版本选择

此文档选择搭建 v1.34.3

1.5.1 版本选择的依据(企业视角)

企业选择 k8s 版本时,核心关注「稳定性、支持周期、特性匹配」三个因素:

  1. 支持周期

    Kubernetes 采用「N-2 稳定版支持策略」(每个版本的支持周期为 14 个月,其中前 12 个月提供 bug 修复,后 2 个月仅提供安全补丁)。例如:

    • v1.35 (2025年12月发布):支持到2027年2月;
    • v1.34 (2025年11月发布):支持到2026年10月;最新补丁v1.34.3
    • v1.33 (2025年11月发布):支持到2025年11月;最新补丁v1.33.6
  2. 稳定性

    企业通常避开刚发布的「.0 版本」(如 v1.35.0),优先选择「.x」小版本(如 v1.34.1)——小版本会修复前一版本的 bug,稳定性更优。

  3. 特性需求

    若企业需要使用新特性,会选择对应版本;若仅需基础功能,会倾向更成熟的旧版本(如 v1.33.6)。

1.5.2 不同行业的版本偏好

行业类型 常用版本 原因说明

互联网/科技

v1.28.x、v1.29.x

追求新特性(如 Server-Side Apply 增强、GPU 资源管理优化),团队技术能力强,能快速适配版本变化

金融/医疗

v1.27.x、v1.28.x

对稳定性要求极高,倾向选择支持周期长、bug 少的版本,避免新特性的潜在风险

传统制造

v1.27.x 及以下

容器化转型较慢,更关注「兼容现有系统」(如与旧版 Docker/Containerd 的适配)

1.5.3 版本升级建议(SRE 视角)

  1. 升级节奏:遵循「每季度小版本升级,每年大版本升级」的原则(如从 v1.33 升级到 v1.34,再到 v1.35);
  2. 升级前准备
    • 测试环境完整验证新版本(包括应用兼容性、CI/CD 流水线、监控系统);
    • 备份 etcd 数据(etcdctl snapshot save)与 k8s 配置(kubectl get all --all-namespaces -o yaml > backup.yaml);
  3. 升级工具:使用kubeadm(官方推荐的集群升级工具),支持「滚动升级」(不影响业务运行):

1.5.4 安装注意事项

  1. 确保kubeadm、kubelet、kubectl版本完全一致
  2. 若使用Docker,需安装cri-dockerd适配k8s 1.24+版本;
  3. 网络插件(如Calico)需与k8s版本严格匹配(如Calico v3.25兼容v1.23-1.28)

1.5.5 Kubernetes v1.34.2 新特性选型

Kubernetes v1.34.3版本主要是对v1.34.0(代号“风与意志”)的修复和稳定性更新,核心新特性和改进在1.34系列版本中已经引入,主要亮点包括动态资源分配(DRA)的稳定(支持AI/ML和HPC)、ServiceAccount令牌用于镜像拉取增强安全性、更优的调度性能以及对新组件如Gateway API的集成优化,该版本修复了之前的潜在问题,提升了整体的资源管理和可观测性,对生产环境是平滑升级。

Kubernetes v1.34 的主要特性(体现在1.34.2中)

  1. 动态资源分配 (DRA) 稳定
    • 为AI/ML(人工智能/机器学习)和HPC(高性能计算)工作负载提供了更好的硬件支持,允许更灵活地管理和分配特殊硬件资源,如GPU等。
  2. 增强的安全特性
    • 支持使用ServiceAccount令牌进行镜像拉取(Image Pull),提升了拉取镜像的安全性,防止敏感信息泄露。
  3. 调度性能优化
    • 在调度器方面进行了改进,提升了大规模集群中的调度效率和性能。
  4. 可观测性增强
    • 提升了集群的监控和日志能力,使得运维人员能更清晰地了解集群状态。
  5. 新组件集成支持
    • 对如Gateway API、Cilium等最新网络组件提供了更好的支持,方便现代化微服务架构的部署和调试。
  6. 无破坏性变更 (No Breaking Changes):
    • v1.34系列版本在升级到此版本时,没有引入重大破坏性API变更,降低了生产环境升级的风险。

硬件与软件

组件 要求

节点

- Master 节点:≥ 8 核、16G 内存、200G SSD(需支持 eBPF,推荐 Ubuntu 24.04 LTS); - Worker 节点:≥ 4 核、8G 内存(GPU 节点需 NVIDIA A100/H100 显卡,安装 Driver 555+); - 边缘节点(可选):≥ 2 核、4G 内存(支持离线运行,推荐 Raspberry Pi 5 或 x86 边缘设备)。

软件

- Containerd ≥ 2.0(支持 OCI 1.2 规范与 MIG 2.0); - Kubernetes v1.34.1 二进制包(需从源码编译,开启对应 Feature Gates); - eBPF 内核支持(Linux 6.5+,开启 CONFIG_BPF_SYSCALL等配置);

笔记
0人参与


 历史版本

备注 修改日期 修改人
创建版本 2025-12-29 19:32:34[当前版本] 文艺范儿

  目录
    文艺知识分享平台 -V 5.2.5 -wcp