当前位置: 首页 > news >正文

K8s详解

在云原生、微服务、DevOps 大行其道的今天,Kubernetes(简称 K8s)已经成为后端、运维、架构师必须掌握的核心技能。不管是面试还是实际工作,不懂 K8s 都很难跟上现代技术节奏。

这篇文章我用通俗易懂、面试可直接背诵、工作能直接用的方式,把 K8s 讲透。读完这一篇,你就拥有了一套完整的 K8s 知识体系。


一、K8s 到底是什么?为什么要学?

1.1 名字由来

Kubernetes 来自希腊语,意思是舵手、领航员。因为 K 和 s 之间有 8 个字母,所以简称为K8s

1.2 它解决了什么问题?

在没有 K8s 之前:

  • 我们用 Docker 把应用打包成容器,解决了 “环境不一致” 的问题
  • 但容器一多(成百上千),就会出现一堆麻烦:
    • 容器挂了不会自动重启
    • 扩缩容要手动改脚本
    • Pod IP 会变,服务没法稳定访问
    • 跨机器部署、更新、回滚非常痛苦

K8s 就是容器集群的 “操作系统”。你只需要告诉 K8s:

  • 我要 3 个副本
  • 占用 2C4G 资源
  • 对外暴露 80 端口

剩下的调度、自愈、负载均衡、更新、回滚,全部由 K8s 自动完成。

一句话总结:Docker 让应用能跑,K8s 让应用在大规模集群里跑得稳、跑得爽。


二、K8s 核心架构:Master + Worker

K8s 采用经典的主从架构

  • Master(控制平面):大脑,负责决策、调度、管理
  • Worker(工作节点):苦力,真正运行容器、提供资源

2.1 Master 组件(控制平面)

  1. kube-apiserver
    • 集群唯一入口
    • 所有组件都通过它通信
    • 负责认证、鉴权、REST 接口
  2. etcd
    • 分布式高可用键值存储
    • 保存集群所有状态和配置(唯一数据源)
  3. kube-scheduler
    • 调度器
    • 决定把 Pod 放到哪个节点运行
  4. kube-controller-manager
    • 控制器管理器
    • 循环检查:期望状态 vs 实际状态
    • 不一致就自动修复

2.2 Worker 组件(工作节点)

  1. kubelet
    • 节点代理
    • 跟 Master 通信,管理本机 Pod 生命周期
  2. kube-proxy
    • 网络代理
    • 维护 Service 规则,实现负载均衡
  3. 容器运行时
    • 真正运行容器:Docker、containerd 等
  4. CNI 网络插件
    • 如 Calico、Flannel
    • 让跨节点 Pod 可以互相通信

三、K8s 最核心资源对象(面试必背)

K8s 一切皆资源,所有操作都通过 YAML 声明。下面是最常用、必须掌握的对象。

3.1 Pod:最小调度单元

  • K8s不直接管理容器,最小单位是Pod
  • 一个 Pod 里可以有多个容器,共享网络和存储
  • 特点:短命、IP 不固定、不能直接对外提供服务

健康检查

  • livenessProbe:存活检查,挂了就重启
  • readinessProbe:就绪检查,没准备好就不转发流量

3.2 Deployment:无状态应用部署(用得最多)

用来管理无状态服务,实现:

  • 多副本运行
  • 滚动更新(不停机发布)
  • 一键回滚
  • 手动 / 自动扩缩容

适用:Nginx、Spring Boot、前端项目、微服务等。

3.3 StatefulSet:有状态应用

与 Deployment 区别:

  • 稳定的网络标识(固定 Pod 名)
  • 稳定的存储
  • 有序启动、删除、更新

适用:MySQL、Redis、Kafka、ZooKeeper 等。

3.4 DaemonSet:每个节点跑一个

保证集群每台机器都运行一个 Pod

适用:日志采集、监控代理、网络插件。

3.5 Service:稳定的服务入口

Pod IP 会变,Service 提供固定 IP + 固定域名,并自动负载均衡。

四种类型:

  1. ClusterIP:内部访问(默认)
  2. NodePort:节点端口,外部可访问(测试用)
  3. LoadBalancer:云厂商负载均衡(生产)
  4. ExternalName:映射外部服务

3.6 Ingress:7 层网关

Service 是 4 层(TCP/UDP),Ingress 是 7 层(HTTP/HTTPS):

  • 域名路由
  • 路径路由
  • HTTPS 证书
  • 虚拟主机

需要 Ingress Controller(如 Nginx Ingress)支持。

3.7 ConfigMap / Secret

  • ConfigMap:普通配置文件、环境变量
  • Secret:密码、密钥、Token 等敏感信息

3.8 PV / PVC:持久化存储

  • PV:集群级别的存储空间
  • PVC:Pod 申请使用的存储声明K8s 自动绑定,解耦应用与底层存储。

3.9 HPA:自动扩缩容

根据 CPU、内存、QPS 等指标,自动增减 Pod 数量

3.10 Namespace:资源隔离

逻辑分区,比如:dev、test、prod,实现多租户隔离。


四、K8s 核心工作原理:声明式 API

