k8s是什么?

发布于:2025-08-29 ⋅ 阅读:(13) ⋅ 点赞:(0)

一句话概括:Kubernetes (k8s) 是一个开源的容器编排系统,它的核心工作是 自动化部署、管理、扩展 你的容器化应用程序(docker)。

你可以把它想象成一个 数据中心的超级管理员 或者 应用程序的自动驾驶系统


一个完美的比喻:从货运码头到全球物流

为了理解 k8s,我们延续之前 Docker 的集装箱比喻

  1. Docker 创造了 集装箱:它把应用程序(货物)和所有依赖(系统库、环境)打包成一个标准化的、轻量的容器(集装箱)。

  2. 但问题来了:当你有成千上万个集装箱(微服务)需要在全球各地(服务器集群)运输时,谁来负责?

    1. 哪个集装箱该上哪艘货船(服务器)?

    2. 货船坏了怎么办?

    3. 突然来的大量订单,如何快速增加货船和集装箱?

    4. 如何监控所有货物的状态?

Kubernetes 就是为解决这些问题而生的「智能化全球物流系统」!

管理一个由 无数货船(服务器)组成的 舰队(集群)自动地完成 所有调度、运维和灾难恢复工作

核心功能:它具体能做什么?

k8s 为你自动化处理了以下繁琐的事情:

功能 比喻 实际作用
​服务部署与编排​ 自动分配 集装箱 到最佳货船 将 容器化应用 部署到 集群中最合适的服务器。
​伸缩​ 高峰期 自动增加 货船 根据 CPU、内存等指标或自定义规则,自动增加或 减少应用实例的数量。
​负载均衡​ 智能 分配卸货任务 将 外部用户请求 智能地、均匀地分发给 后台多个健康的应用程序实例。
​自我修复​ 自动替换 故障货船 如果 某个容器或服务器宕机,k8s 会 自动重启 容器或将其 调度 到其他健康服务器上,保证服务不中断。
​服务发现​ 自动更新 货物追踪系统 自动为 每个服务 创建一个稳定的访问地址 和 域名,让服务之间能轻松找到并调用对方。
​配置与密钥管理​ 安全地分发货物清单和钥匙 统一管理应用程序的 配置文件 和 敏感信息(如密码、证书),并安全地分发给它们。
​滚动更新与回滚​ 不停运 更新舰队 可以零停机地 逐步更新应用程序版本。如果出问题,一键回滚到上一个稳定版本。

核心架构:它是如何工作的?

Kubernetes 集群通常由两类节点组成:

  1. 控制平面 (Control Plane / Master Node)「大脑」

    1. 这是 集群的指挥中心,负责 接收指令、做出全局决策(如调度、扩展),并 维护整个集群的期望状态

    2. 你(运维/开发者)通过与大脑对话(使用 kubectl命令或 API)来下达指令

  2. 工作节点 (Worker Nodes)「干活的双手」

    1. 这些是 真正运行 你应用程序容器(Docker 等)的 服务器

    2. 每个工作节点上都有一个 代理kubelet),负责与大脑通信并 按照指令 启动、停止、监控容器


为什么它如此重要?

  • 抽象了基础设施: 开发者 不再需要关心 应用 具体跑在哪台物理机上k8s 提供了一个统一的、抽象的“平台”来运行应用。

  • 声明式配置: 你只需要告诉 k8s 你“期望”的应用状态是什么(例如:我要运行 3 个 Nginx 实例),而不是“如何”一步步做到(命令式)。k8s 的大脑会自动工作,确保现实始终符合你的期望。

  • 云原生基石: 它是现代微服务架构、DevOps、持续交付的基石,让你能高效地构建和运营可扩展、高可用的应用。

总结

所以,Kubernetes (k8s) 不是一个简单的工具,而是一个 强大的容器编排平台。它接管了 部署 和 管理 分布式应用的 所有运维复杂性,让开发者可以更专注于业务逻辑本身,从而实现了真正的 云原生 开发。