K8s 架构 一问一答面试题(直接背)

K8s 架构 一问一答面试题(直接背)

适合面试官口头提问,回答就是上面卡片内容,简短干练

1. 问:介绍下 K8s 整体架构?

答:K8s 分为控制平面和Worker 工作节点。控制平面是集群管理大脑,Worker 节点用来运行业务 Pod。所有组件都通过 apiserver 交互,etcd 存储集群状态。

2. 问:控制平面有哪些核心组件,各自作用?

答:

  • kube-apiserver:集群唯一 API 入口,负责认证鉴权,唯一读写 etcd。
  • etcd:分布式键值存储,保存集群所有资源状态。
  • kube-scheduler:监听未调度 Pod,筛选合适 Node 节点完成绑定。
  • kube-controller-manager:内置各类控制器,持续调谐,保证实际状态等于期望状态。
  • cloud-controller-manager(可选):对接云厂商 API。

3. 问:Worker 节点有哪些组件?

答:

  • kubelet:节点代理,管理本机 Pod 生命周期,调用容器运行时创建容器,上报状态。
  • kube-proxy:维护节点网络规则,实现 Service 负载均衡。
  • 容器运行时(containerd):底层负责拉镜像、运行容器,遵循 CRI 接口。

4. 问:简述 kubectl apply 一个 Deployment 的完整流程?

答:

  1. kubectl 把 Deployment 提交给 apiserver,apiserver 校验后写入 etcd。
  2. controller-manager 监听到 Deployment,创建 ReplicaSet,再生成未调度 Pod 写入 etcd。
  3. scheduler 监听到未绑定 Pod,按策略选 Node,把 Pod 绑定到目标节点。
  4. 目标节点 kubelet 监听到属于自己的 Pod,调用 containerd 拉镜像、启动容器。
  5. kubelet 持续上报 Pod 状态到 apiserver,存入 etcd。
  6. kube-proxy 监听 Service 和 Endpoint 变化,更新本机转发规则。

5. 问:Pod 一直 Pending,怎么排查?

答:优先kubectl describe pod查看事件。
大概率:节点资源不足、污点和容忍不匹配、节点亲和性冲突、端口占用、镜像拉取失败。区分是调度阶段问题,还是容器启动阶段问题。

6. 问:节点显示 NotReady,排查思路?

答:先看 kubelet 状态和日志。
常见原因:kubelet 和 apiserver 通信异常、证书失效、节点磁盘 / 内存 / PID 压力触发驱逐、containerd 异常、网络不通。

7. 问:Service 无法访问,排查思路?

答:

  1. 先看 Endpoint 是否正常,确认后端 Pod 就绪。
  2. 查看 kube-proxy 状态和日志;ipvs 模式检查内核模块是否加载。
  3. 检查内核 ip 转发、节点防火墙策略。
  4. 测试 Pod 之间网络连通性,定位是 service 转发问题还是 Pod 网络问题。

8. 问:etcd 作用?有什么注意事项?

答:etcd 是集群状态的持久化存储,强一致性。
注意:对磁盘 IO 延迟敏感;生产部署 3/5 节点高可用;定期备份;禁止直接手动修改 etcd 原始数据。

9. 问:kube-controller-manager 的调谐(reconcile)是什么意思?

答:控制器持续对比用户期望状态和集群实际状态,如果不一致,就执行操作让实际状态向期望状态对齐,这个循环过程就是调谐。

10. 问:apiserver 是什么角色?

答:整个集群唯一网关,所有组件、kubectl 都和它通信;负责认证、鉴权、准入控制;只有 apiserver 可以读写 etcd。

11. 问:CoreDNS 作用?

答:集群内部 DNS 服务,负责把 Service 名称解析成 ClusterIP。集群内 Pod 之间可以直接用 service 名字互相访问。

12. 问:kube-scheduler 调度时会考虑哪些因素?

答:节点资源(CPU 内存)、节点亲和 / 反亲和、Pod 亲和反亲和、污点和容忍、端口占用、节点标签。

posted @ 2026-09-19 21:45  JacobJacob  阅读(19)  评论(0)    收藏  举报