当前位置: 首页 > news >正文

关于k8s Kubernetes的10个面试题

1. 什么是Kubernetes?它的核心功能是什么?

答案:Kubernetes是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。核心功能包括:

  • 自动化容器调度与负载均衡
  • 自我修复(自动重启失败的容器)
  • 水平扩展(根据负载动态调整实例数量)
  • 服务发现与负载均衡
  • 滚动更新与回滚

2. 解释Pod和Deployment的区别

答案

  • Pod:K8s的最小调度单元,包含一个或多个共享网络/存储的容器。
  • Deployment:更高层抽象,用于管理Pod的声明式更新(如滚动升级)、副本数和回滚,确保应用的高可用性。

3. 如何排查Pod一直处于Pending状态的问题?

答案:可能原因及排查步骤:

  1. 资源不足kubectl describe pod <pod-name>查看事件,检查节点资源是否足够。
  2. 节点选择器/污点:检查Pod的nodeSelectortolerations是否匹配节点标签。
  3. 存储卷挂载失败:检查PV/PVC是否绑定成功。

4. 什么是Service?ClusterIP、NodePort和LoadBalancer有什么区别?

答案

  • Service:为一组Pod提供稳定的网络端点。
    • ClusterIP:默认类型,仅在集群内部访问。
    • NodePort:通过节点IP和静态端口暴露服务(范围30000-32767)。
    • LoadBalancer:通过云提供商的负载均衡器对外暴露服务。

5. 如何在不中断服务的情况下更新Deployment的镜像版本?

答案:使用滚动更新策略:

kubectl set image deployment/<deployment-name> <container-name>=<new-image> --record

或修改Deployment的YAML文件后apply。K8s会逐步替换旧Pod,确保服务可用。


6. 解释ConfigMap和Secret的作用及区别

答案

  • ConfigMap:存储非敏感配置(如环境变量、配置文件)。
  • Secret:存储敏感数据(如密码、密钥),以Base64编码(需注意编码≠加密)。
    两者均可通过环境变量或卷挂载到Pod中。

7. 什么是Ingress?它与Service有何不同?

答案

  • Ingress:管理外部访问集群服务的规则(如HTTP路由、域名绑定),需配合Ingress Controller(如Nginx、Traefik)使用。
  • Service:提供内部服务发现和负载均衡,Ingress是其上层代理。

8. 如何限制Pod的资源使用?

答案:在Pod的resources字段中设置请求(requests)和限制(limits):

resources:requests:cpu: "100m"memory: "256Mi"limits:cpu: "500m"memory: "1Gi"

9. 解释K8s的架构,包括Master和Worker节点组件

答案

  • Master节点
    • API Server:处理所有集群操作请求。
    • Scheduler:将Pod调度到合适节点。
    • Controller Manager:维护集群状态(如副本数)。
    • etcd:键值存储集群数据。
  • Worker节点
    • kubelet:管理Pod生命周期。
    • kube-proxy:处理网络规则。
    • 容器运行时(如Docker/containerd)。

10. 如何备份和恢复K8s集群?

答案

  1. 备份etcd
    etcdctl snapshot save /backup/etcd-snapshot.db
    
  2. 备份资源YAML
    kubectl get all --all-namespaces -o yaml > cluster-backup.yaml
    
  3. 恢复:通过etcd快照或重新apply YAML文件。

附加建议

  • 根据面试者经验调整难度(如问Helm、Operator、HPA等进阶问题)。
  • 结合场景题考察实战能力(如“如何设计一个高可用K8s集群?”)。

希望这些问题能帮助你准备面试!

http://www.lryc.cn/news/584637.html

相关文章:

  • 【牛客刷题】跳台阶(三种解法深度分析)
  • Java 21 核心技术:虚拟线程与结构化并发实战
  • Django专家成长路线知识点——AI教你学Django
  • Spring Boot + Javacv-platform:解锁音视频处理的多元场景
  • 处理Web请求路径参数
  • 小程序开发平台,自主开发小程序源码系统,多端适配,带完整的部署教程
  • GitHub上优秀的开源播放器项目介绍及优劣对比
  • PPT 倒计时工具:把控节奏,掌握时间,超简单超实用让演示游刃有余
  • 电脑息屏工具,一键黑屏超方便
  • C语言——预处理详解
  • ADVANTEST R4131 SPECTRUM ANALYZER 光谱分析仪
  • arm架构,arm内核,处理器之间的关系
  • 【JVM|垃圾回收】第二天
  • AI时代的接口调试与文档生成:Apipost 与 Apifox 的表现对比
  • 发现和发明浅谈
  • IDEA运行Spring项目报错:java: 警告: 源发行版 17 需要目标发行版 17,java: 无效的目标发行版: 17
  • 零基础入门物联网-远程门禁开关:云平台创建
  • 【洛谷题单】--顺序结构(二)
  • 上位机与Modbus的32位数据交互
  • 从Debug中学习MiniGPT4
  • 书生大模型实战营——1. 大语言模型原理与书生大模型提示词工程实践
  • 列表页与详情页的智能识别:多维度判定方法与工业级实现
  • uvm subscriber
  • 正向代理服务器Squid:功能、架构、部署与应用深度解析
  • [2025CVPR]CCFS:高IPC数据集蒸馏的课程式粗细筛选技术解析
  • 自动驾驶数据集综述:统计特征、标注质量与未来展望
  • (鱼书)深度学习入门2:手搓感知机
  • OpenAI正准备推出一款搭载人工智能功能的网络浏览器,试图直接挑战Alphabet旗下
  • chatgpt是怎么诞生的,详解GPT1到GPT4的演化之路及相关背景知识
  • 机器人接入AI的发展前景:从开发者视角看技术融合与生态构建