高级运维工程师面试题及参考答案.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

高级运维工程师面试题及参考答案

一、核心技术与架构设计(共5题)

1.题目:你负责的千万级日活应用出现“高峰期数据库连接耗尽”问题,排查思路和解决方案是什么?(不局限于单一数据库)

参考答案:

排查分三步:先定位瓶颈点——通过监控工具(如Prometheus+Grafana)查看数据库连接池配置(最大连接数、空闲超时)、应用侧连接创建/释放日志、数据库当前连接状态(showprocesslist/PG_stat_activity),区分是“连接泄露”还是“配置不足”;再分析根因——若连接数持续增长无释放,大概率是应用未正确关闭连接(如代码未捕获异常导致close失效)或连接池参数不合理(如最大连接数远超数据库承载、空闲超时过长);若仅高峰期突增,可能是流量峰值超过预设阈值或读写未分离。

解决方案:

紧急止血:临时调高数据库最大连接数(需结合服务器资源,避免OOM),重启应用释放泄露连接,通过读写分离分流查询压力;

长期优化:①应用侧:修复连接泄露代码(try-with-resources语法、连接池监控埋点),调整连接池参数(最大连接数=数据库最大连接数×0.8,空闲超时=30s,设置连接检测语句如select1);②架构侧:引入中间件(Sharding-JDBC分库分表、Redis缓存热点数据),数据库层面开启连接复用(如MySQL线程池、PGpgbouncer);③监控侧:新增连接数阈值告警(如达到80%触发预警),链路追踪定位连接创建耗时较长的业务。

2.题目:如何设计一套高可用的K8s集群运维体系?需覆盖部署、监控、灾备、故障自愈

参考答案:

核心原则是“无单点、可观测、快恢复”,具体落地:

部署层:采用多Master节点(至少3个,通过etcd集群容错),Worker节点跨可用区部署,网络插件选择Calico(支持BGP路由,稳定性更高),使用kubeadm部署+Ansible自动化运维,所有组件(kube-apiserver、kube-controller-manager)通过systemd托管,配置自动重启;

监控层:搭建“MetricsServer+Prometheus+Alertmanager+Grafana”栈,监控节点资源(CPU/内存/磁盘使用率)、Pod状态(重启次数、就绪探针失败)、集群组件健康度(etcd集群健康状态、apiserver响应时间),自定义告警规则(如节点NotReady持续5分钟、Pod重启次数3次/小时),告警渠道联动企业微信/邮件;

灾备层:etcd数据定时备份(每日全量+每小时增量,备份至对象存储),关键业务Pod配置PodDisruptionBudget(PDB)避免同时宕机,使用PersistentVolume(PV)+StorageClass对接分布式存储(如Ceph),实现数据跨节点迁移;

故障自愈:通过Kubernetes原生的liveness/readiness探针自动重启异常Pod,结合kube-eventer捕获集群事件,对节点故障(如磁盘损坏),通过集群自动扩缩容(HPA)补充新节点,旧节点标记不可调度后手动下线。

3.题目:简述Docker容器与虚拟机的核心差异,以及在生产环境中使用Docker的风险点和规避措施

参考答案:

核心差异:①虚拟化层面:虚拟机(VM)是硬件级虚拟化(Hypervisor模拟CPU/内存),容器是操作系统级虚拟化(共享宿主机内核,通过namespace隔离、cgroups限制资源);②资源占用:VM需分配固定资源(启动慢、资源利用率低),容器轻量化(启动秒级、资源可动态调整);③隔离性:VM隔离性强(内核独立),容器隔离性弱(共享内核,存在权限逃逸风险)。

生产环境风险点及规避:

风险1:容器权限过高(默认root用户)→规避:Dockerfile中使用USER指定普通用户,启动容器时添加--cap-drop=ALL限制权限,禁止挂载宿主机敏感目录(如/root、/etc);

风险2:镜像安全问题(含恶意代码、漏洞)→规避:搭建私有镜像仓库(Harbor),开启镜像扫描(集成Clair),禁止使用latest标签,只允许拉取经过审核的固定版本镜像;

风险3:资源竞争(多个容器抢占宿主机资源)→规避:启动容器时通过--memory、--cpus限制资源上限,使用cgroups配置CPU份额,避免单个容器耗尽宿主机资源;

风险4:日志膨胀(容器日志未轮转)→规避

文档评论(0)

151****9429 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档