首页公务知识文章正文

K8s面试常见问题,Kubernetes面试指南

公务知识2025年04月12日 10:45:561admin

K8s面试常见问题,Kubernetes面试指南Kubernetes(简称K8s)作为当前容器编排领域的事实标准,其相关岗位的面试往往涉及广泛而深入的技术考察。我们这篇文章系统梳理了Kubernetes面试中高频出现的核心问题,包含基础概

k8s面试常见问题

K8s面试常见问题,Kubernetes面试指南

Kubernetes(简称K8s)作为当前容器编排领域的事实标准,其相关岗位的面试往往涉及广泛而深入的技术考察。我们这篇文章系统梳理了Kubernetes面试中高频出现的核心问题,包含基础概念类问题架构设计类问题网络相关难题存储解决方案安全实践要点故障排查技巧场景设计难题等七大类问题,并附有详细解答和扩展知识点,帮助求职者全面提升K8s面试通过率。


一、基础概念类高频问题

1. Kubernetes核心组件及其作用

  • Master节点组件:API Server(集群入口)、Scheduler(Pod调度)、Controller Manager(维护集群状态)、etcd(键值数据库)
  • Node节点组件:Kubelet(节点代理)、Kube-proxy(网络代理)、Container Runtime(容器运行时)

2. Pod与容器的本质区别

Pod是K8s最小调度单元,可包含一个或多个容器(共享网络命名空间和存储卷)。典型场景包括:

  • 主容器+Sidecar容器(如日志收集)
  • 需要紧密耦合的应用(如Web服务器与缓存服务)

二、架构设计深度问题

1. Deployment/StatefulSet/DaemonSet的适用场景对比

控制器类型 典型特征 使用场景
Deployment 无状态、滚动更新 Web应用、微服务
StatefulSet 稳定网络标识、持久存储 数据库、有状态中间件
DaemonSet 每个节点运行1个Pod 日志收集、节点监控

2. 自定义控制器(Custom Controller)的实现原理

通过client-go库监听K8s API事件(Create/Update/Delete),结合Operator模式实现业务逻辑。关键步骤包括:

  1. 定义Custom Resource(CRD)
  2. 实现Informer事件处理机制
  3. 编写协调循环(Reconcile Loop)

三、网络相关核心难题

1. Service的ClusterIP实现原理

  • kube-proxy通过iptables/ipvs规则将虚拟IP转发到后端Pod
  • 典型流量路径:Client → ClusterIP → iptables → Endpoint Pod

2. Ingress与LoadBalancer的选型建议

  • LoadBalancer:云厂商提供的L4层负载,每个Service独立外网IP
  • Ingress:L7层路由(支持HTTP/HTTPS),通过Ingress Controller(如Nginx)实现
  • 生产环境推荐组合使用:LoadBalancer暴露Ingress Controller,再由Ingress路由内部服务

四、存储解决方案精要

1. PV/PVC的设计哲学

  • PersistentVolume(PV):集群存储资源(如NFS卷、云磁盘)
  • PersistentVolumeClaim(PVC):用户存储请求(指定大小和访问模式)
  • 动态供给(StorageClass)可自动按需创建PV

2. 有状态应用数据持久化方案

  • StatefulSet + Headless Service + PVC(推荐方案)
  • 注意设置Pod反亲和性避免节点单点故障
  • 定期备份etcd集群数据和PV快照

五、安全实践关键要点

1. RBAC授权最佳实践

  • 遵循最小权限原则
  • 使用Role/ClusterRole定义权限集
  • 通过RoleBinding/ClusterRoleBinding关联账户

2. Pod安全策略(PSP)配置示例

apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: restricted
spec:
  privileged: false         # 禁止特权模式
  allowPrivilegeEscalation: false
  requiredDropCapabilities: # 必须丢弃的危险Capability
    - ALL
  volumes:
    - 'configMap'
    - 'emptyDir'
    - 'persistentVolumeClaim'

六、故障排查黄金法则

1. Pod异常排查流程

  1. kubectl describe pod <name> 查看Events信息
  2. kubectl logs <pod> [-c container] 检查容器日志
  3. 进入Pod调试:kubectl exec -it <pod> -- sh
  4. 检查资源配额:kubectl top pod/node

2. 网络连通性测试方法

  • 跨节点通信:使用curl <ClusterIP>:<port>测试Service
  • DNS解析:nslookup <service-name>验证CoreDNS
  • 网络策略:检查NetworkPolicy是否阻止流量

七、场景设计进阶问题

1. 设计高可用MySQL集群方案

  • 使用StatefulSet确保Pod有序部署
  • 通过Headless Service提供稳定DNS解析
  • 配置ReadWriteOnce PVC存储数据
  • 添加PodDisruptionBudget保障最小可用实例

2. 实现蓝绿发布的技术路径

  1. 创建v2 Deployment(与v1标签不同)
  2. 通过Service selector切换流量
  3. 验证通过后删除v1资源
  4. (可选)结合Ingress Canary功能逐步放量

面试实战Q&A

面试官常问:如何优化K8s集群性能?

  • 节点层面:合理设置requests/limits,启用HPA自动扩缩容
  • 调度优化:使用节点亲和性/反亲和性,配置Pod拓扑分布
  • 网络加速:选择高性能CNI插件(如Calico eBPF模式)

如何证明你的K8s实战经验?

  • 展示故障排查案例(如OOMKilled问题分析)
  • 讨论自定义Operator开发经历
  • 介绍集群监控方案(Prometheus+Granfa告警配置)

标签: Kubernetes面试K8s面试题容器编排面试

康庄大道:您的公务员与事业单位编制指南Copyright @ 2013-2023 All Rights Reserved. 版权所有备案号:京ICP备2024049502号-18