news 2026/5/1 15:09:59

Kubernetes (K8S):云时代的“超级舵手”

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kubernetes (K8S):云时代的“超级舵手”

🧐 为什么有了 Docker 还需要 K8S?

Docker解决了“怎么把软件打包”的问题(集装箱)。
但是,当你的业务做大了,你需要管理成千上万个集装箱时,麻烦就来了:

  1. 怎么调度?哪台服务器空闲?应该把这个容器放到哪台机器上?
  2. 怎么自愈?如果半夜 3 点某个容器挂了,谁把它拉起来?
  3. 怎么扩缩容?双 11 流量暴增,谁自动帮你加 100 个实例?流量过了谁帮你删掉?

Docker Compose只能管理单机上的几个容器(像是一个小乐团的指挥)。
Kubernetes (K8S)则是管理跨越几十台服务器、成千上万容器的超级总指挥(像是一个大型港口的调度系统)。

名字由来:Kubernetes 是希腊语“舵手”的意思。K 和 s 之间有 8 个字母,所以简称K8S


🧱 核心概念:K8S 的“四大家族”

在 K8S 的世界里,不要只盯着“容器”,因为 K8S根本不直接管理容器

1. Pod (豆荚) —— 最小原子单位 🫛

  • 概念:K8S 调度的最小单位不是容器,而是 Pod。
  • 比喻:Pod 就像一个豌豆荚
    • 通常一个 Pod 里只放一个豌豆(容器)。
    • 但有时也会放两个关系紧密的豌豆(比如主应用 + 日志收集助手)。
    • 关键点:Pod 里的容器共享网络(IP)和存储,它们同生共死。

2. Node (节点) —— 干活的工人 👷

  • 概念:一台物理机或虚拟机。
  • 比喻车间里的工位。Pod 就运行在 Node 上。
    • Master Node:包工头,负责发号施令。
    • Worker Node:搬砖工,负责真正跑应用。

3. Deployment (部署) —— 期望状态管理器 📜

  • 概念:你通过它告诉 K8S:“我要运行 Vue 应用,给我保持 3 个副本!”
  • 比喻包工头的合同
    • 如果某个 Pod 挂了,Deployment 发现现在的数量(2个)少于合同规定的(3个),它会立马再造一个新的补上。
    • 这就是 K8S 的自愈能力

4. Service (服务) —— 稳定的前台 💁‍♀️

  • 概念:Pod 的 IP 是会变的(每次重启都会变)。Service 提供一个固定 IP
  • 比喻:公司的前台电话
    • 不管后端的员工(Pod)怎么离职入职(重启/迁移),客户(用户)只要打前台电话(Service IP),前台就会把电话转接给现有的员工。

🏗️ 架构图解:K8S 怎么工作?

👷 Worker Node 2 (搬砖工)

👷 Worker Node 1 (搬砖工)

🧠 Master Node (大脑)

kubectl apply

指派任务

指派任务

API Server

调度器

控制器

Kubelet

🫛 Pod (Vue应用)

🫛 Pod (API服务)

Kubelet

🫛 Pod (Vue应用)

👨‍💻 管理员

  1. 管理员把“合同”(YAML文件)交给Master
  2. 调度器看哪台机器空闲。
  3. Kubelet(节点上的代理人)接收指令,在自己的机器上创建Pod

✨ K8S 的三大超能力

1. 故障自愈 (Self-healing) 🚑

  • 场景:半夜服务器 A 突然断电,上面的 10 个 Pod 全挂了。
  • K8S 反应:Master 发现联系不上 Worker A,立刻在健康的 Worker B 和 C 上重新创建这 10 个 Pod。
  • 结果:服务自动恢复,无需人工干预。

2. 自动扩缩容 (Auto-scaling) 📈

  • 场景:微博热搜来了,CPU 占用率飙升到 90%。
  • K8S 反应:Horizontal Pod Autoscaler (HPA) 检测到高负载,自动把 Pod 数量从 3 个增加到 30 个。
  • 结果:抗住流量高峰。流量下去后,自动缩减回 3 个,省钱。

3. 滚动更新 (Rolling Update) 🔄

  • 场景:要发布新版本 App。
  • K8S 反应:不是全部关掉再重开(会导致服务中断)。而是先启动 1 个新版本 Pod,等它健康了,再杀掉 1 个旧版本 Pod。如此循环,直到全部替换完成。
  • 结果:用户完全无感知,业务不中断。

🚀 进阶知识:生产环境必备

学会了“四大家族”只能让你在本地跑起来,要在公司生产环境用好 K8S,你还需要掌握这三个神器:

