Skip to content

K8s 是什么 ​

Kubernetes(简称 K8s,读作 "koo-ber-NEH-teez")是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。

💡 为什么叫 K8s? 因为 "Kubernetes" 中间有 8 个字母(ubernete),所以简称 K8s。这个名字来源于希腊语,意思是"舵手"或"飞行员"。

为什么需要 Kubernetes? ​

想象你开了一家餐厅...

场景一:只有一个厨师 ​

刚开业时,餐厅只有一个厨师(一个服务器运行一个应用)。一切都很简单:

  • 厨师休息 = 餐厅停业
  • 客人太多 = 厨师忙不过来
  • 厨师生病 = 餐厅关门

场景二:雇佣多个厨师 ​

生意变好了,你雇佣了多个厨师(多个服务器),但新问题来了:

  • 谁来分配订单给不同的厨师?
  • 如果一个厨师突然离开,谁来接手他的订单?
  • 高峰期需要临时请人,低谷期又要让人休息,谁来管理?

场景三:请一个餐厅经理(Kubernetes) ​

这时候,你需要一个餐厅经理(Kubernetes):

餐厅经理(K8s)会:

  • 自动分配任务:根据每个厨师的忙闲程度分配订单
  • 自动补位:厨师请假时,自动安排其他厨师接手
  • 弹性调度:高峰期多请人,低谷期让人休息
  • 健康检查:发现厨师状态不佳,及时安排休息和替换

Kubernetes 解决的核心问题 ​

问题没有 K8s有了 K8s
服务器宕机服务中断,需要手动恢复自动在其他服务器重启服务
流量激增手动增加服务器自动扩容
流量下降资源浪费自动缩容,节省成本
版本更新需要停服维护滚动更新,零停机
配置管理散落在各处统一管理

K8s 的核心能力 ​

1. 服务发现和负载均衡 ​

K8s 可以使用 DNS 名称或 IP 地址暴露容器。如果到某个容器的流量过高,K8s 能够自动分配网络流量。

2. 自动部署和回滚 ​

你可以使用 K8s 声明你希望的部署状态,K8s 会以可控的速率将实际状态更改为期望状态。

3. 自我修复 ​

K8s 会重启失败的容器、替换容器、杀死不响应健康检查的容器。

4. 密钥和配置管理 ​

K8s 允许你存储和管理敏感信息(如密码、令牌),无需在镜像中暴露。

K8s 不是什么 ​

为了避免误解,K8s 不是:

  • ❌ 不是 PaaS:K8s 在容器层面运行,不限定编程语言或框架
  • ❌ 不是 CI/CD 工具:K8s 不负责构建镜像,只负责运行
  • ❌ 不是容器运行时:K8s 使用 containerd/Docker 等容器运行时
  • ❌ 不是虚拟机管理器:K8s 管理的是容器,不是虚拟机

小结 ​

  • Kubernetes 是一个容器编排平台,帮助你自动化管理容器化应用
  • 它解决的核心问题是:自动化部署、扩缩容、负载均衡、故障恢复
  • 可以把 K8s 理解为"容器的餐厅经理",负责调度和管理所有"厨师"(容器)

下一步 ​

理解了 K8s 的作用后,让我们来看看它的整体架构是什么样的。

下一节:架构概览

学习文档整合站点