K8S必问面试题之:K8S架构中每个组件的作用

微信关注运维爱背锅,用通俗易懂的方式教你运维

K8S面试题:K8S架构中每个组件的作用

大家好!今天我们来聊聊Kubernetes(简称K8S)中各个组件的作用,这是一道必问的面试题——各个组件就像一支分工明确的足球队,有人守门、有人射门,还有人负责喊战术。下面咱们就用“人话”拆解一下这些组件的职责。


1.etcd:集群的“八卦的小本本”

  • 作用:分布式K-V(键值)存储数据库,专门记录集群的所有“秘密”,比如:Pod配置、节点状态、Service等资源的元数据。
  • 冷知识:如果etcd挂了,整个集群会像失忆的鱼一样乱窜。所以它用Raft协议保证数据一致性,确保每个节点都“抄作业抄得一模一样”。
  • 人话版:相当于班级的记事本,所有同学(节点)都得按本子上的规则办事。

2.API Server:集群的“前台小哥”

  • 作用:提供api接口,所有对K8S集群的请求(比如创建Pod、查询Service)必须经过它,负责处理 RESTful 请求,验证和授权,管理资源状态。
  • 冷知识:比如你说“我要删库跑路”,它会先查你的权限,然后告诉其他组件:“这人有问题,快拦住他!”(认证、鉴权)
  • 人话版:像食堂打饭阿姨,你说“来份红烧Pod”,她负责确认你卡里有钱,然后把订单递给后厨。

3.Scheduler:金牌中介

  • 作用:给新创建的Pod找“房子”(节点)。它会看哪个节点CPU空闲、内存充足,甚至考虑“这Pod喜欢和谁做邻居”(亲和性)。
    • 另外一点:面试官很可能需要你回答出“预选”和“优选”这两个打分机制的步骤,所以必要时可以补充提及一下。
  • 冷知识:如果所有节点都太忙,Pod会卡在“Pending”状态,像极了租房时中介说“再等等,我帮你找”。
  • 人话版:像婚恋网站算法,根据身高(资源)、爱好(标签)、星座(污点)给你匹配对象(节点)。

4.Controller Manager:操碎心的班主任

  • 作用:管理一堆“资源控制器”,比如Deployment控制器盯着副本数,Node控制器盯着节点健康状态。
  • 冷知识:如果Pod挂了,它会像老妈子一样念叨:“说好的3个副本呢?赶紧再拉一个起来!”
  • 人话版:像你手机里的闹钟App,每天定时喊你:“该起床(重启Pod)了!该喝水(扩容)了!”

5.Node(Worker):打工人集合

每个节点都是“干实事”的,包含三个关键角色:

5.1Kubelet:节点监工

  • 作用:接收API Server的指令,管理Pod的生命周期,比如“启动容器”“挂掉就重启”。
  • 冷知识:如果监工(Kubelet)失联,API Server会认为这个节点“旷工”,把它的任务(Pod)转给其他节点。
  • 人话版:像工地包工头,每天拿着图纸(Pod配置)指挥工人(容器)干活。

5.2Kube-proxy:网络接线员

  • 作用:负责Service的流量转发,维护ipvs\iptable规则,比如把访问my-service:80的请求随机打到后端的某个Pod。
  • 冷知识:它不用亲自扛流量,而是修改iptables/IPVS规则,深藏功与名。
  • 人话版:像外卖平台,你下单(请求Service)后,它自动分配骑手(Pod)给你送餐。

5.3 CRI容器运行时:搬砖牛马

  • 作用:Docker/containerd等工具负责实际运行容器,比如“把镜像跑起来”“给容器联网”。
  • 人话版:像咖啡机,你按下按钮(Kubelet指令),它就能吐出一杯热乎的容器咖啡。

CoreDNS:活体导航

  • 作用:给Service提供域名解析,比如把redis-service翻译成10.96.123.45
  • 冷知识:没有它,Pod之间只能靠IP喊话,像极了原始人用“啊呜啊呜”交流。
  • 人话版:像手机里的地图App,告诉Pod:“你要找的数据库在XX路XX号(IP)!”

总结

  • etcd: 分布式键值存储,保存集群状态和配置数据。
  • API Server: 集群的前端接口,处理所有请求和资源操作。
  • Controller Manager: 运行控制器,确保集群状态与期望一致。
  • Scheduler: 将 Pod 调度到合适的节点上运行。
  • Kube Proxy: 管理网络规则,实现服务负载均衡。
  • Kubelet: 管理节点上的 Pod 和容器,确保它们正常运行。

只有全员配合,才能让集群稳定运行。下次面试被问到这个问题,你可以邪魅一笑:“这题我会” 😎


附:

控制平面(Control Plane) = API Server + Scheduler + Controller Manager + etcd + CRI(可选)
工作节点(Worker Node) = Kubelet + Kube-proxy + 容器运行时(CRI)

学会了?快去实践一下吧! 🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值