运维工程师笔试题目
Posted on Feb 15, 2021
运维工程师笔试题目
一、简答题(共50分)
- 列出常见的 Linux 发行版及其包管理工具。
- 列出常见的容器编排软件。
- 列出常见的开源存储系统。
- 列出常见的监控工具。
- 列出常见的持续集成工具。
- 常用的远程登录 Linux 服务器的工具有哪些?
- 你用过或者知道那些虚拟机管理软件?
- 查看服务器的基本信息:a)逻辑 cpu 个数;b)内存大小;c)品牌型号;d)内核版本;e)发行版名称版本号;
- Every command fails with command not found. How to trace the source of the error and resolve it?
- 找出当前目录下大于 1G 的日志文件并删除。
- 如何查看服务器的 RAID 级别?如何查看服务器的物理硬盘数量和容量?
- Linux 系统新增了一块硬盘(/dev/sdb),请将其格式化为 xfs 系统并挂载到 /data。
- 假设 /dev/sdb1 挂载到 /data1 上,当 /dev/sdb1 故障时,/data1 目录可能会成为根目录(/)下的一个普通文件夹,此时数据继续写入会导致根目录被占满,如何避免这种情况。
- 服务器重启之后 ping 不通了,有可能是什么原因?如何解决?
- 使用 Vim 完成以下任务:a)新建,更新,保存文件;b)查找替换关键词;c)复制行,删除行,跳转行。
- 如何设置 nameserver?某个业务的域名即将迁移到新的 IP,如何事先测试域名用新 IP 是否正常工作?
- 请列出常见的应用层协议及其默认端口。
- 如何检测远程主机的 80 端口是否开放?
- 找出 9099 端口被什么进程占用。
- 常见 HTTP 状态码及其含义。
- 域名解析有哪些类型?有什么工具可以检测域名解析是否生效?什么是泛解析?举例说明使用 CNAME 解析有什么好处?
- Kubernetes 是一个流行的容器编排工具,其网络模型的基本原则是为每个 Pod(容器组,Kubernetes 管理容器的最小单位)分配一个唯一的 IP 地址,集群中所有 Pod 能够通过 Pod IP 直接互相访问。现需要规划一个 Kubernetes 集群,每个节点分配一个掩码为 /24 的 IP 段,要求至少满足 25400 个 Pod 的需求,并且不能使用宿主机的 10.0.0.0/8 网段,请给出最小网段规划。请使用命令行统计各 TCP 状态的数量。How to check default route and routing table?
- docker 镜像仓库允许提交重复的 tag,为了防止提交了重复的 tag,计划使用代码库(git)的 tag 作为 docker 镜像的 tag, 如果代码库没有 tag,则用 revision id 做为镜像 tag,比如,一个镜像的 tag 可能是 v1.3-738-g1211a2e。请写一个Makefile 实现此需求。
二、工程题(40分)
- 假设服务器 root 密码管理存在以下问题:a) 所有服务器使用少数几个 root 密码;b) root 密码基本不变更;c) root 密码未加密存储,并且会被有些同事直接记录到 wiki 上;d) 有同事直接使用 root 账号登录,难以审计。请设计一个 root 密码管理方案,实现 root 密码的随机生成,加密存储及限制查询和使用。(提示:可以考虑使用 gpg 加密 root 密码)1. 请简单描述搭建一个有独立域名,支持 HTTPS 的网站的流程。
- 假如客户反馈调取后端接口时特别慢,你会如何排查?
- 有一个程序,功能是发起 http 请求探测 url 是否存活,运行一段时间后会报 cannot assign requested address错误,查看监控发现运行该程序的服务器有大量 close-wait 状态,可能是什么原因?如何解决?
- Kubernetes 中,Ingress Nginx 对容器网络有很强的依赖性,如果容器网络中断,Nginx Upstream 将全部超时,影响范围很大。已知在服务器重启时,Calico(Kubernetes 网络插件)需要几分钟的时间来恢复容器网络,但是 Ingress Pod 却可以在数十秒内启动。因此有必要在机器重启时检测容器网络是否正常,不正常则应禁止该节点处理流量。现计划在开机时执行一个 Shell 脚本来检测容器网络,检测不通过则使用 iptables 关闭 80,443 端口,直到容器网络正常之后再删除相应 iptables 规则。请编写该脚本并说明部署方式。已知满足以下 2 条,则认为容器网络正常:a)ip route |grep bird |wc -l 应 大 于 1;b)dig @169.169.0.2 +time=1 kubernetes.default.svc.cluster.local 应正常响应。此方案只解决了 Ingress 问题,对于业务容器,如依赖 CoreDNS,则仍然会受影响。如果你有更好的方案,可以直接回答你的方案。(提示:此问题涉及的三方:业务 Pod,网络插件,Kubernetes,谁是问题根源?最好由谁来解决此问题?)
三、职业规划(10分)
- 请谈谈你对运维工程师这个职位的认识?为这个职位做过什么准备?你认为你擅长的哪些知识、技能或能力能够帮助你胜 任此职位?