K8s 是开源的容器编排平台,用来自动化部署、管理、扩缩容 Docker 这类容器化应用,是云原生微服务的核心底座。 解决问题:手动管理成千上百个容器太麻烦,K8s 统一管。 定位:容器的操作系统 / 管家

自动帮你:

  • 部署服务
  • 自动扩容 / 缩容
  • 自动更新、不停机发布
  • 服务挂了自动重启
  • 服务之间互相发现、负载均衡

一句话:K8s = 自动管理大量容器的平台,云原生微服务必备。

K8s 核心架构

分为 控制平面(Master 节点) + 工作节点(Node 节点)

1)控制平面(管理端,大脑)

  • kube-apiserver:API 网关,所有操作入口,接收指令、鉴权
  • etcd:分布式键值数据库,存所有配置、状态,比如要跑几个服务、哪些节点正常。
  • kube-controller-manager:控制器,维持期望状态(副本数、节点状态等):比如要求跑 3 个服务,坏了 1 个,它就自动补 1 个。
  • kube-scheduler:调度器,把 Pod 分配到合适的 Node 节点。配任务:新服务该放到哪台机器上跑。

2)工作节点(干活端)

  • kubelet:节点代理,管理本节点 Pod,上报状态给 Master。听老板的话,在本机启动 / 停止容器,上报状态。
  • kube-proxy:网络代理,实现服务发现、负载均衡。让服务之间能互相找到、负载均衡。
  • 容器运行时:Docker/containerd,真正跑容器

3)最小调度单元:Pod(必考)

  • Pod = 一组紧密耦合的容器(通常 1 个业务容器 + 1 个边车 Sidecar)
  • K8s 不直接管理容器,只管理 Pod

核心资源对象(软考高频)

  1. Deployment:最常用,管理无状态应用,用来管普通微服务(无状态)。 能干 3 件大事(考试必问):控制跑多少个 Pod(副本数);滚动更新(不停机升级);弹性伸缩(配合 HPA)
  2. StatefulSet:Pod 会经常重启、换 IP,不稳定。 Service 给一组 Pod 一个固定地址,实现:;服务发现;负载均衡
  3. DaemonSet:每个节点跑一个 Pod(日志采集、监控代理)
  4. Service:为 Pod 提供统一访问入口,实现服务发现、负载均衡
  5. ConfigMap/Secret:配置文件、密码密钥
  6. HPA:水平 Pod 自动扩缩容,自动根据 CPU、内存、请求量:;忙 → 自动多开几个 Pod;闲 → 自动关掉多余 Pod

两个必考机制(你刚做的题直接对应)

1. 弹性伸缩(HPA)

  • 监控每个 Pod 的 CPU、内存、并发请求;
  • 流量高(大量电表同时上传数据)→ HPA 自动让 Deployment 增加 Pod 数量;
  • 流量下降 → 自动减少 Pod;
  • 自动扩缩,不用人工干预。

2. 滚动更新(Deployment)

更新系统新版本时:

  1. 先启动新版本 Pod,等它正常工作;
  2. 再慢慢停掉旧版本 Pod
  3. 新旧同时运行一段时间,服务一直可用,不停机

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