版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年容器K8s运维工程师数字化岗位刷题及答案一、岗位画像与测评规则2026年容器与Kubernetes运维岗的笔试题,已经从「背命令、记概念」转向「会判断、会排障、会设计、会算账」。同样的CrashLoopBackOff,早期题目只考含义,现在考的是「先看describe还是先看logs、Events里哪条信息最可疑、生产上能不能直接kubectldelete重启」——后者的职业判断力才是企业真正付费的部分。本套模拟卷面向目标岗位为容器/K8s运维工程师、SRE、云原生平台工程师的候选人,按真实笔试的题型比例与时限设计。建议以120分钟完整限时作答,再对照第三部分参考答案逐题复盘。主观题(简答、场景、综合)设有踩分点,供候选人自查,也供面试官作为结构化评分参考。试卷总分150分,建议期为120分钟。各题型分值与时间配比如下。题型题号题量每题分小计建议用时单选题1—202024025分钟多选题21—301033020分钟判断题31—40101105分钟简答题41—44452020分钟场景题45—462153030分钟综合题471202020分钟合计47题47——150120分钟知识范围与权重建议按上表倒推复习投入:核心资源与生命周期25%、调度与工作负载15%、网络与存储15%、容器运行时与镜像15%、安全与权限10%、可观测性与故障排查10%、CI/CD与GitOps5%、容量与成本(数字化运营)5%。比例失衡的复习计划,往往在客观题拿高分,却在场景题上暴露「只会操作、不会决策」的短板。二、模拟试卷(题目部分)1.单选题(1—20)第1题:Pod长时间处于Pending状态,下列哪一项最不可能是直接原因?A.节点CPU与内存均不满足Pod的requestsB.nodeSelector或节点亲和规则找不到可匹配节点C.镜像仓库认证失败,无法拉取镜像D.绑定的PVC一直处于Pending未完成绑定第2题:容器退出码为137,以下哪种判断方式最可靠?A.137=128+9,说明容器被SIGKILL杀死,一定是OOMB.查看容器状态的Reason/LastState是否为OOMKilled,并配合节点dmesg确认C.退出码137说明是应用自身主动退出D.137说明是CrashLoopBackOff造成的第3题:某Deployment副本数为4,maxSurge=25%,maxUnavailable=25%,则滚动更新过程中,新老Pod合计总数最多为多少?A.4B.5C.8D.6第4题:关于无头服务(HeadlessService),下列说法正确的是?A.ClusterIP设置为即为无头服务B.无头服务不能与StatefulSet配合使用C.无头服务不分配ClusterIP,DNS会直接返回后端各个Pod的IP记录D.无头服务仅支持TCP协议第5题:kube-proxy支持多种工作模式,其中支持更丰富的负载均衡调度算法(如rr、lc、sh等)的是?A.userspace模式B.iptables模式C.ipvs模式D.nftables模式固定实现第6题:某ConfigMap被Pod以环境变量方式引用,运维修改该ConfigMap后,Pod内环境变量会发生什么?A.立即全部更新B.约1分钟后自动更新,无需重启C.环境变量不会自动注入,需要重建Pod才能读取新值D.只有重启kubelet才会更新第7题:PV的回收策略为Delete时,删除PVC后底层存储的行为是?A.云盘、云存储等动态卷通常会被直接删除,数据不可恢复B.PV会进入Released状态,等待管理员手工清理C.PV会立即重新绑定给下一个PVCD.底层存储桶会被保留并打上归档标签第8题:HPA计算目标副本数时,若当前副本数为2,当前平均CPU使用率为200m,目标值设为50m,则期望副本数为?A.4B.6C.8D.16第9题:Pod中负责创建并持有网络命名空间的容器是?A.业务主容器B.Init容器C.Pause(infra/sandbox)容器D.Sidecar容器第10题:下列哪个不属于KubernetesPod的合法phase?A.PendingB.ContainerCreatingC.RunningD.Failed第11题:关于Toleration(容忍),以下说法正确的是?A.给Pod添加容忍后,该Pod一定会被调度到带对应污点的节点B.容忍只能让Pod具备调度到带污点节点的资格,不能保证调度到该节点C.容忍可以替代亲和性来完成定向调度D.默认情况下所有Pod都带有对control-plane:NoSchedule的容忍第12题:某应用需要对外提供稳定入口,客户端来源IP必须保留,最优方案是?A.ServiceexternalTrafficPolicy:ClusterB.ServiceexternalTrafficPolicy:LocalC.直接使用PodIP对外暴露D.使用Ingress并关闭TLS第13题:kubectldrain与kubectlcordon的核心区别是?A.两者没有区别B.cordon会驱逐Pod,drain只是标记不可调度C.drain在标记不可调度的同时会逐出Pod,cordon仅标记不可调度D.drain只对DaemonSet生效第14题:StatefulSet中,删除Pod后Kubernetes的行为是?A.直接删除对应PVCB.Pod会以相同名称重新创建,并尽量复用原网络标识和存储C.新Pod名称会追加随机后缀D.StatefulSet会拒绝重建第15题:Kubernetes中默认的Pod优雅终止宽限期(terminationGracePeriodSeconds)是?A.0秒B.10秒C.30秒D.60秒第16题:关于Service的NodePort取值范围,正确的是?A.1—65535B.1024—65535C.30000—32767D.8080—8081第17题:kubectllogs查看已被OOM杀死的上一次容器日志,应使用哪个参数?A.--all-containersB.--since=0C.--previousD.--tail=0第18题:Pod配置restartPolicy:Always,主进程正常退出且退出码为0,kubelet会?A.保持容器Completed不再重启B.重新拉起容器C.删除整个PodD.将节点标记为NotReady第19题:对运行中的Pod进行临时排障,希望不重启Pod就进入其网络命名空间执行命令,最合适的机制是?A.kubectlexecB.kubectlattachC.临时容器(EphemeralContainers,kubectldebug)D.直接登录节点使用dockerexec第20题:Deployment回滚到上一版本,正确命令是?A.kubectlrolloutundodeployment/nginxB.kubectlscaledeployment/nginx--replicas=1C.kubectldeletedeployment/nginxD.kubectlpatchdeployment/nginx-p'{"spec":{"replicas":2}}'2.多选题(21—30)第21题:以下哪些原因可能导致Pod长期处于Pending?(多选)A.节点资源不足以满足requestsB.镜像仓库登录认证失败C.nodeSelector无匹配节点D.就绪探针持续失败E.绑定的PVC未完成绑定第22题:以下关于容器的安全加固,哪些做法是正确的?(多选)A.runAsNonRoot:true,禁止以root运行容器进程B.allowPrivilegeEscalation:false,禁止进程通过setuid等方式提权C.capabilities.add:["ALL"],开放所有内核能力以兼容业务D.设置seccompProfile为RuntimeDefaultE.直接使用hostNetwork:true以获得更好的网络性能第23题:Kubernetes调度器为Node统计已分配资源时,以下哪几项会被计入?(多选)A.所有Pod的requests.cpuB.所有Pod的requests.memoryC.所有Pod的limits.cpuD.所有Pod的requests.ephemeral-storageE.集群总物理内存的一半第24题:关于StatefulSet,以下说法正确的有?(多选)A.Pod名称具有确定性编号,如web-0,并按序创建B.缩容时优先删除编号最大的PodC.删除StatefulSet时,按默认行为PVC不会自动删除,需要管理员介入D.每个Pod必须使用独立的PVC,否则无法创建E.支持稳定的网络标识,配合无头服务可实现稳定的DNS名称第25题:关于NetworkPolicy,下列说法正确的有?(多选)A.只要创建NetworkPolicy对象即可生效,与CNI无关B.规则匹配依赖CNI底层强制执行,如Calico、Cilium等C.只能在Ingress方向生效,不能限制EgressD.支持通过PodSelector、NamespaceSelector和IPBlock组合匹配源与目的E.创建隔离策略后,未匹配到规则的其他流量默认被拒绝第26题:关于Ingress与IngressClass,以下说法正确的有?(多选)A.Ingress只是API对象,真正转发流量需要IngressControllerB.IngressClass可以指定该Ingress由哪个Controller处理C.一个集群中可以同时部署多个IngressControllerD.创建Ingress后集群会自动提供负载均衡能力,无需额外部署组件E.Ingress只能代理HTTP协议,不能配置TLS第27题:以下关于Prometheus监控体系组件的分工,正确的有?(多选)A.kube-state-metrics从APIServer获取集群对象状态指标B.node_exporter负责采集节点操作系统指标C.kubelet内置的cAdvisor负责采集容器CPU、内存指标D.Alertmanager负责存储时间序列数据E.ServiceMonitor(PrometheusOperator)用于动态管理抓取目标第28题:关于HPA(HorizontalPodAutoscaler),以下说法正确的有?(多选)A.支持基于CPU、内存以及自定义Metrics进行扩缩容B.扩容计算公式为「当前副本数×当前指标值/目标值」后向上取整C.minReplicas和maxReplicas约束最终副本数范围D.扩容存在默认的同步周期,通常不等于立即响应E.缩容有稳定窗口,避免指标抖动导致频繁缩容第29题:关于节点维护与PodDisruptionBudget(PDB),以下说法正确的有?(多选)A.cordon可以阻止新Pod调度到该节点B.drain会先标记节点为不可调度,再驱逐PodC.若驱逐会导致PDB不满足,drain会阻塞等待,不会强制删除D.驱逐通过EvictionAPI完成,Pod有机会执行优雅终止E.PDB可以阻止节点宕机造成的非自愿中断第30题:关于Pod的QoS等级,以下说法正确的有?(多选)A.Guaranteed要求每个容器同时设置CPU与内存的requests=limitsB.Burstable是有一个以上容器设置了requests或limits,但未达到Guaranteed要求C.BestEffort不设置任何CPU、内存requests与limitsD.节点资源紧张时,Guaranteed的Pod优先被驱逐E.QoS等级越高,容器越容易被OOMKilled3.判断题(31—40)第31题:给Pod添加Toleration后,该Pod会被优先调度到带对应污点的节点上。()第32题:节点NotReady后,kube-controller-manager中的节点控制器默认会在约5分钟后开始驱逐该节点上的Pod。()第33题:Deployment完成滚动更新后,旧的ReplicaSet会被立即删除,因此无法回滚。()第34题:Service设置externalTrafficPolicy:Local时,可以保留客户端源IP,但也可能导致各节点负载不均衡。()第35题:默认情况下,Secret在etcd中仅做base64编码存储,若未启用静态加密,并不具备强加密保护。()第36题:Job的restartPolicy可以设置为Always。()第37题:Pod设置hostNetwork:true后,直接复用宿主机网络栈,不需要再分配PodIP。()第38题:kubectlrolloutundodeployment/nginx可以将Deployment回滚到上一个ReplicaSet版本。()第39题:Pod的phase=Unknown通常说明apiserver无法从kubelet获取该Pod的最新状态。()第40题:修改ConfigMap后,以volume方式挂载的配置会在kubelet同步周期内更新到卷文件,但应用进程是否重新加载取决于应用自身。()4.简答题(41—44)第41题:请完整描述从用户执行kubectlapply-fdeployment.yaml到一个外部请求成功访问该Deployment下Pod的整条链路。要求写出涉及的核心组件,以及与「容器就绪、Service生效」相关的关键节点。第42题:集群中某工作节点突然NotReady,请从控制面与数据面两个角度分析:该节点上的Pod、Deployment/ReplicaSet控制器、ServiceEndpointSlice分别会发生什么?默认条件下需要多长时间才会触发Pod重建?第43题:某Pod持续CrashLoopBackOff,请按排查顺序给出不少于5条kubectl命令,并说明每条命令用于排除哪一类原因。第44题:说明kubectlcordon、kubectldrain、kubectluncordon三者的区别与典型协作场景。若节点上存在无PDB保护且只有一个副本的关键应用,drain可能发生什么?5.场景题(45—46)第45题:生产环境某应用Pod状态为Running,Readiness探针通过,但用户访问域名一直超时。请设计一套完整的排查路径,从「确认问题现象」到「逐层隔离」,最终定位故障网络层,并给出每一步的验证命令。要求覆盖Pod、Service、EndpointSlice、kube-proxy、Ingress/负载均衡、DNS等环节。第46题:某节点/var/lib/containerd所在分区使用率已达96%,节点上大量Pod开始被驱逐,新Pod调度到该节点后反复启动失败;kubectldescribe中大量出现ImageGCFailed、Evicted事件。请给出应急处理的优先级顺序,并说明:-为什么不能直接盲目执行crictlrmi--all或dockersystemprune-af;-如何定位大文件与异常日志;-如何为containerd配置日志轮转与镜像垃圾回收的合理阈值。6.综合题(47)第47题:某在线商城业务准备将「前端Nginx静态服务(无状态)+订单API(无状态、多副本)+MySQL(有状态)」整体迁移到Kubernetes集群。业务要求:支撑1000QPS,年度可用性99.95%,RTO≤2小时,RPO≤15分钟,且需要可视化监控与成本控制。请给出完整的架构与交付方案,至少覆盖以下维度:-工作负载类型选择(Deployment/StatefulSet)与副本、PDB、反亲和设计-服务暴露方式与流量入口-持久化与备份恢复机制-弹性伸缩策略、HPA指标选择-监控、告警、日志采集方案-安全基线(RBAC、NetworkPolicy、PodSecurityAdmission)-成本核算与资源配额(按1000QPS估算requests/limits)三、参考答案与解析出题人最想让候选人明白的一件事是:错误的「标准答案记忆」比「不会」更危险。以下解析不只是给结论,更会说明命题陷阱与生产环境中的真实含义。1.单选题解析(1—20)第1题【C】镜像仓库认证失败发生在kubelet拉取镜像阶段,此时Pod已通过调度并分配到具体节点,状态通常表现为ContainerCreating或ErrImagePull/ImagePullBackOff,而不是Pending。Pending是「尚未完成调度或调度前置条件未满足」的状态,资源不足、节点选择器不匹配、PVC未绑定都是经典原因。第2题【B】退出码137表示容器被SIGKILL杀死(128+9),但杀死它的既可能是OOMKiller,也可能是kubectldelete--force、节点驱逐、或者容器平台主动清理。仅凭137断言OOM是典型经验主义错误。必须结合容器Status.Reason=OOMKilled、kubelet事件和节点dmesg中的OOM记录综合判断。第3题【B】maxSurge=25%向上取整,允许滚动过程中比期望副本数多创建1个新Pod;maxUnavailable=25%向上取整,允许最少存在3个可用Pod。因此新老Pod总数量峰值=期望数4+surge1=5。这类计算题要特别注意向上取整:副本数为3时,25%向上取整同样是1。第4题【C】无头服务将clusterIP设置为None,DNS解析直接返回后端PodIP列表,常用于StatefulSet的稳定网络标识。需要注意:无头服务只是「不提供ClusterIP负载均衡入口」,后端Pod的自动发现仍依赖EndpointSlice机制。第5题【C】ipvs模式基于内核LVS,支持rr、wrr、lc、sh等多种调度算法,且在大规模Service场景下规则数远少于iptables,是生产集群主流配置。iptables模式虽然成熟,但规则规模大时存在性能拐点。第6题【C】这是K8s新手最易踩坑的「以为会自动生效」问题。通过env/envFrom注入的环境变量在Pod创建时写死,后续修改ConfigMap/Secret不会更新。volume方式挂载虽有kubelet周期同步(默认约1分钟),但应用是否重读文件取决于进程自身实现。生产上常用Reloader等工具在ConfigMap变更时触发滚动重启。第7题【A】Delete策略意味着删除PVC后,底层存储(云盘、云硬盘、存储桶等)随之一并删除,且通常不可恢复;Retain则保留数据,PV进入Released状态,需要管理员人工处理后才可恢复可用。对数据库等重要数据,选择Delete策略前必须确认备份有效。第8题【C】期望副本数=向上取整(当前副本数×当前指标值/目标值)=ceil(2×200m/50m)=ceil(8)=8。需要注意HPA默认的扩容冷却(约15秒同步周期)以及maxReplicas上限约束。第9题【C】containerd/CRI创建Pod时会先启动一个pause(infra/sandbox)容器,用于创建并持有Pod的网络命名空间、共享PID命名空间与IPC等资源。业务容器通过加入该命名空间实现网络共享。第10题【B】Pod的phase只有五种:Pending、Running、Succeeded、Failed、Unknown。ContainerCreating是kubectlgetpod展示的容器状态描述,并非phase字段取值。类似容易混淆的还有CrashLoopBackOff、Terminating,它们都不是phase。第11题【B】容忍解决的是「能不能进」,亲和性解决的是「想不想去」。Pod即使容忍了某个节点的污点,调度器也不会因此把该Pod优先调度到该节点;真正实现定向调度需要nodeSelector、节点亲和或节点名称。第12题【B】externalTrafficPolicy:Local将流量只转发到本地节点的Pod,不跨节点转发,因此保留源IP,但节点之间负载可能不均衡。Cluster模式会跨节点转发,源IP会被SNAT改写。第13题【C】cordon只把节点标记为SchedulingDisabled,已有Pod不受影响;drain会先cordon,再驱逐节点上的工作负载,并遵循优雅终止与PDB约束。uncordon则恢复可调度状态。第14题【B】StatefulSet的Pod有确定性标识。删除后,控制器会以相同的名称(如web-0)重建Pod,并尽量复用原PVC与网络标识,保证有状态服务的身份稳定性。若PVC被删除且无备份,数据将无法找回。第15题【C】默认terminationGracePeriodSeconds=30。删除Pod时,kubelet会向容器发送SIGTERM,等待优雅终止;超时后才发送SIGKILL。对需要较长时间排空连接的网关类应用,应适当调大该值。第16题【C】NodePort默认端口范围为30000—32767,可通过kube-apiserver的--service-node-port-range调整。查看端口号需用kubectlgetsvc,而不是去猜。第17题【C】--previous用于查看崩溃容器上一次(退出前)的日志。容器OOM或被杀死前写入stdout/stderr的内容,只有通过--previous才能回溯。--tail只控制行数,不影响选择哪一次实例。第18题【B】restartPolicy:Always下,无论容器退出码是否为0,kubelet都会按退避策略重新拉起容器。只有restartPolicy:Never或OnFailure才会在特定条件下不重启,这是Job/CronJob场景与长驻服务的核心差异。第19题【C】临时容器(EphemeralContainers)是故障排查利器:它不会重启Pod,不改变原容器状态,可以在已崩溃或缺少shell的Pod中注入排障容器。kubectldebug是标准入口,例如kubectldebug-itpod/nginx--image=busybox--target=nginx。第20题【A】kubectlrolloutundodeployment/nginx回滚到上一版本;可加--to-revision指定历史版本。Deployment会保留历史ReplicaSet(默认revisionHistoryLimit=10),这是「可回滚」的底层基础。2.多选题解析(21—30)第21题【A、C、E】资源不足、节点选择器不匹配、PVC未绑定均发生在调度阶段之前或调度判断环节,Pod停留在Pending。镜像认证失败与就绪探针失败分别发生在调度完成后的「拉镜像」与「启动检查」环节,对应ContainerCreating与Running状态。第22题【A、B、D】安全上下文加固的核心是「最小权限」。runAsNonRoot禁止root运行,allowPrivilegeEscalation:false禁止提权,seccompProfile:RuntimeDefault限制系统调用。capabilities.add:ALL等于放弃内核能力隔离,hostNetwork会扩大攻击面,均属于高危配置。第23题【A、B、D】调度器按requests进行资源核算,limits不参与调度决策(只影响运行时驱逐与OOM评分)。ephemeral-storage的requests同样计入节点可分配资源,是常被忽略的维度。节点可分配资源=总容量−系统预留−kubelet预留−eviction阈值。第24题【A、B、C、E】StatefulSet按编号顺序创建与缩容,保留PVC是默认行为。D选项是错误的:StatefulSet并非强制要求每个Pod独立PVC,也可以通过volumeClaimTemplates统一管理,是否使用取决于业务模型。第25题【B、D、E】NetworkPolicy必须在CNI支持强制策略的插件下才能生效。它同时支持Ingress与Egress方向,不是只限入站。A是「以为API对象创建即生效」的常见误解:若CNI不支持,策略对象存在但无实际约束力。第26题【A、B、C】Ingress只是规则定义,流量真正由IngressController承载。一个集群可以部署多个Controller(如ingress-nginx、traefik),通过IngressClass区分。D、E均为错误表述:Controller需要单独部署,Ingress也支持TLS配置。第27题【A、B、C、E】Alertmanager负责告警路由、去重、静默与通知,不负责时序数据存储——存储由PrometheusServer完成。D混淆了组件职能。其余四项均为标准监控分工。第28题【A、B、C、D、E】HPA核心公式为:目默认扩容同步周期约15秒,缩容稳定窗口约5分钟,这些参数可通过kube-controller-manager启动参数调整。所有选项表述均正确。第29题【A、B、C、D】E是经典陷阱:PDB只约束「自愿中断」(例如drain、cordon后的驱逐),对节点宕机、Pod被ForceDelete等非自愿中断没有约束力。A、B、C、D均为正确理解。第30题【A、B、C】驱逐优先级从低到高为Guaranteed、Burstable、BestEffort,D正好说反。Guaranteed反而最不容易被驱逐,且OOM评分更低。E表述错误:QoS等级越高不代表越容易被OOMKilled,恰恰相反。3.判断题解析(31—40)第31题【错误】容忍只解除「污点排斥」,不参与调度打分与定向。想让Pod调度到指定节点,应使用nodeSelector、节点亲和或拓扑分布约束。第32题【正确】节点控制器默认在节点NotReady后等待约40秒标记状态、再结合Pod驱逐超时(约5分钟,对应参数--node-eviction-period)开始驱逐。这也是「节点宕机5分钟后Pod才自动重建」这一常见故障现象的来源。是否需要等待5分钟可通过容忍NoExecute的tolerationSeconds缩短。第33题【错误】Deployment默认保留最近10个ReplicaSet历史版本(revisionHistoryLimit),用于rolloutundo回滚。旧ReplicaSet只是缩容到0,并没有被删除。第34题【正确】Local模式下流量只进入本节点Pod,不跨节点转发,因此保留客户端源IP;但若该节点没有Pod,请求会被拒绝或丢弃,且各节点负载可能严重倾斜,需要配合负载均衡器的连接调度策略。第35题【正确】Secret默认在etcd中仅base64编码,不提供密码学保密。生产环境必须启用kube-apiserver的EncryptionConfiguration(通常用AES-GCM或KMS加密),并对etcd本身启用TLS与访问控制。第36题【错误】Job的restartPolicy只允许Never或OnFailure,不允许Always,否则任务永远不会成功结束,Job设计意图就被破坏了。第37题【正确】hostNetwork:true的Pod直接使用宿主机网络栈,不分配独立PodIP。这意味着端口需要自行协调避免冲突,且NetworkPolicy对这类Pod的约束能力有限。第38题【正确】kubectlrolloutundo会让Deployment回退到上一个历史ReplicaSet,并可配合--to-revision指定版本。回滚本身也是一次滚动更新。第39题【正确】Unknown表示apiserver无法从kubelet获取Pod最新状态,通常伴随节点失联。此时Pod实际是否存活无人知晓,控制器默认等待驱逐超时后才重建。第40题【正确】volume挂载的ConfigMap/Secret会在kubelet周期同步时更新,但应用若未监听文件变化或收到SIGHUP,不会自动重载配置。典型解法是使用Reloader等工具触发滚动重启,或在应用侧实现配置热加载。4.简答题参考答案(41—44)第41题参考采分点(共5分)完整链路应包含以下环节,每个关键组件1分:1.用户执行kubectlapply,kubectl将YAML发送至kube-apiserver;2.kube-apiserver完成认证、鉴权、准入控制(Admission)后,将Deployment对象写入etcd;3.DeploymentController监听Deployment变化,创建/更新对应ReplicaSet;4.ReplicaSetController根据期望副本数创建Pod对象;5.kube-scheduler通过过滤(资源、亲和、污点)与打分选出最优节点,将nodeName写回Pod;6.目标节点kubelet通过CRI调用containerd:拉取镜像、创建pause沙箱容器与业务容器;7.CNI插件为Pod分配IP并配置网络;8.kubelet启动容器后执行startup/readiness探针,探针通过后Pod变为Ready;9.EndpointSliceController将PodIP写入对应Service的EndpointSlice;10.kube-proxy根据Service/EndpointSlice维护iptables/ipvs规则,外部请求经Service转发到Pod。第42题参考采分点(共5分)•控制面角度:kube-controller-manager中的节点控制器标记节点为NotReady;约5分钟后开始驱逐该节点上的Pod(若Pod容忍node.kubernetes.io/not-ready:NoExecute且指定tolerationSeconds,按配置提前或延后);•数据面角度:节点kubelet失联,原Pod可能仍在运行,但apiserver无法获取状态,Podphase变为Unknown;•Deployment/ReplicaSet控制器角度:驱逐前副本数仍等于期望值,不创建新Pod;驱逐发生后副本数不足,控制器会在其他可用节点上补充新Pod;•ServiceEndpointSlice角度:Pod被标记Terminating或节点失联后,EndpointSliceController会从后端摘除该PodIP,不再转发新流量;•关键提醒:不驱逐就不重建,这就是「节点宕机后Pod不会自动迁移」的本质原因。Kubernetes的故障恢复依赖控制器补副本,而不是物理迁移容器。第43题参考采分点(每个命令1分,共5分)1.kubectlgetpod<pod-name>-owide:确认Pod所在节点、状态、重启次数;2.kubectldescribepod<pod-name>:查看Events中的失败原因,如Back-offrestartingfailedcontainer、ErrImagePull、CreateContainerConfigError;3.kubectllogs<pod-name>--previous:查看崩溃前最后一次容器日志,定位应用启动报错;4.kubectllogs<pod-name>--tail=100-n<ns>:查看当前容器日志,确认是否重复同一错误;5.kubectlexec-it<pod-name>--sh:进入容器检查命令是否存在、环境变量是否注入、配置文件是否可读;6.结合describe输出检查Liveness/Readiness探针是否把「启动慢」误判为「失败」,必要时调大initialDelaySeconds与failureThreshold。第44题参考采分点(共5分)•cordon:标记节点不可调度,已有Pod不受影响;•drain:先cordon,再驱逐节点上的工作负载,驱逐遵循优雅终止与PDB约束;•uncordon:恢复节点可调度;•典型场景:节点升级/维修前先cordon,再drain,确认Pod已迁移到其他节点后维护,完成后uncordon;•若节点上存在无PDB保护且只有一个副本的关键应用,drain会先将副本数降为0,导致该应用短暂不可用;若ReplicaSet控制器在其他可用节点快速补建新Pod,可为新Pod预留资源,但要做好「先断后通」的接受准备。5.场景题参考答案与评分标准(45—46)第45题(15分)评分点按排查层次分配,输出应按如下顺序展开:层次排查动作关键命令/验证分值现象确认确认用户访问的是哪条链路、报什么错误码浏览器/curl观察HTTP状态1Pod状态确认Pod是否Ready、是否多副本分布kubectlgetpod-owide-n<ns>2应用监听确认容器内进程监听端口是否正常kubectlexec<pod>--ss-lntp2日志查看应用日志有无报错kubectllogs<pod>--tail=2002PodIP直连绕开Service,直接访问PodIP验证应用本身可用curl<pod-ip>:<port>2Service验证访问ClusterIP,确认kube-proxy规则是否生效curl<cluster-ip>:<port>2EndpointSlice确认Service后端是否包含该PodIPkubectlgetendpointslices-n<ns>-lkubernetes.io/service-name=<svc>1节点层验证在节点上访问ServiceIP,确认转发链路curlClusterIP、ipvsadm-Ln或iptables-tnat-L1Ingress/LB确认Ingress后端配置与负载均衡健康检查kubectlgetingress-n<ns>1DNS确认域名解析是否返回正确入口IPnslookup<domain>、dig1若全部层次均正常,再检查网络安全组、防火墙、NetworkPolicy白名单等外部因素。生产排障的顺序推动原则是「先内后外、先Pod后Service、先4层后7层」,不要一开始就查DNS。第46题(15分)应急优先级应为:止血→定位→治理→扩容→复盘,每一步都有明确动作。第一阶段(止血,3分):-立即确认该节点是否还有重要业务,必要时将该节点cordon,阻止新Pod调度进来;-暂停该节点上的定时任务/日志采集器,减少写入;-若节点为云主机,评估是否可临时扩容系统盘或数据盘(注意扩容需停机或需云厂商支持热扩容)。第二阶段(定位,4分):-使用df-h与df-i分别确认容量与inode使用率;-使用du-x--max-depth=1/var/lib/containerd|sort-hr|head-20定位目录级占用;-查找超100MB的大文件与残留日志:find/var/lib/containerd-size+100M-execls-lh{}\;;-检查containerd日志目录/var/log/pods、/var/log/containers是否有单文件异常膨胀。第三阶段(治理,4分):-清理已停止容器与无用镜像,但不要盲目crictlrmi--all:-生产环境需要保留回滚用的历史镜像版本,全量清除会丢失回滚能力;-应先crictlps-a列出停止容器,再按需清理crictlrm<id>;-镜像清理优先使用crictlrmi--prune(保留最近N个版本需配合image_pull_progress等参数或额外脚本);-配置containerd镜像垃圾回收与日志轮转,建议在/etc/containerd/config.toml中设置:-max_container_log_line_size、日志轮转由kubeletcontainerLogMaxSize=50Mi与containerLogMaxFiles=5控制;-镜像回收image_pull_progress_timeout、discard_unpacked_layers等按版本支持情况开启。第四阶段(扩容与预防,2分):-确认业务是否需要迁移到其他节点:将该节点drain,让控制器在其他节点重新调度;-为节点设置磁盘使用率告警(如80%告警、90%严重),避免再次出现96%才应急的被动局面。第五阶段(复盘,2分):-整事件应输出根因:是日志未轮转、镜像堆积,还是StatefulSet持久化数据异常增长;-针对根因固化治理动作,如日志采集侧改用对象存储、镜像仓库启用GC、节点盘扩容计划。评分标准:未给出「先止血再定位」的优先级而直接清理镜像扣3分;未解释盲目清理风险扣2分;未给出具体命令与阈值扣3分;未给出日志轮转配置扣2分;其余按覆盖度酌情给分。6.综合题参考答案(47题,20分)本题考察「从架构到落地」的完整能力,评分分以下五个维度,每维度4分。维度一:工作负载与调度设计(4分)-前端Nginx与订单API:使用Deployment,建议副本API4副本、前端3副本,设置PDBminAvailable分别为2和3;-MySQL:使用StatefulSet,配合volumeClaimTemplates创建独立PVC;-调度策略:使用podAntiAffinity或topologySpreadConstraints将副本打散到不同可用区/节点,避免单点故障;按1000QPS估算下单Pod预留CPU500m—1C、内存1—2Gi,总计预留足够缓冲。维度二:流量入口与网络(3分)-外部流量经云负载均衡器(NLB/SLB)进入IngressController(如ingress-nginx),再路由到各Service;-Service采用ClusterIP,订单API设置externalTrafficPolicy:Cluster以均衡负载,前端可启用Local以保留源IP,需同步设计负载均衡器健康检查;-对MySQL不直接暴露公网,仅允许应用命名空间访问,并用NetworkPolicy收敛东西向流量。维度三:持久化、备份与容灾(4分)-MySQL数据卷使用云盘CSI驱动,存储类选择SSD,设置persistentVolumeReclaimPolicy:Retain;-备份方案:使用Velero对K8s资源做每日备份+对MySQL使用物理备份/逻辑备份,备份频率满足RPO≤15分钟可采用binlog增量同步;-容灾:跨可用区部署,存储卷启用快照与跨区复制;RTO≤2小时要求备份恢复演练至少每季度1次,且演练结果有记录;-强调:备份方案「写了不做」等于没有备份,恢复演练时间必须纳入SLA验收。维度四:弹性伸缩、监控与成本(5分)-HPA指标选择:订单API按CPU使用率(如60%)与自定义QPS指标双指标,minReplicas=2、maxReplicas=10、scaleDown稳定窗口5分钟;前端按CPU与连接数;-监控:Prometheus+Alertmanager,kube-state-metrics采集集群对象指标,node_exporter采集节点指标,业务侧暴露/metrics;-告警规则至少包含:节点CPU/内存/磁盘80%告警、Pod重启次数突增、P99延迟超过500ms、HPA达到上限;-日志:Filebeat/FluentBit→集中日志平台,按1000QPS估算每日日志量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省孝感市应城市2025-2026学年七年级上学期期中生物试卷(含解析)
- 水产苗种繁育工岗位技能考试试卷及答案
- 四年级下册语文阅读理解国测试题及答案
- 异壬醇装置操作工安全检查模拟考核试卷含答案
- 综合能源运维员操作知识强化考核试卷含答案
- 瓦楞纸箱成型工道德测试考核试卷含答案
- 道路危险货物运输员安全防护竞赛考核试卷含答案
- 家用电冰箱维修工安全操作知识考核试卷含答案
- 丙醛(丙酸)装置操作工岗位安全意识强化考核试卷含答案
- 真空垂熔工岗位安全技能考核试卷含答案
- 某电路技术有限公司突发环境事件应急预案
- 《环境保护法》解读
- 2026中国交通建设集团招聘考试历年参考题库含答案详解
- 2026年中秋国庆节前安全教育培训
- 工程造价咨询结算审核工作方案
- 城市给水管网改造工程实施方案
- GB 47834-2026晶体硅光伏组件和逆变器能效限定值及能效等级
- 2026人教版四年级数学上册第七单元第3课《图形的认识与测量》课件
- 医疗设备售后服务方案(完整版可直接投标使用)
- 2026年湖南省事业编单位人员招聘考试备考题库及答案详解
- 药物临床治疗学试题及答案2026年版
评论
0/150
提交评论