K8s 面试通关指南:100 道核心题全解析
Kubernetes 面试题集涵盖了从基础到高级的各个方面,包括核心概念、架构设计、部署管理、监控运维、安全策略等。 本文按难度分 3 级:基础 30 题 → 中级 40 题 → 高级 30 题。
基础篇(30 题)
核心概念
| # | 问题 | 一句话答案 | 详见 |
|---|---|---|---|
| 1 | 什么是 Kubernetes? | 开源容器编排平台,自动部署、扩展和管理容器化应用 | k8s-troubleshooting-principles |
| 2 | K8s vs Docker Swarm? | K8s 功能丰富、扩展性强、生态活跃;Swarm 简单易用、适合中小集群 | — |
| 3 | K8s 核心组件? | 控制平面:apiserver/etcd/scheduler/controller-manager;工作节点:kubelet/kube-proxy/容器运行时 | — |
| 4 | 什么是 Pod? | K8s 最小部署单元,包含一个或多个容器,共享网络和存储 | pod-troubleshooting |
| 5 | 什么是 Deployment? | 管理无状态应用,提供声明式更新、滚动回滚、自动修复 | — |
| 6 | 什么是 Service? | 暴露应用的稳定访问地址,类型:ClusterIP/NodePort/LoadBalancer/ExternalName | service-troubleshooting |
| 7 | ConfigMap vs Secret? | ConfigMap 存非敏感配置(明文),Secret 存敏感信息(Base64) | configmap-mount-pitfalls |
| 8 | 什么是 Namespace? | 虚拟集群,用于资源隔离、权限控制和资源配额 | — |
| 9 | Label 和 Selector? | Label 是资源上的键值对,Selector 通过 Label 选择资源 | — |
| 10 | ReplicaSet 与 Deployment? | ReplicaSet 保证副本数,Deployment 管理 ReplicaSet 提供高级功能 | — |
| 11 | StatefulSet vs Deployment? | StatefulSet 管理有状态应用,Pod 有固定身份;Deployment 管理无状态应用 | k8s-statefulset-guide |
| 12 | 什么是 DaemonSet? | 确保每个节点运行一个 Pod 副本(日志收集、监控代理) | — |
| 13 | Job 和 CronJob? | Job 执行一次性任务,CronJob 按计划定时执行 | — |
| 14 | PV 和 PVC? | PV 是集群存储资源,PVC 是对 PV 的请求 | k8s-persistent-storage-guide |
| 15 | K8s 网络模型? | 扁平网络,所有 Pod 可直接通信无需 NAT | cni-comparison |
| 16 | 什么是 Ingress? | 管理外部 HTTP/HTTPS 访问,支持域名/路径路由和 TLS 终止 | k8s-service-access-troubleshooting |
| 17 | 什么是 RBAC? | 基于角色的访问控制,通过 Role/ClusterRole + Binding 管理权限 | resource-rbac-scheduling-troubleshooting |
| 18 | 什么是 ServiceAccount? | 为 Pod 提供访问 API 的身份,与 RBAC 配合控制权限 | — |
| 19 | 什么是 HPA? | 根据 CPU/指标自动水平扩展 Pod 数量 | — |
| 20 | 什么是 PDB? | 限制自愿中断期间不可用的 Pod 数量 | k8s-rolling-update-pitfalls |
| 21 | Node/Pod Affinity? | 控制 Pod 调度位置的规则(亲和性和反亲和性) | — |
| 22 | Taints 和 Tolerations? | Taint 标记节点,Toleration 让 Pod 容忍标记 | resource-rbac-scheduling-troubleshooting |
| 23 | Init Containers? | 主容器启动前运行的初始化任务容器 | — |
| 24 | Sidecar 容器? | 与主容器同 Pod 运行,提供日志、监控、网络代理等辅助功能 | — |
| 25 | K8s 事件机制? | Events 记录集群重要事件,用于故障排查 | — |
| 26 | 什么是 Helm? | K8s 包管理工具,管理 Chart 的安装、升级、回滚 | — |
| 27 | 什么是 Operator? | 自定义控制器,封装应用领域知识,管理应用生命周期 | — |
| 28 | 集群管理工具? | kubeadm/minikube/kind/kops/kubespray | — |
| 29 | 集群备份恢复? | 备份 etcd + 配置文件,使用 Velero | — |
| 30 | 监控方案? | Prometheus+Grafana(指标)、EFK(日志)、Jaeger(追踪) | — |
中级篇(40 题)
调度与性能
| # | 问题 | 核心要点 |
|---|---|---|
| 31 | 调度器如何工作? | 过滤 → 评分 → 绑定三个阶段 |
| 32 | 集群性能优化? | 节点级(合理配置资源)+ Pod 级(requests/limits + 探针)+ 集群级(HPA + 调度策略) |
| 33 | 网络插件区别? | Calico(BGP)/Flannel(VXLAN)/Cilium(eBPF)/Weave Net/Canal |
| 34 | 高可用实现? | 控制平面多节点 + etcd 集群 + 负载均衡器 + PDB + 跨可用区部署 |
| 35 | 服务网格? | Istio/Linkerd,构建在 K8s 之上的流量管理/安全/可观测性层 |
| 36 | 蓝绿部署和金丝雀? | 蓝绿:两套环境切流;金丝雀:按比例逐步放量 |
| 37 | 安全最佳实践? | RBAC + Pod Security Standards + 镜像扫描 + 网络策略 + TLS + 非 root 运行 |
| 38 | 问题排查步骤? | Pod 状态 → 日志 → Events → 节点 → 服务 → 控制器 |
| 39 | 什么是 CRD? | 自定义资源定义,扩展 K8s API |
| 40 | 持久化存储实现? | PV/PVC/StorageClass 配合 |
| 41 | 集群联邦? | 多集群管理(Karmada),跨集群部署/负载均衡/高可用 |
| 42 | 多租户实现? | Namespace + 资源配额 + RBAC + NetworkPolicy |
| 43 | 自动伸缩机制? | HPA(Pod 级)+ VPA(资源级)+ Cluster Autoscaler(节点级) |
| 44 | 集群健康监控? | Prometheus + Grafana + Alertmanager + kube-state-metrics |
| 45 | Pod 生命周期? | Pending → Running → Succeeded/Failed/Unknown |
| 46 | 资源请求和限制? | Request 是调度依据,Limit 是使用上限 |
| 47 | 服务发现机制? | DNS(CoreDNS)+ 环境变量 + API |
| 48 | 日志管理? | EFK(Elasticsearch+Fluentd+Kibana)或 Loki |
| 49 | 准入控制器? | 资源创建/更新/删除时的验证和修改(LimitRanger/ResourceQuota/Webhook) |
| 50 | TLS 证书配置? | cert-manager + ClusterIssuer 自动颁发续期 |
| 51 | 垃圾回收? | 自动清理终止 Pod/未使用镜像/PV |
| 52 | 跨集群通信? | 服务网格 / 集群联邦 / VPN / 外部负载均衡器 |
| 53 | RBAC 权限模型? | Role/ClusterRole + RoleBinding/ClusterRoleBinding |
| 54 | 有状态应用部署? | StatefulSet + Headless Service + PVC |
| 55 | 节点亲和性和反亲和性? | required(必须) / preferred(优选) 两种策略 |
| 56 | 自动备份实现? | Velero(资源+PV)+ etcd 备份 + Git 版本控制 |
| 57 | Pod 安全策略? | PodSecurityStandards:Privileged/Baseline/Restricted 三级 |
| 58 | 服务限流? | Istio 限流 / Nginx Ingress 限流 / 应用层/资源限制 |
| 59 | 自定义控制器? | 控制循环(观察→比较→行动),用 client-go/operator-sdk/kubebuilder 开发 |
| 60 | CI/CD 实现? | Jenkins/GitLab CI/GitHub Actions + Argo CD(GitOps) |
| 61 | 网络策略? | NetworkPolicy 控制 Pod 间通信(标签+端口+IP) |
| 62 | 应用性能监控? | Prometheus+Grafana + OpenTelemetry + APM |
| 63 | PodDisruptionBudget? | 保证自愿中断期间最少可用 Pod 数 |
| 64 | 多环境部署? | Namespace 隔离 / 不同集群 / Helm values / Argo CD GitOps |
| 65 | Cluster Autoscaler? | Pod 无法调度时自动加节点,低利用率时自动减节点 |
| 66 | 服务发现和负载均衡? | DNS 服务发现 + ClusterIP/NodePort/LoadBalancer/Ingress 负载均衡 |
| 67 | 配置管理最佳实践? | ConfigMap + Secret + Helm + External Secrets + GitOps |
| 68 | 日志收集实现? | Fluentd DaemonSet / Fluent Bit / Loki / 云服务日志 |
| 69 | 存储类(StorageClass)? | 动态创建 PV 的模板,定义存储类型和参数 |
| 70 | 高可用数据库? | StatefulSet + 数据库集群(主从/副本集)+ Operator |
高级篇(30 题)
架构与运维
| # | 问题 | 核心要点 |
|---|---|---|
| 71 | 自定义调度实现? | Scheduler Extender / 自定义调度器 / 调度器框架插件 / 优先级抢占 |
| 72 | 网络架构设计? | 网络插件选择 + 拓扑设计 + 安全 + 性能优化 |
| 73 | 集群升级策略? | 控制平面滚动升级 → drain 工作节点 → 验证兼容性 → 准备回滚 |
| 74 | 灾难恢复? | etcd 备份 + PV 备份 + 跨区域复制 + 故障转移 + 演练 |
| 75 | 服务网格架构? | 数据平面(Envoy Sidecar)+ 控制平面(流量管理/安全/可观测性) |
| 76 | 存储性能优化? | 存储选择(SSD)+ PV 配置优化 + 应用 IO 模式优化 |
| 77 | 安全架构设计? | 深度防御 / 最小权限 / 零信任 / 容器安全 / 集群安全 / 审计监控 |
| 78 | 多区域部署? | 独立集群 + 跨区域负载均衡 + 数据复制 + 区域亲和性 |
| 79 | Operator 模式? | CRD + 控制器 + 领域知识 = 自动化应用管理 |
| 80 | 网络性能优化? | 网络插件选择 + MTU/缓冲区 + RDMA + 减少跨 Pod 通信 |
| 81 | 容量规划? | 需求评估 + 节点选择 + 集群规模 + 资源管理 + 自动伸缩 |
| 82 | 自动故障修复? | 节点/应用/集群级故障检测 + 自动恢复 + Prometheus 集成 |
| 83 | GitOps 实践? | 声明式配置 + Git 版本控制 + 自动同步(Argo CD/Flux) |
| 84 | 多租户隔离? | Namespace + RBAC + NetworkPolicy + 存储隔离 + 监控隔离 |
| 85 | API 服务器工作原理? | 认证→授权→准入控制→验证→存储→响应 |
| 86 | 服务治理? | 流量管理 + 安全 + 可观测性 + 配置管理 |
| 87 | 集群联邦(Karmada)? | 跨集群资源管理 / 服务发现 / 负载均衡 / 高可用 |
| 88 | 成本优化? | 资源管理 + 节点选择(抢占式实例)+ 存储优化 + 网络优化 |
| 89 | 云原生架构? | 微服务 + 容器化 + 编排 + DevOps + 持续交付 + 弹性伸缩 + 服务网格 |
| 90 | 日志管理和分析? | 收集(Fluentd)→ 存储(ES)→ 分析(Kibana)→ 告警 |
| 91 | 集群网络安全? | NetworkPolicy + TLS/mTLS + 防火墙 + 安全审计 |
| 92 | 自动化运维? | GitOps + 监控告警 + 自动故障处理 + 备份恢复 + 升级管理 |
| 93 | 服务网格 vs API 网关? | 服务网格:服务间通信;API 网关:外部流量入口 |
| 94 | 存储架构设计? | 需求分析 + 类型选择(PV/PVC/StorageClass)+ 分层 + HA + 监控 |
| 95 | 监控可观测性最佳实践? | 分层监控 + Prometheus + Grafana + Alertmanager + Loki + Jaeger |
| 96 | 多云部署? | 独立集群 + 跨云网络 + Helm 统一部署 + 数据复制 + 统一监控 |
| 97 | 边缘计算方案? | K8s 部署到边缘节点 + 云边协同(KubeEdge/K3s) |
| 98 | 资源利用率优化? | 合理 requests/limits + VPA + HPA + Cluster Autoscaler + 资源清理 |
| 99 | 安全审计? | API 审计日志 + 安全扫描 + 合规检查 + 事件响应 |
| 100 | 灾备方案? | etcd/PV/配置备份 + 恢复策略 + 多区域 + 演练 + 监控 |