Kubernetes
·
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
核心资源对象(软考高频)
- Deployment:最常用,管理无状态应用,用来管普通微服务(无状态)。 能干 3 件大事(考试必问):控制跑多少个 Pod(副本数);滚动更新(不停机升级);弹性伸缩(配合 HPA)
- StatefulSet:Pod 会经常重启、换 IP,不稳定。 Service 给一组 Pod 一个固定地址,实现:;服务发现;负载均衡
- DaemonSet:每个节点跑一个 Pod(日志采集、监控代理)
- Service:为 Pod 提供统一访问入口,实现服务发现、负载均衡
- ConfigMap/Secret:配置文件、密码密钥
- HPA:水平 Pod 自动扩缩容,自动根据 CPU、内存、请求量:;忙 → 自动多开几个 Pod;闲 → 自动关掉多余 Pod
两个必考机制(你刚做的题直接对应)
1. 弹性伸缩(HPA)
- 监控每个 Pod 的 CPU、内存、并发请求;
- 流量高(大量电表同时上传数据)→ HPA 自动让 Deployment 增加 Pod 数量;
- 流量下降 → 自动减少 Pod;
- 自动扩缩,不用人工干预。
2. 滚动更新(Deployment)
更新系统新版本时:
- 先启动新版本 Pod,等它正常工作;
- 再慢慢停掉旧版本 Pod;
- 新旧同时运行一段时间,服务一直可用,不停机。
更多推荐


所有评论(0)