1. Ingress (统一大门) 🚪

  • 痛点Service只能提供内网 IP,或者通过LoadBalancer暴露公网 IP(但很贵,一个服务一个 IP)。
  • 解决方案Ingress就像大楼的保安亭(通常基于 Nginx)。
    • 只有一个公网 IP。
    • 根据域名(api.com-> API 服务,web.com-> Vue 服务)把流量分发给不同的 Service。
    • 比喻:你只需要告诉保安(Ingress):“我要去 8 楼”,他就会把你指引到电梯口(Service)。

2. ConfigMap & Secret (配置与机密) 🔐

  • 痛点:把数据库密码写死在代码或 YAML 里太危险了,而且改配置还得重新打包镜像。
  • 解决方案
    • ConfigMap:存普通配置(如:API_URL=https://api.test.com)。
    • Secret:存敏感信息(如:数据库密码、证书),会自动加密。
    • 比喻保险箱。Pod 启动时,直接从保险箱里拿密码,而不是写在额头上。

3. PV & PVC (持久化存储) 💾

  • 痛点:Pod 挂了重启,里面的文件就没了(和 Docker 容器一样)。
  • 解决方案
    • PV (PersistentVolume):管理员准备的一块硬盘(就像地皮)。
    • PVC (PersistentVolumeClaim):开发者申请硬盘的单子(就像房产证)。
    • 比喻:不管房子(Pod)怎么拆了重建,你的地皮(PV)和上面的家具(数据)永远都在。

📝 实战:一个最简单的 K8S 部署文件

在 K8S 里,我们不写 Dockerfile,而是写YAML

# 1. 定义 Deployment (管理 Pod)apiVersion:apps/v1kind:Deploymentmetadata:name:my-vue-appspec:replicas:3# 副本数:我要 3 个!selector:matchLabels:app:vue# 管理贴了 "app=vue" 标签的 Podtemplate:metadata:labels:app:vue# 给 Pod 贴标签spec:containers:-name:vueimage:my-vue-image:v1# 用这个镜像ports:-containerPort:80---# 2. 定义 Service (固定入口)apiVersion:v1kind:Servicemetadata:name:my-vue-servicespec:selector:app:vue# 转发给贴了 "app=vue" 标签的 Podports:-port:80targetPort:80type:LoadBalancer# 对外暴露 IP

🧠 总结

  • Docker单兵作战(步枪)。
  • K8S集团军作战(指挥系统)。
  • 它虽然学习曲线陡峭,但它是云原生时代的操作系统
  • 只要掌握了Pod、Node、Deployment、Service这四大概念,再加上进阶的IngressPVC,你就拿到了 K8S 的入门钥匙。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 8:35:16

EdXposed框架深度解析:Android系统Hook技术的完整指南

EdXposed框架深度解析:Android系统Hook技术的完整指南 【免费下载链接】EdXposed Elder driver Xposed Framework. 项目地址: https://gitcode.com/gh_mirrors/edx/EdXposed 项目概述与核心价值 EdXposed是一个基于Riru的ART Hook框架,它提供了完…

作者头像 李华
网站建设 2026/4/30 14:08:48

EnergyStar:终极Windows系统节能优化方案

EnergyStar:终极Windows系统节能优化方案 【免费下载链接】EnergyStar A terrible application setting SV2 Efficiency Mode for inactive Windows apps and user background apps 项目地址: https://gitcode.com/gh_mirrors/en/EnergyStar EnergyStar是一款…

作者头像 李华
网站建设 2026/5/1 11:09:50

PrivateGPT完整使用手册:打造个人专属AI知识库系统

PrivateGPT完整使用手册:打造个人专属AI知识库系统 【免费下载链接】private-gpt 项目地址: https://gitcode.com/gh_mirrors/pr/private-gpt 还在为海量文档管理发愁吗?PrivateGPT让你轻松拥有智能文档助手,将散乱的资料变成有序的知…

作者头像 李华
网站建设 2026/4/25 17:51:21

【开题答辩全过程】以 基于微信小程序的勤工助学管理系统设计与开发为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

作者头像 李华
网站建设 2026/4/30 12:41:06

微信小程序官方UI组件库weui-wxss开发实战指南

微信小程序官方UI组件库weui-wxss开发实战指南 【免费下载链接】weui-wxss 项目地址: https://gitcode.com/gh_mirrors/weu/weui-wxss 还在为小程序界面设计发愁吗?想要快速打造与微信原生体验一致的界面吗?weui-wxss正是你需要的利器。作为微信…

作者头像 李华
网站建设 2026/4/29 9:26:26

使用Markdown插入公式讲解Transformer数学原理

使用 Markdown 插入公式讲解 Transformer 数学原理 在自然语言处理领域,模型的表达能力与可解释性同样重要。随着 Transformer 架构成为现代大语言模型的核心基础,如何清晰、准确地向团队成员或读者传达其内部机制,已成为技术沟通中不可忽视的…

作者头像 李华