第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 区别?如何实现灰度发布?

避坑提醒:不要只说“Pod 里运行容器”,要强调 Pod 共享 Network 和 Storage 的机制。

问答卡片 #2:Service 类型及选型

面试问题:Service 有哪几种类型?各自在什么场景下使用?

面试官考察点:是否清楚 ClusterIP、NodePort、LoadBalancer、ExternalName 的差异与应用场景。

回答框架:① ClusterIP 内部通信;② NodePort 外部访问节点端口;③ LoadBalancer 云厂商提供公网入口;④ ExternalName 映射集群外服务。

简短示例回答:ClusterIP 用于微服务间调用;NodePort 开发调试或自建负载均衡;LoadBalancer 直接暴露到公网;ExternalName 统一域名管理外部数据库。

可能追问:Headless Service 作用是什么?如何实现 gRPC 负载均衡?

加分点:提到 Headless Service 用于 StatefulSet 的服务发现,以及 gRPC 长连接需要客户端负载均衡。

问答卡片 #3:Namespace 的隔离机制

面试问题:Namespace 在 Kubernetes 中起到什么作用?如何实现资源隔离?

面试官考察点:是否理解 Namespace 是软隔离,需配合 RBAC、NetworkPolicy 和 ResourceQuota。

回答框架:① 逻辑分组资源;② 配置 LimitRange 约束资源上限;③ 通过 NetworkPolicy 实现网络隔离;④ 绑定 RBAC 权限。

简短示例回答:Namespace 将同一集群分割成虚拟集群,默认只隔离资源名称。真正隔离需通过 ResourceQuota 限制 CPU/内存,NetworkPolicy 控制流量,RBAC 控制用户权限。

可能追问:跨 Namespace 通信如何实现?如何设计多环境(dev/staging/prod)Namespace 策略?

避坑提醒:不要误以为 Namespace 默认提供安全隔离,它只是命名空间,Pod 仍可通过 IP 跨 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 自动同步。”