零基础秒懂:Kubernetes(k8s)到底是什么?它和 Docker 又是啥关系?

在后端开发的世界里,如果你已经熟悉了如何用 Docker 运行一个 Java 应用程序,那么下一步必然会遇到一个名为 Kubernetes(简称 k8s) 的巨兽。

简单来说,k8s 就像是一个超级智能的“大管家”,专门负责管理和调度运行在容器里的应用程序。为了让你彻底理解它,我们放下复杂的架构图,用最直观的比喻来拆解。


1. 为什么我们需要这个“大管家”?

假设你的应用程序是一个个集装箱(容器),而运行这些程序的服务器就是一艘艘货轮

  • 没有 k8s 时(手动模式):你需要手动把集装箱搬到船上。如果某条船沉了(服务器宕机),或者集装箱坏了(程序崩溃),你得大半夜爬起来亲自动手去修、去转移。
  • 有了 k8s 后(全自动模式):k8s 就是那个全自动化的港口调度中心。你只需要给它下达一个指令:“我需要 5 个集装箱时刻保持运行”。它就会自动帮你把集装箱分配到合适的船上,并 24 小时盯着它们。

2. k8s 的三大核心“超能力”

自动修复(故障自愈)

如果某个程序崩溃了,或者某台服务器突然断电,k8s 会瞬间察觉,并立刻在其他健康的服务器上重新启动一个一模一样的程序。整个过程是自动的,用户甚至感觉不到故障的发生。

弹性伸缩(能屈能伸)

比如遇到抢购活动,访问量突然暴增,k8s 会根据你设定的规则,自动“克隆”出几十个相同的程序来分担压力;活动结束后流量降下来,它又会自动销毁多余的程序,帮你节省昂贵的服务器成本。

负载均衡(端水大师)

面对海量的用户请求,k8s 就像一个聪明的交警,会把流量均匀、合理地分发给背后的各个容器,确保没有哪一个程序会被“累死”。


3. 技术冷知识:为什么叫 k8s?

这是一个典型的程序员式冷幽默。因为 Kubernetes 这个单词实在太长了,首字母 k 到尾字母 s 之间正好隔着 8 个字母,所以大家为了偷懒(提高效率),就把它缩写成了 k8s


4. Docker 与 k8s:它们是竞争对手吗?

这是一个常见的误区。实际上,它们不是竞争对手,而是完美搭档。用一句话总结:Docker 负责造“集装箱”,而 k8s 负责管“集装箱”。

交响乐团比喻

  • Docker 是“乐器演奏家”:比如吹小号的。他非常专业,能把自己的乐谱吹得完美无缺,保证在任何舞台上(服务器)吹出来的声音都一样。
  • k8s 是“指挥家”:指挥家自己不吹乐器,但他负责看着所有人。他决定什么时候让小号手声音大一点,什么时候让小提琴手加入。如果某个乐手突然晕倒了,指挥家会立刻安排替补顶上,保证整场演出不中断。

5. 核心区别对比表

特性 Docker (容器技术) Kubernetes / k8s (编排技术)
扮演角色 乐器演奏家 / 集装箱制造者 乐团指挥家 / 港口调度中心
主要职责 创建、打包、运行单个容器 自动部署、扩展、管理海量容器
工作范围 通常在单台服务器上工作 跨多台服务器(集群)协同工作
解决问题 解决“环境不一致”的问题 解决“大规模容器难以手动管理”的问题

总结

在实际的生产环境中,这两者通常是结合使用的:你利用 Docker 把 Java 代码打包成镜像,然后把镜像交给 k8s,让它在你的服务器集群中大规模部署和巡检。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