Appearance
云原生 / K8s 专题(后端·平台·Infra 方向面试)
面向后端/平台/Infra 岗位的 K8s 与云原生高频考点。目标:能讲清**"是什么 + 为什么这么设计 + 怎么用/怎么排障"**,而不是背名词。
若岗位偏 C++ 后端 + 平台/云原生,本专题常与
../concurrency/、../ai-infra/一起被追问。
子文档
| 文件 | 内容 |
|---|---|
k8s-arch.md | K8s 架构、控制平面/节点组件、核心对象与声明式模型 |
k8s-workload.md | Pod / Deployment / StatefulSet / DaemonSet / Job 等工作负载 |
k8s-network.md | Service / Ingress / CNI / DNS / 服务发现与负载均衡 |
k8s-schedule-storage.md | 调度、资源管理 QoS、存储 PV/PVC、配置 ConfigMap/Secret |
k8s-ops.md | 扩缩容、探针、滚动发布、监控日志、常见故障排查、安全 |
cloud-native-eco.md | 云原生全景:容器运行时、Service Mesh、可观测性、GitOps、CI/CD |
高频 Top 问答(必背)
1. K8s 是什么?解决什么问题?
答案
容器编排系统:把一堆物理/虚拟机组成资源池,自动化地部署、扩缩容、调度、自愈、滚动更新容器化应用。解决"多机多容器怎么统一管"的问题。见 k8s-arch.md。
2. K8s 的核心架构与组件?
答案
控制平面:kube-apiserver(唯一入口)、etcd(唯一数据源)、kube-scheduler(调度)、kube-controller-manager(各种控制器)。节点:kubelet、kube-proxy、容器运行时(containerd)。一切经 apiserver,控制器通过声明式 + 调谐循环把实际状态逼近期望状态。见 k8s-arch.md。
3. Pod 与容器什么关系?为什么要有 Pod?
答案
Pod 是最小调度单位,可含 1..N 个共享网络命名空间和存储卷的容器(如主容器 + sidecar)。放一起的容器共享 IP/端口与卷,便于协作。见 k8s-workload.md。
4. Service 有哪些类型?ClusterIP 是怎么实现的?
答案
ClusterIP / NodePort / LoadBalancer / ExternalName。ClusterIP 是虚拟 IP,由 kube-proxy 用 iptables/IPVS 规则把访问 VIP 的流量 DNAT 到后端 Pod。见 k8s-network.md。
5. Deployment、StatefulSet、DaemonSet 区别?
答案
Deployment 管无状态多副本、支持滚动更新/回滚;StatefulSet 管有状态、稳定网络标识与存储、有序启停;DaemonSet 每节点一个(日志/监控 agent)。见 k8s-workload.md。
6. 调度是怎么做的?
答案
kube-scheduler 两阶段:过滤(nodeSelector、亲和性、taint/toleration、资源够不够)选出可用节点 → 打分(balanced/least-requested 等)选最优。见 k8s-schedule-storage.md。
7. requests 和 limits、QoS?
答案
requests 决定调度(保证量),limits 是上限;超出内存 limit 会被 OOMKill。按二者是否相等分 Guaranteed / Burstable / BestEffort 三档 QoS,影响驱逐优先级。见 k8s-schedule-storage.md。
8. liveness / readiness / startup 探针?
答案
liveness 失败重启容器;readiness 失败从 Service 摘除(不接流量);startup 用于慢启动应用,成功前不执行前两者。见 k8s-ops.md。
9. Pod 一直 Pending / CrashLoopBackOff 怎么查?
答案
Pending 多为调度失败(资源不足、亲和性、污点、PVC 未绑);CrashLoop 看 kubectl logs --previous、describe pod 事件、退出码。见 k8s-ops.md。
10. 滚动更新怎么做?怎么回滚?
答案
Deployment 用 maxSurge/maxUnavailable 控制滚动节奏,借助 ReplicaSet 逐批替换;kubectl rollout undo 回滚到上一版本。见 k8s-ops.md。
使用建议
- 基础岗:吃透 架构 / Pod / Service / Deployment / 探针 / 排障(Top10)。
- 平台/Infra 岗:再补 CNI、调度深度、存储、Helm/Operator、Service Mesh、可观测性。
- 每个结论都要能接一句"为什么"——K8s 面试非常爱追问设计动机。