K8s运维高频面试题及详细实操答案(真实面试版)_第1页
K8s运维高频面试题及详细实操答案(真实面试版)_第2页
K8s运维高频面试题及详细实操答案(真实面试版)_第3页
K8s运维高频面试题及详细实操答案(真实面试版)_第4页
K8s运维高频面试题及详细实操答案(真实面试版)_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

K8s运维高频面试题及详细实操答案(真实面试版)一、K8s基础认知面试题1、简单说说Kubernetes是什么,核心作用是什么?参考答案:K8s是一款开源的容器编排管理工具,是目前云原生架构的核心底座。简单说,就是用来统一管理服务器上所有Docker容器的平台。核心作用主要有5点,都是生产环境最常用的:1.自动部署:一键批量发布容器应用,不用逐台服务器操作;2.弹性扩缩容:业务高峰期自动加容器,低峰期自动减容器,节省资源;3.自愈修复:容器挂了、节点宕机,自动重启、迁移容器,保证业务可用;4.负载均衡:自动分发访问流量到多个容器,避免单点压力过大;5.版本迭代回滚:支持滚动更新,升级失败可一键回滚,保障业务稳定。2、K8s集群核心组件有哪些?分别说说控制面和节点面组件作用参考答案:K8s集群分为控制面(Master)和工作节点(Node)两部分,生产环境一般多Master保证高可用。控制面核心组件:1.kube-apiserver:集群入口,所有操作命令(kubectl、yaml提交)都经过它,负责鉴权、转发、存储数据到etcd,是集群的网关;2.etcd:集群唯一存储,存放所有集群资源数据(节点、Pod、配置、权限等),必须高可用;3.kube-controller-manager:控制器总管,维持集群状态和预期状态一致,比如节点故障修复、Pod副本数量维持;4.kube-scheduler:调度器,负责把新建的Pod,根据节点资源、亲和性、污点策略,分配到合适的Node节点上;5.cloud-controller-manager:对接云厂商资源,云上集群必备,本地集群可忽略。工作节点核心组件:1.kubelet:节点代理,接收apiserver指令,管理本机Pod的创建、启动、停止、健康检查;2.kube-proxy:网络代理,维护节点流量转发规则,实现Pod、Service之间的网络通信和负载均衡;3.容器运行时:比如docker、containerd,负责真正拉取镜像、启动容器、运行程序。3、说说K8s中Pod是什么?为什么最小单元是Pod而不是容器?参考答案:Pod是K8s的最小调度、管理单元,一个Pod可以包含一个或多个紧密耦合的容器。容器只是运行程序的载体,K8s不会直接管理单个容器,核心原因:1.同一Pod内所有容器共享网络、存储、IP地址,端口不能冲突,适合辅助容器和主容器协同工作;2.K8s的调度、重启、扩缩容、健康检查都是基于Pod维度,统一管理更简洁;3.解决了容器单一职责问题,比如主容器跑业务,sidecar容器负责日志收集、监控、代理,互不干扰。生产经验:90%场景都是一个Pod一个容器,只有日志、网关代理等特殊场景用多容器Pod。二、核心资源对象面试题(高频)1、Deployment、StatefulSet、DaemonSet三者区别和使用场景?参考答案:这是生产最常用的三种控制器,核心区别是是否有状态、是否全节点部署。1、Deployment(无状态应用首选)特点:Pod随机名称、随机IP,副本之间无区别,可随意扩缩、重建。适用场景:所有无状态业务,比如Nginx、前端服务、后端接口、微服务。2、StatefulSet(有状态应用首选)特点:Pod名称固定、有序(web-0、web-1)、稳定网络标识、独立持久化存储,重建Pod数据不丢失。适用场景:有状态中间件,MySQL、Redis、ES、Kafka、Zookeeper等集群组件。3、DaemonSet(节点全局部署)特点:集群每个节点(或匹配标签节点)只跑一个Pod,节点新增自动部署,节点删除自动回收。适用场景:集群全局监控、日志、网络组件,比如Prometheus节点采集、Filebeat、Calico、节点监控插件。2、Service是什么?三种Service类型区别?参考答案:Service是K8s的服务暴露和负载均衡资源,核心作用是固定访问入口,屏蔽Pod动态IP变化,因为Pod重建后IP会变,ServiceIP永久不变。三种常用类型:1、ClusterIP(默认)仅集群内部可访问,只能用于Pod之间互相调用,外部无法访问,适合微服务内部通信。2、NodePort开放所有节点固定端口,外网通过【节点IP+端口】访问服务,端口范围30000-32767,适合测试环境、小规模业务对外暴露。3、LoadBalancer对接云厂商负载均衡器,分配独立公网IP,生产环境对外业务首选,高可用、稳定性强,仅云集群支持。补充:生产正式对外业务,基本不用NodePort,统一用Ingress+ClusterIP方式管理。3、Ingress和Service的区别?生产怎么配合使用?参考答案:Service:负责四层TCP/UDP负载均衡,只能基于IP+端口转发,不支持域名、路径、证书配置。Ingress:负责七层HTTP/HTTPS负载均衡,支持域名匹配、路径分发、SSL证书、限流、重写规则。生产标准架构:业务Pod配置ClusterIP类型Service,仅对内暴露;再通过Ingress绑定域名、配置规则,统一入口对外提供访问。避免多个服务占用多个NodePort端口,方便统一运维、证书管理、流量管控。4、ConfigMap和Secret区别及使用场景?参考答案:ConfigMap:存放非敏感配置,明文存储,比如配置文件、环境变量、启动参数、日志配置。Secret:存放敏感数据,Base64加密存储,不会明文展示,比如数据库密码、token、密钥、证书。两者使用方式一致:可以挂载为文件、注入为Pod环境变量。生产注意:Secret只是简单加密,并非高强度加密,核心敏感数据建议配合第三方密钥管理工具。三、K8s网络与存储面试题1、K8sPod之间网络通信原理是什么?Calico工作机制?参考答案:K8s本身没有内置网络,必须依赖CNI网络插件,生产99%用Calico。Pod通信分为三种场景:1.同一节点Pod通信:通过本机网桥直接转发,无需跨节点;2.不同节点Pod通信:Calico通过BGP协议同步路由规则,节点之间直接路由转发,无需网关;3.Pod访问外网/外网访问Pod:通过节点iptables规则做SNAT/DNAT转换。Calico核心优势:支持网络策略(NetworkPolicy),可以精准限制Pod之间的访问权限,实现业务隔离,保障集群安全。2、K8s存储PV、PVC是什么?二者关系?参考答案:PV(持久化卷):集群级别的存储资源,由运维提前创建,对应服务器磁盘、云盘、NFS等真实存储。PVC(持久化卷声明):Pod使用存储的申请配置,属于命名空间资源。二者关系:PVC是使用者,PV是资源池。Pod通过PVC申请存储,PVC会绑定符合条件的PV,实现数据持久化。Pod删除、重建,数据保留在PV中,不会丢失。生产常用:StorageClass动态绑定PV,不用手动创建PV,自动分配存储,运维效率更高。四、集群运维与故障排查(面试重中之重)1、Pod常见状态有哪些?CrashLoopBackOff、ImagePullBackOff、Pending报错怎么排查?参考答案:先讲核心排查命令,所有Pod异常通用:kubectldescribepodpod名、kubectllogspod名1、ImagePullBackOff镜像拉取失败常见原因:镜像地址错误、镜像标签不对、私有镜像未配置密钥、节点无法连接镜像仓库、镜像已删除。排查:核对镜像地址、测试节点能否手动pull镜像、检查secret密钥配置。2、CrashLoopBackOff容器反复启动崩溃最常见生产问题,核心是容器启动后立刻退出,kubelet反复重启。常见原因:启动命令错误、配置文件错误、端口占用、资源不足、程序代码报错、权限不足。排查:查看容器日志、进入容器手动执行启动命令、检查配置文件、查看资源限制。3、Pending处于调度等待状态说明Pod没有被调度到任何节点,没开始创建。常见原因:节点资源不足(CPU/内存不够)、节点有污点无法调度、Pod亲和性不匹配、集群没有空闲节点、PVC绑定失败。2、节点NotReady状态怎么排查?参考答案:节点NotReady说明节点健康检查失败,无法正常承载Pod,排查步骤固定:1.查看节点状态详情:kubectldescribenode节点名,看报错事件;2.登录节点,检查kubelet服务是否正常:systemctlstatuskubelet;3.检查节点资源:CPU、内存、磁盘是否爆满,磁盘满会直接导致节点NotReady;4.检查网络插件(Calico)状态,网络异常会导致节点心跳丢失;5.检查节点时间、防火墙、DNS解析是否正常。处理:临时故障重启kubelet,硬件/磁盘问题清空节点、驱逐Pod后下线节点。3、说说K8s滚动更新原理?更新过程中业务会不会中断?参考答案:滚动更新核心是先启动新Pod,确认新Pod就绪后,再销毁旧Pod,分批更新。通过maxSurge(最大超量)、maxUnavailable(最大不可用)两个参数控制更新节奏。正常配置下业务不会中断:更新时先拉起新版本Pod,就绪探针检测通过后,接入流量,再逐步删除旧版本Pod,实现平滑过渡。如果探针配置错误、启动超时、程序启动报错,会导致更新失败,触发回滚机制,保障业务可用。4、如何实现Pod资源限制?不限制资源会有什么问题?参考答案:通过yaml中resources配置requests和limits:1.requests:Pod调度需要的最小资源,调度器根据这个值选节点;2.limits:Pod最大可用资源,超过会被限流、杀死重启。不限制资源的严重问题:业务异常暴涨占用整机CPU、内存,抢占节点所有资源,导致同一节点其他Pod卡顿、崩溃、集群大面积故障,生产环境所有业务必须配置资源限制。五、高阶运维与安全面试题1、K8s污点和容忍度是什么?生产怎么用?参考答案:污点是打在节点上的标签,作用是拒绝普通Pod调度到该节点;容忍度是打在Pod上的配置,允许Pod调度到有对应污点的节点。生产常用场景:1.给Master节点打污点,禁止业务Pod调度,只跑集群组件,保障控制面稳定;2.区分业务节点、日志节点、监控节点,通过污点隔离不同业务,避免互相影响;3.新节点上线未就绪,打污点临时禁止调度,调试完成后去除污点。2、如何保障K8s集群安全?生产常规安全策略?参考答案:1.权限管控:开启RBAC权限,不同运维、开发分配最小权限,禁止匿名访问apiserver;2.网络隔离:配置NetworkPolicy,限制不同命名空间、不同业务Pod的互相访问;3.镜像安全:私有镜像仓库,禁止使用非法、高危镜像,镜像扫描漏洞;4.资源限制:所有Pod配置CPU、内存limits,防止资源耗尽攻击;5.日志审计:开启集群操作审计日志,记录所有kubectl操作、资源变更;6.节点安全:关闭节点多余端口、定期升级内核和K8s版本,修复漏洞。3、K8s集群备份恢复怎么做?参考答案:集群所有核心数据都在etcd,备份核心就是备份etcd数据。1.定时执行etcd快照备份,保留多份历史备份;2.备份集群关键yaml资源配置;3.集群故障时,停止kubelet、kube-apiserver服务,通过etcd快照恢复数据;4.恢复完成后重启集群组件,校验节点、Pod、服务状态。生产建议:每日自动备份,定期做恢复演练,避免备份失效。六、实操命令高频面试题1、日常运维最常用的kubectl命令有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论