04_Kubernetes (K8s) 与 Docker 的区别 Kubernetes (K8s) 与 Docker 的区别Docker — 容器引擎Docker 负责创建和运行单个容器是容器化技术的基础工具。能力说明镜像构建docker build打包应用 依赖为镜像容器运行docker run启动单个容器单机管理在一台机器上管理容器生命周期适用场景开发、调试、单节点部署Kubernetes (K8s) — 容器编排平台K8s 负责管理大规模集群中的容器解决多机器协作问题。能力说明集群编排跨多台机器调度容器自动分配到合适的节点自动扩缩容根据流量自动增减 Pod 数量自愈恢复容器/节点故障时自动重启或迁移服务发现/负载均衡自动分配 IP对外提供统一入口滚动更新零停机部署新版本适用场景生产环境、多节点、大规模服务类比理解类比DockerKubernetes餐厅厨师做一道菜经理协调整个厨房交通一辆车的发动机城市交通调度系统问题“怎么跑一个容器”“怎么跑 1000 个容器”关系┌─────────────────────────────────────────┐ │ Kubernetes (K8s) │ │ ┌───────────┐ ┌───────────┐ ┌─────┐ │ │ │ Node 1 │ │ Node 2 │ │ ... │ │ │ │ ┌───────┐ │ │ ┌───────┐ │ │ │ │ │ │ │ Docker│ │ │ │ Docker│ │ │ │ │ │ │ │ (容器) │ │ │ │ (容器) │ │ │ │ │ │ │ └───────┘ │ │ └───────┘ │ │ │ │ │ └───────────┘ └───────────┘ └─────┘ │ └─────────────────────────────────────────┘Docker 是底层运行时负责跑容器K8s 是上层编排器调用 Docker或其他容器运行时来管理集群K8s 1.24 之后默认使用containerd替代 Docker 作为运行时但docker build仍可用于构建镜像什么时候用什么场景选择本地开发、测试Docker单个服务器部署Docker Docker Compose生产环境多节点Kubernetes需要自动扩缩容、自愈Kubernetes