第3章:Kubernetes核心概念与基础问题
本章聚焦面试中 Pod、Deployment、Service、Namespace 四大基础概念的考察。面试官常通过联问、对比或场景题检验候选人是否真正理解其定位与协作关系。以下框架能帮你建立清晰、结构化的回答路径。
问答卡片 #1:Pod 与 Deployment 的关系
面试问题:请解释 Pod 与 Deployment 的区别与联系?
面试官考察点:是否理解 Pod 是最小调度单元,Deployment 提供声明式更新与自愈。
回答框架:① Pod 是临时可丢弃的“进程容器”;② Deployment 管理 ReplicaSet 实现期望状态;③ 通过 rolling update 实现无损发布。
简短示例回答:Pod 是运行容器的逻辑主机,每个 Pod 有独立 IP。Deployment 通过控制 ReplicaSet 确保指定数量的 Pod 运行,支持回滚与滚动更新,适合无状态应用。
可能追问:Deployment 与 StatefulSet 区别?如何实现灰度发布?
问答卡片 #2:Service 类型及选型
面试问题:Service 有哪几种类型?各自在什么场景下使用?
面试官考察点:是否清楚 ClusterIP、NodePort、LoadBalancer、ExternalName 的差异与应用场景。
回答框架:① ClusterIP 内部通信;② NodePort 外部访问节点端口;③ LoadBalancer 云厂商提供公网入口;④ ExternalName 映射集群外服务。
简短示例回答:ClusterIP 用于微服务间调用;NodePort 开发调试或自建负载均衡;LoadBalancer 直接暴露到公网;ExternalName 统一域名管理外部数据库。
可能追问:Headless Service 作用是什么?如何实现 gRPC 负载均衡?
问答卡片 #3:Namespace 的隔离机制
面试问题:Namespace 在 Kubernetes 中起到什么作用?如何实现资源隔离?
面试官考察点:是否理解 Namespace 是软隔离,需配合 RBAC、NetworkPolicy 和 ResourceQuota。
回答框架:① 逻辑分组资源;② 配置 LimitRange 约束资源上限;③ 通过 NetworkPolicy 实现网络隔离;④ 绑定 RBAC 权限。
简短示例回答:Namespace 将同一集群分割成虚拟集群,默认只隔离资源名称。真正隔离需通过 ResourceQuota 限制 CPU/内存,NetworkPolicy 控制流量,RBAC 控制用户权限。
可能追问:跨 Namespace 通信如何实现?如何设计多环境(dev/staging/prod)Namespace 策略?
项目案例:微服务无状态应用迁移与统一接入
项目名称:电商后端微服务容器化迁移
业务背景:原有单体架构拆分为 20+ 微服务,需通过 K8s 实现自动扩缩与蓝绿部署。
规模指标:部署 40 个 Deployment,150 个 Pod,日均请求 2000 万+,峰值并发 3 万。
技术栈:Kubernetes v1.22,CoreDNS,Ingress Nginx,Helm,Prometheus,Istio(部分服务)。
核心难点:① 传统 Service 超时导致调用链重试风暴;② 灰度发布时流量权重不精准;③ 多环境 Namespace 配置传播效率低。
面试高频追问:如何设计 Service 的超时与重试?Ingress 和 Service 如何协同?Namespace 数量膨胀后如何管理 RBAC?
可迁移回答话术:“在项目初期,我们盲目使用默认 ClusterIP 导致跨服务超时。后来通过 Headless Service + 客户端负载均衡,并配合 Istio 超时熔断,将 P99 从 1.2s 降至 400ms。对于多环境,我们统一用一个 CI 模板动态生成 Namespace 配置,结合 ArgoCD 自动同步。”