K8s 最牛的设计就是声明式 API

  1. 你写 YAML,描述期望状态(我要 3 个 Pod)
  2. kubectl apply提交给 apiserver
  3. 存入 etcd
  4. 控制器无限循环:
    • 对比期望状态 vs 实际状态
    • 不一致就自动调谐

你只需要定义目标,不用关心怎么做。这就是 K8s 强大的根本原因。


五、K8s 核心特性(面试高频)

  1. 自愈:Pod 挂了自动重启,节点挂了自动迁移
  2. 水平扩缩容:一键扩容、自动扩容
  3. 滚动更新 & 回滚:不停机发布,出问题一键回去
  4. 服务发现与负载均衡:Service 固定访问入口
  5. 配置与代码分离:ConfigMap / Secret
  6. 存储编排:自动挂载各种存储
  7. 批量 / 定时任务:Job / CronJob

六、最常用 kubectl 命令(直接收藏)

# 查看节点 kubectl get nodes # 查看命名空间 kubectl get ns # 查看 Pod/Deployment kubectl get pods kubectl get deploy # 查看详情 kubectl describe pod <pod名> # 查看日志 kubectl logs <pod名> -f # 进入容器 kubectl exec -it <pod名> -- bash # 应用/删除 YAML kubectl apply -f xxx.yaml kubectl delete -f xxx.yaml # 扩缩容 kubectl scale deploy/xxx --replicas=5 # 查看更新历史 & 回滚 kubectl rollout history deploy/xxx kubectl rollout undo deploy/xxx

七、K8s 应用场景

  • 微服务架构统一管理
  • 云原生应用全生命周期管理
  • CI/CD 流水线自动化部署
  • 大数据、AI 分布式任务调度
  • 混合云、多云、跨云部署
  • 边缘计算(K3s)

八、K8s 生态(云原生全景图)

  • 网络:Calico、Flannel、Cilium
  • 服务网格:Istio
  • 监控:Prometheus + Grafana
  • 日志:ELK、Loki
  • 存储:Ceph、MinIO
  • GitOps:Argo CD、Flux CD

九、总结(可直接当面试结尾)

Kubernetes 是云原生时代的操作系统,以声明式 API为核心,通过 Master-Worker 架构实现容器的自动化部署、调度、自愈、扩缩容、滚动更新、负载均衡

它彻底解决了大规模容器集群的管理难题,是现代微服务、DevOps、云平台的基石。

对于后端开发、运维、测试来说:不懂 K8s,未来三年一定会被淘汰;学好 K8s,就是握住了进入大厂、升职加薪的钥匙。

http://www.jsqmd.com/news/512076/

相关文章:

  • 嵌入式事件驱动+状态机轻量级框架设计
  • SmallThinker-3B-Preview惊艳效果:建筑图纸合规性审查中的条款引用与逻辑溯源
  • UniApp左右滑动切换页面避坑指南:从组件到scroll-view的全面解析
  • 从漏洞扫描到责任界定:用Nessus扫描报告讲清楚A、B、C公司的安全协作故事
  • RoboTwin 2.0:如何用多模态大模型与闭环反馈,为异构双臂机器人“量产”高质量仿真数据
  • SenseVoice Small实战案例:科研访谈录音→生成可引用的结构化引文文本
  • 半导体晶圆测量新手必看:3种主流设备实测对比与选型指南
  • STM32_ADC_模数转换器
  • Linux操作系统之线程:线程控制
  • 电机控制必学:Clarke和Park变换的5分钟快速记忆法(附MATLAB验证代码)
  • Bambu Studio 3D打印切片软件:从入门到精通的完整指南
  • STM32_ADC_寄存器操作
  • 基于RABC的权限控制设计
  • 数据库设计原则
  • Qwen2.5-VL-7B-Instruct保姆级教程:对话历史管理、一键清空操作
  • 总结上海移民中介服务费用情况,多少钱才合理 - mypinpai
  • WangEditor — 轻量级富文本编辑器的核心功能与实战应用
  • 【技术干货】MiniMax M2.7 自主进化多智能体模型:从原理到实战落地指南
  • Pixel Dimension Fissioner部署教程:GPU算力优化适配+免配置镜像实操
  • RADIUS协议实战解析:从RFC2865/2866到典型配置与报文深度剖析
  • Pixel Dimension Fissioner快速上手:像素UI交互+实时HUD状态监控详解
  • 如何用AI读脸术做实时分析?CPU推理优化实战案例详解
  • SEO_如何通过内容优化有效提升SEO效果?(143 )
  • 2026年怀化透析中心排名,附近透析中心收费标准与服务质量对比 - myqiye
  • Qwen-Image镜像一键部署:预装CUDA12.4+PyTorch+Qwen-VL依赖的极简方案
  • AudioLDM-S生成效果实测对比:10步和50步有什么区别?听音频就知道
  • 2026年市场上有实力的磁性材料成型液压机源头厂家推荐榜单,稀土永磁压制/铁氧体成型/磁性材料湿法成型/自动化生产线,磁性材料成型液压机制造企业哪家好 - 品牌推广师
  • Kubernetes存储与GPU管理:从开源到主流云厂商的最佳实践
  • Jimeng AI Studio(Z-Image Edition)入门教程:环境部署与快速调用指南
  • 测貂图片AI工具时,模板多不等于后面好改