面试题整理_v1

12次阅读
没有评论

SRE运维面试题整理

综合整理自:面试题汇总(个人学习总结)、面试题总结(往期同学)、PDF面试过程问题


优先级 分类
⭐⭐⭐ Linux基础、K8S、Docker
⭐⭐ 网络、Nginx、数据库、监控
CI/CD、Shell、系统优化、安全
了解 JVM、Ansible、信创、高可用、云服务

综合开放

自我介绍

  • 自我介绍(公司情况+自己熟悉的技术栈)
  • 你们公司团队情况,你在里面的主要角色是什么?
  • 你主要在哪些方面投入的精力比较多?
  • 你觉得你擅长哪一方面?
  • 你对运维工作的理解?从技术方面,从团队方面?
  • 你觉得一个好的运维工程师好的胜任力是哪几点?
  • 你对现在找工作有什么想法吗?
  • 学习方面你自己有什么想法?
  • 毕业之后怎么会想到往运维方向去发展的?
  • 你的未来发展规划是什么?
  • 你有没有做过体系化线上的运维(资源监控、容量管理、数据监控、巡检、事故处理、资源管理)?
  • 你对国产信创系统的理解是什么?跟其他操作系统最主要的区别是什么?
  • 遇到没有接触过没做过的东西如何做?
  • 测试后没有报错后就可以直接部署到生产环境吗?
  • 你对加班和出差怎么看?能接受吗?
  • 为什么考虑离职?到岗时间大概是多久?期望薪资多少?
  • 有对象吗?结婚了吗?未来几年有结婚打算吗?

项目与业务

  • 你们公司主要负责什么业务?
  • 你们公司是自研还是外包?
  • 你们项目周期是多少?
  • 挑一个项目介绍一下,什么类型的项目,怎么做的?
  • 你们集群有多大?
  • 你们公司服务器有多少台?
  • 你们小组多少人?组内的人是做什么的?
  • 你负责的部署的项目有多少?部署的方式有哪些?
  • 你们的产品是部署到自己服务器上还是客户服务器上?
  • 你们用到多少容器?正常部署一个项目大概多少个容器?
  • 你工作主要负责什么?
  • 你们部署新业务的逻辑是什么,从0到1?
  • 你平常工作对接开发吗?
  • 你们公司之前业务主要用什么开发的?
  • 你对我们公司有什么了解吗?研究过我们公司的产品吗?
  • 容量管理怎么做的?
  • 巡检怎么做的?是什么机制?
  • 应急响应怎么做的?机制是啥?
  • 事故管理是怎么做的?(生产故障、运维事故、管理分级、事故判断)

开放性问题

  • 正在运行的系统业务突然502都有哪些层面的原因?
  • 系统出现一个十分火急的故障你怎么办?
  • 无效告警有哪些原因,你该如何抑制无效告警?
  • 有很多重复性的工作你该怎么处理,会选择躺平吗?
  • 印象比较深刻的故障有哪些?
  • 遇到过一些容量问题吗?
  • 你每天做什么?给你一个服务器流程是什么?
  • 你们平时报警多吗?大的报警多吗?为什么大的报警不多?
  • 如何保证服务器容灾问题?
  • 物理机没电怎么去部署服务?
  • 如何评估一个网络的质量?除了看带宽外还有哪些方式?
  • 带宽的单位是什么?是大B还是小B?
  • 如果用户反馈系统服务无法通过公网访问,从哪些方面入手排查?
  • 如果客户给你打电话说系统上不去了,怎么办?
  • 客户提出需求后你的具体处理流程是什么?

Linux基础

系统操作与常用命令

  • 如何查看服务器CPU使用率?
  • 如何查看磁盘占用量?
  • 如何查看服务器空闲内存?
  • 如何查看进程是否在线?
  • 如何查询端口是否被占用?
  • 如何杀死进程?
  • 列举五个常用的Linux指令及其用途
  • 请列出你最常使用的Linux命令及其用途
  • 查看系统版本用什么命令?内核版本怎么查?
  • uptime会显示哪些内容?
  • 查看linux网络流量以及带宽使用什么命令?
  • 如何查看系统负载?怎样定义它是高了还是低了?
  • top一般都看哪些参数?
  • top命令后面可以加什么参数?
  • top和lscpu的区别?
  • ping使用的是什么协议?工作在几层?
  • 如何查看服务器网卡的上连信息(包括接口、mac、名称等信息)?
  • File.txt文件有400行,如何查看文件的第200-300行(两种方法以上)?
  • 用什么命令查看文件的详细信息(stat)?
  • du -h -m /* | sort -nr | head -10这条命令执行代表什么意思?
  • 如何查看系统启动的端口?
  • 统计目录文件数量用什么命令(tree)?
  • 如何实时查看日志文件?
  • vi编辑器内如何检索error字样?
  • vi编辑器内如何将"北京"批量替换为"天津"?
  • vim编辑器如何保存退出?使用!呢?
  • 你上家公司都用过什么内核版本的操作系统?
  • DNS的配置文件是哪个?
  • 如何将一个进程放到后台持续运行(screen/nohup)?
  • /etc/fstab含义及每一列含义是什么?
  • 查看系统运行级别用什么命令?
  • 使用什么命令可以查看Linux的启动信息?
  • 如何查看当前目录位置(pwd)?
  • 怎么看滚动日志?
  • 系统的7个运行级别分别代表什么?

文件与磁盘

  • 磁盘空间快满了,你怎么做?
  • 删除大小很大的文件之后,磁盘空间没有释放,这是怎么回事?
  • 当数据库程序一直写入日志文件,日志文件达到2T,rm删除后磁盘空间没有释放,在不重启程序的情况下如何处理?
  • 日志满了怎么处理?
  • 日志轮转是什么?
  • 简单说一下挂盘的具体步骤
  • 磁盘具体挂载流程是什么?
  • 逻辑卷怎么扩容?怎么缩容?
  • Linux的逻辑卷有涉及吗?和普通逻辑卷有什么区别?
  • df和du有什么区别?
  • 磁盘挂载后重启读取不了数据怎么解决?
  • 服务器运行一段时间后磁盘满了怎么排查?
  • ext2、ext3、ext4会默认预留多少磁盘空间?用于什么?
  • inode或者block满了会导致什么?
  • 如何查找出系统中的大文件?
  • 查找系统中大于30天前的文件并且删除?
  • 服务器不关机的情况下挂载的目录卸载不掉该怎么办?如果进程也杀不死呢?
  • 往文件系统里面写数据发现无法写入可能是哪些原因?
  • 磁盘经常空间不足一般是些什么文件引起的?
  • 如何保留一个文件为30天?
  • 小于2T和大于2T的磁盘分别用什么工具分区(fdisk/parted)?
  • RAID常用级别以及区别是什么?
  • 你公司物理服务器磁盘配置是怎样的?
  • 取消挂载磁盘的命令是什么?强制取消挂载的命令是什么?

用户权限

  • chmod修改文件权限为755,解释一下755的含义
  • 修改文件权限的命令是什么?
  • 修改属主属组用什么命令?
  • chown命令是用来做什么的?
  • 如何添加用户,设置密码?
  • 如何查看系统中有多少用户?
  • 命令限制是怎么实现的?

进程管理

  • 查找一个正在运行的进程
  • 怎么根据文件名找到进程ID?
  • kill -9和kill -15的区别是什么?
  • ps有什么参数?
  • 系统负载高怎么排查?
  • 磁盘IO过高怎么排查是哪个进程导致的?
  • 如果CPU负载过高怎么处理?
  • 系统负载高排查流程是什么?(uptime → top → 区分CPU/内存/IO → 定位进程)
  • 大量僵尸进程怎么处理?
  • 查看文件被哪个进程所调用(lsof)

系统启动与服务

  • Linux的开机启动流程
  • 部署过开机自启服务吗?Service文件写过吗?
  • 物理机没有正常启动,进入紧急模式,排查思路是什么?
  • 一台服务器异常关闭,开机后异常现象(报错)怎么查看?用什么命令?
  • 开机自动执行命令的文件有哪些(/etc/rc.local、/etc/profile、systemctl enable)?

系统优化

  • 系统优化做过什么?
  • 新系统部署服务需要做什么优化?
  • 一个新系统用过需要干什么优化?
  • SSH优化、禁止root登录如何实现?
  • 加大文件描述符怎么配置?
  • 内核参数优化一般优化哪些?
  • TCP连接队列大小怎么调整?
  • TCP快速打开怎么启用?
  • swap分区的作用是什么?用或不用的好处坏处是什么?
  • 部署K8S时为什么要关闭swap分区?
  • 系统优化一般是在什么场景下优化?
  • vm.swappiness参数的作用是什么?
  • 文件描述符限制怎么调整?
  • SSD使用noatime、nodiratime挂载选项有什么好处?
  • net.core.somaxconn的作用是什么?
  • net.ipv4.tcp_fin_timeout的作用是什么?
  • net.ipv4.tcp_tw_reuse的作用是什么?
  • vm.overcommit_memory参数的作用是什么?
  • vm.dirty_ratio和vm.dirty_background_ratio的作用是什么?
  • vm.max_map_count参数的作用是什么?
  • worker_rlimit_nofile的作用是什么?
  • 时间同步写入定时任务怎么配置?
  • SSH连接不上Linux怎么排查?
  • SSH配置文件中PermitRootLogin和PasswordAuthentication的作用是什么?
  • 麒麟系统忘记密码怎么办?
  • CentOS、Ubuntu、Kylin系统的不同点是什么?
  • Ubuntu的包管理器是什么?apt更新到最新版本怎么操作?
  • 如果对端服务器设置了禁ping,如何测试连通性?
  • 怎么判断服务器是x86还是ARM架构?

软硬连接

  • 软硬链接的区别是什么?
  • Linux系统中硬链接和软链接有什么区别?

定时任务

  • 定时任务每分钟执行一次怎么配置?
  • crontab的语法格式是什么?
  • 每天晚上12点执行一次定时任务怎么配置?

硬件与RAID

  • 问硬件配置?你接触过物理机吗?
  • 用过交换机吗?用过啥型号的?
  • 服务器配置是怎样的?
  • 你接触过嵌入式的版卡吗?
  • 你会组网吗?只有服务器你会怎么组网?
  • 磁盘空间不够时如何解决(新磁盘+软链接方案)?

网络相关

TCP/IP

  • TCP三次握手四次挥手详细说一下
  • 为什么要三次握手?
  • 完成通信之后建立什么状态?
  • TCP连接数过多类似的问题,IP通端口不通你怎么解决?
  • 如果服务器长期处于established状态是什么原因?
  • 高并发下TCP连接延迟升高,如何从操作系统层面进行调优?
  • 我想查看TCP的各种连接状态并统计,怎么统计?
  • 常见的网络协议有哪些?

DNS

  • DNS解析流程说一下
  • DNS解析失败排查思路是什么?
  • ping域名、指定yum仓库、FTP下载解析失败排查思路,如果nslookup解析失败怎么办?
  • DNS在Linux里面的解析域名失败排查思路是什么?
  • 通过IP可以访问,但通过域名访问不到,怎么排查?

HTTP

  • 浏览器输入URL到页面加载完成,涉及到的网络协议有哪些?
  • 网站访问流程是什么?
  • 常见的HTTP状态码有哪些?
  • HTTP响应码200、400、401、403、404、500、502、503、504分别代表什么?
  • HTTP请求和响应的基本流程是什么?

OSI七层模型与端口

  • 说一下OSI七层模型
  • 七层模型有哪些?四层的协议说两个
  • 路由器和交换机工作在几层?
  • 四层负载和七层负载之间的区别是什么?
  • SSH默认端口、HTTP默认端口分别是什么?
  • 常见服务端口有哪些?(FTP 21、SSH 22、Telnet 23、SMTP 25、HTTP 80、HTTPS 443、DHCP 67/68等)
  • 系统最大端口号是多少?
  • 网段范围10.10.0.0/19换算成子网掩码是多少?
  • BGP协议是几层?

防火墙

  • iptables怎么去屏蔽特定网段?
  • iptables添加规则的命令是什么?
  • iptables如何限制某个IP访问服务器某个端口?说出详细命令
  • 如何查看防火墙开放了哪些端口?
  • 对本机放行8080端口允许172.1.1.6网段来访问,怎么编写iptables规则?
  • 对于Ubuntu系统除了ufw防火墙还用过哪些防火墙?
  • 有没有用iptables去配置流量转发?
  • 什么时候开启防火墙?什么时候关闭防火墙?

网络排查

  • 在现场环境网络方面有遇到什么问题吗?
  • IP通端口不通怎么解决?
  • 局域网中服务器和服务器网络不通怎么排查?
  • mtr和Traceroute用过吗?
  • 都用过哪些抓包工具?
  • tcpdump具体命令是啥?如何指定网卡?用什么参数?
  • 有配置过交换机或者路由器吗?
  • 上不了网排查思路是什么?
  • 如何实现不同网段的通信?

网络配置

  • Ubuntu怎么添加静态IP?
  • Ubuntu网络服务叫什么名字?
  • 给主机加路由用什么命令?

Nginx/Web服务

基础配置

  • Nginx反向代理如何配置?
  • Nginx做过哪些优化?
  • Nginx的配置和反向代理怎么写?
  • Nginx部署后只能公司内部访问如何实现?
  • Nginx除了做负载均衡还有哪些地方用到?
  • Nginx都有哪些模块?常用的模块有哪些?
  • Nginx工作原理是什么?为什么消耗资源少并发能力强?
  • Nginx工作在几层?
  • Nginx有哪些负载均衡模式?
  • Nginx日志格式知道吗?
  • 如果Nginx接收到请求,但不想将客户端的源IP向后端服务器传递,应该如何处理?
  • Nginx的server_name配置有什么作用?一般会配什么内容?
  • Nginx有没有用缓存模块?
  • Nginx 404为啥?如何解决?
  • Nginx优化使用什么参数?性能调优有哪些?
  • 用shell脚本统计Nginx日志文件里面的平均耗时应该怎么统计?用到哪些关键命令?
  • 分析Nginx访问日志,一条命令找出访问IP前十
  • Nginx的大日志有5个G,怎么找出top10的IP地址?
  • Nginx和Apache的区别是什么?

反向代理与负载均衡

  • 负载均衡的作用是什么?怎么实现的?
  • 负载均衡的转发模式有哪些?(轮询、IP哈希、最少连接、加权轮询)
  • 正向代理与反向代理的区别?
  • SLB和Nginx有什么区别?
  • Nginx负载均衡和LVS负载均衡有什么区别?
  • Nginx、LVS、HAProxy有什么区别?
  • Nginx在配置上四层和七层代理有什么区别?
  • 如何配置负载均衡?

location匹配

  • location模块里面代理静态页面时root和alias有什么区别?
  • location模块匹配的优先级是什么?
  • Nginx匹配模式是什么?

HTTPS

  • https加密流程是什么?
  • 证书公司怎么配置的?

Web服务对比

  • Nginx和Tomcat什么区别?
  • 除了Nginx还部署过什么Web服务器?是Apache吗?
  • Tomcat负载高排查流程是什么?
  • Tomcat假死,但是进程还在怎么解决?什么原因?
  • 公司里面Tomcat和哪些中间件搭配使用,优化过什么方面?
  • 如何查看Tomcat 15分钟的日志?

高可用/集群

Keepalived

  • Keepalived是干什么用的?
  • Nginx和Keepalived是怎么组合使用的?具体配置流程是怎样的?
  • Keepalived除了和Nginx搭配,还能和其他组件组合实现高可用吗?
  • Keepalived是几个节点?使用什么样的轮询策略?
  • 使用的是抢占还是非抢占模式?
  • 主节点挂了的话,怎么去处理轮询策略?优先级如何设置?

LVS

  • LVS的几种模式是什么?(NAT、DR、TUN)
  • 简要介绍一下你对Nginx和LVS的理解,以及它们在运维工作中的应用场景和区别
  • 所有的负载均衡都有高可用吗?
  • 你们的负载有多大?并发是有多大?秒级PV是多少?

脑裂

  • Keepalived脑裂问题怎么预防和解决?出现脑裂的原因有哪些?

CDN

  • CDN加速原理是什么?
  • SLB和CDN怎么配置?
  • 什么是CDN?

数据库

MySQL主从

  • MySQL主从原理是什么?
  • MySQL主从复制延迟怎么导致的?怎么解决?
  • MySQL主从同步的底层逻辑是什么?使用什么工具实现主从同步?
  • 主从同步用户的权限有特殊要求吗?
  • 数据库的负载策略是如何实现的?
  • 如何知道数据库主从出问题了?从底层上说说看?
  • 你们数据同步状态怎么保证从库是最新的状态?
  • MySQL的架构是什么?MHA还是什么?
  • 假如有100个读写请求,按照轮询策略应该怎么分配?

MySQL备份恢复

  • MySQL的备份方案是什么?
  • 数据库的备份和恢复怎么做?
  • 备份是怎么实现的?自动化备份怎么实现的?
  • 怎么利用binlog恢复数据?
  • 数据损坏了需要恢复数据怎么办?
  • 实际工作有没有遇到过数据恢复的情况?
  • MySQL备份文件存放地点,本地还是服务器?

MySQL优化与基础

  • MySQL你做过调优吗?做过哪个方面?
  • 数据库查询突然变慢(从毫秒级变成几秒甚至十几秒),可能的原因有哪些?针对这些原因做哪些优化?
  • 除了资源维度和"缺索引"外,数据库查询突然变慢还有哪些数据库自身技术层面的原因?
  • 当业务数据量或请求量激增导致数据库查询延迟飙升,从系统架构层面应该如何优化?
  • MySQL的CPU会突然飙升,作为运维排查思路是什么?
  • MySQL左右内外连接如何连接?左表连接跟其他连接有什么不同?
  • MySQL子表查询你会吗?
  • 如何查看MySQL一个语句的执行过程?
  • 在MySQL中需要删除一张大表,怎么删除能防止产生死锁?
  • 数据库锁表了如何处理?
  • 数据库ACID机制都有什么?
  • MySQL常用的存储引擎以及区别?
  • 日常工作中优化SQL的方案有哪些?
  • MySQL增删改查语句

MHA

  • MHA的底层原理是什么?
  • MySQL的MHA高可用如何搭建?

Redis

  • Redis有哪些基本数据类型?
  • Redis默认端口是什么?
  • Redis怎么搭集群?
  • Redis集群的作用是什么?
  • Redis cluster模式是什么?
  • Redis有多少个数据库?
  • Redis正在运行看他哪些指标?
  • 你们用Redis来干什么?
  • Redis缓存用过没有?搭建的什么结构的Redis?
  • 如何监控一个云产品Redis的状态?

国产数据库

  • 国产数据库你了解哪些?会用国产数据库吗?

Shell脚本

awk/sed/grep

  • awk用过吗?一般都用来干啥?
  • 用awk、sed、grep做数据统计分析
  • grep有哪些参数?
  • find用过哪些?
  • find和grep的区别是什么?
  • 实时去查看日志文件用什么命令?
  • sed如何替换文件中的某个字符?
  • 过滤出文件中包含root的行(grep/sed/awk三种方式)
  • 取出文件的第某行第某列
  • 要将文件中所有的某字符替换成某字符
  • 想看过滤到内容的上和下面的内容(grep -A/-B/-C)
  • 分析Nginx访问日志,一条命令找出访问IP前十
  • 怎么替换一个文件中的空行?具体命令是什么?
  • 用shell脚本怎么把一个文档空格都去掉?

脚本编写

  • 写过哪些脚本?讲讲逻辑
  • 用shell脚本怎么计算浮点数?
  • 如何用shell写一个替换域名的脚本?
  • Shell中第一行#!/bin/bash代表什么意思?
  • Shell脚本的循环语句怎么写?循环里的break和continue的区别是什么?
  • 判断磁盘占用率,当使用率大于95%时,删除/var/log/下的7天之前的日志,怎么写?
  • 2>xx、2>&1、&>xx这三个命令分别代表什么意思?
  • 正则表达式中.、*、+、[]、^、$、w、d、s分别代表什么?
  • 用shell脚本统计文本的次数跟排序,用具体命令

Docker

基础命令

  • 你经常用的docker命令有哪些?
  • 如何查看正在运行的容器?
  • 如何查看容器日志异常?
  • Docker怎么查看守护进程?
  • Docker容器的数据持久化方案包括什么?
  • 如何实现容器数据持久化?
  • 批量停止所有运行中容器、批量删除所有已停止容器的命令是什么?
  • Docker如何解决与宿主机的时间同步问题?
  • docker后面跟什么参数?
  • 如何还原一个Docker容器的启动命令?
  • 查看磁盘占用空间,知道哪些位置满了,但不知道哪些容器日志满了怎么办?
  • 如何删除镜像?
  • 如何查看容器资源占用以及使用情况?

Dockerfile

  • 用过Dockerfile里的哪些指令?
  • Dockerfile的常用字段有哪些?
  • Dockerfile中COPY和ADD有什么区别?
  • CMD和ENTRYPOINT有什么区别?什么时候用ENTRYPOINT什么时候用CMD?
  • Dockerfile中环境变量的关键字是啥?
  • 一个Dockerfile可以有几个FROM?
  • 多个RUN怎么写在一起?
  • Dockerfile层的概念是什么?
  • 在编写Dockerfile时,镜像是动态的,打包时可以传进来,这个机制是怎么做的?

镜像管理

  • 怎么在构建Dockerfile的时候减小镜像体积和构建速度?
  • 怎么保证打出来的image是最小的?
  • 构建镜像的时候有什么优化的方法?
  • 在业务容器里安装服务,哪种安装方式会更节省容器体积?
  • 怎么把Docker镜像传到Harbor仓库,再拉下来?
  • Harbor仓库高可用原理是什么?
  • docker buildx知道吗?

网络

  • Docker有多少种网络模式?
  • bridge和host的区别,各有什么优缺点?
  • 容器里的DNS是怎么配置的?

Docker Compose

  • docker-compose几种类型?
  • 用过docker-compose吗?
  • depends_on是做什么的?
  • 使用docker-compose如何实现有顺序依赖的服务的启动顺序?
  • 如果在docker-compose启动过程中,其中一个项目出问题如何排查?

Docker与虚拟机

  • Docker跟虚拟机的区别是什么?
  • Docker为什么比VM快?
  • Docker的优缺点有哪些?
  • 容器化和VM的对比是什么?

其他

  • Docker日志保存在什么地方?
  • 一体机开机自启,Docker怎么实现自动启动?容器启动后怎么启动服务?
  • Docker的原理有了解过吗?

K8S

组件与架构

  • K8S组件有哪些?各自的作用是什么?
  • K8S的架构是怎样的?
  • K8S和容器什么关系?
  • K8S的最小部署单元是什么?
  • kube-proxy的模式有哪些?(iptables、IPVS、userspace)
  • kube-apiserver高可用是如何实现的?
  • etcd的快照恢复流程是什么?
  • etcd如何保证高可用?
  • scheduler底层的调度算法有哪些?
  • K8S你负责的集群都是自建的吗?
  • K8S有哪些优缺点?

Pod生命周期与状态

  • Pod的生命周期是什么?具体过程是怎样的?
  • Pod有几种状态?分别代表什么意思?(Pending、Running、Succeeded、Failed、Unknown)
  • 如果Pod的状态是Pending,一般有哪些原因?
  • Pod一直重启什么原因导致的?
  • Pod一直处于CrashLoopBackOff状态怎么排查?
  • Pod状态为Error怎么排查?
  • 怎么查看上一个Pod的启动日志?
  • 说一下Pod的重启策略(Always、OnFailure、Never)
  • 删除Pod会发生什么事情?
  • 什么是静态Pod、自主式Pod、动态Pod?
  • Pod地址是唯一的吗?Pod和Pod之间共享资源吗?
  • Pod的创建流程是怎样的?各组件都做了哪些工作?

Service

  • K8S的Service是干什么用的?
  • Service有几种类型?(ClusterIP、NodePort、LoadBalancer、ExternalName)
  • ClusterIP和NodePort是什么关系?
  • Service无法访问其后端Pod,该如何排查?
  • 通过NodePort暴露服务,客户通过IP加端口访问,怎么获得客户的真实IP?
  • Stateful Service和普通的Service有什么区别?

Deployment与控制器

  • Deployment和StatefulSets的区别是什么?
  • Deployment、DaemonSet、StatefulSet之间的区别和特性是什么?
  • Deployment的滚动更新是怎么配置的?
  • DaemonSet类型的资源特性是什么?
  • 现在有一个需求想使用Deployment的模式达到DaemonSet的效果,该怎么实现?
  • Deployment的YAML文件怎么编写?有哪些关键字段?
  • 容器控制器如果想要在每个节点部署Pod用什么控制器?
  • docker控制器有哪些?各自的作用?

故障排查

  • K8S中容器出现故障怎么排查?排查流程?
  • K8S中遇见的网络故障有哪些?
  • K8S集群中Node节点状态为NotReady怎么排查?
  • K8S集群前面负载的架构是什么?
  • K8S中Service访问不通排查用什么命令?
  • 维护K8S集群的时候都遇到过哪些问题?怎么解决的?
  • K8S突发故障怎么处理?
  • K8S集群中Pod出故障不会转移到其他节点吗?
  • Pod拉取不动镜像要怎么排查?
  • K8S各组件及作用是什么?
  • 现在有一个系统访问缓慢,排查思路是什么?
  • 如果磁盘IO压力过大,应该如何排查?

探针

  • K8S探针用过吗?了解探针吗?
  • K8S探针类型有哪些?(livenessProbe、readinessProbe、startupProbe)
  • 探针的探测方法有哪些?(httpGet、exec、tcpSocket)
  • 健康检查怎么写的?是用的探针请求接口吗?
  • 存活探针是由哪个服务发起请求的?

PV/PVC

  • PV和PVC是什么?
  • PV的生命周期状态有哪些?(Available、Bound、Released、Failed)
  • StorageClass的作用是什么?

Ingress

  • K8S中Ingress和普通Nginx有什么区别?
  • 请结合业务描述Nginx Ingress的工作原理。
  • 你了解Ingress Controller的Webhook或Admission Controller吗?

镜像与配置

  • K8S的镜像拉取策略有哪些?(Always、IfNotPresent、Never)
  • K8S中如何给节点打污点?
  • K8S中需要将Pod中的文件拉取到本地目录,用什么命令?
  • configmap的作用是什么?
  • 资源清单里的kind字段有哪些类型?

网络插件

  • K8S中的网络插件有哪些?(Flannel、Calico、Canal、Weave Net、Cilium)
  • Flannel的几种模式是什么?(VXLAN、Host-GW、UDP)
  • 为什么选择Flannel作为CNI插件?和Calico相比有何考虑?

调度与资源

  • Pod的调度依据是什么?具体的调度机制(驱逐机制)是什么?
  • K8S中Pod调度不均匀怎么办?
  • K8S怎么节省资源?
  • Request和Limit这两个值会设置成一样吗?
  • YAML文件一般都会定义哪些主要的参数?
  • Pod亲和是什么?

HPA

  • HPA了解过吗?HPA底层的逻辑怎么实现的?底层的原理是什么?
  • 同一个服务,想增加Pod的数量怎么做?

日志采集

  • K8S上Pod的工作日志如何管理?
  • 如果Pod漂移到了其他节点日志是如何采集的?
  • 怎么采集K8S日志?

部署与迁移

  • K8S上都做过什么实际项目?
  • 你们现在K8S上项目是怎么部署的?
  • 从物理机迁移到K8S后,在服务交付、CI/CD和监控方案上有哪些具体差异?
  • 环境迁移到K8S集群怎么做的?
  • 如果想从docker-compose业务迁移到K8S集群怎么去做?
  • K8S迁移应该注意哪些问题?比如说正在运行的业务?
  • 假设现在业务基于K8S环境运行,要把业务迁到K8S环境,思路是什么?
  • 假设业务在线下基于K8S环境运行,怎么把K8S这套业务迁移到云上?
  • 有一个Java代码怎么部署到K8S集群?
  • Java服务迁移到K8S后,编写了哪些K8S资源清单(YAML)?
  • 部署一个Java服务,它在容器里不同状态对应的服务状态是怎样的?
  • 在什么场景下你会使用kubectl describe pod?又在什么情况下使用kubectl logs?

CI/CD

Jenkins

  • Jenkins部署业务服务是单节点还是集群的?
  • Jenkins都是先部署在内部服务器还是直接上线?
  • Jenkins工作流程是什么?
  • Jenkins如何实现代码的回滚?具体是配了什么?
  • Jenkinsfile如何安全传输像密码、安全地址这种敏感信息?
  • Jenkins的多分支并行构建怎么做?
  • Jenkins构建失败之后你们是怎么做的?
  • 如果给你一台空白的Jenkins机器,如何从零搭建?
  • 使用哪一种Jenkins方式实现自动化流程?
  • Jenkins中涉及到和GitLab的一个认证,怎么认证的?

GitLab

  • GitLab的钩子函数怎么配?这个东西是哪里面的?

发布流程

  • CI/CD流程是怎么样的?
  • 滚动更新如何实现?
  • 业务更新的时候,保障服务的持续稳定的运作有什么方式吗?
  • 蓝绿发布和金丝雀发布如何在K8S上落地?各自有什么优缺点?
  • 你们是多久更新一次?发布一次新版本?
  • 你们滚动更新,Server怎么去挂的容器?
  • 如何控制发布的Pod?
  • CICD执行失败了,但有些配置已经生效了,怎么进行恢复?
  • 灰度发布有哪些方式?
  • 在CI/CD流程中,如何使用Jenkins与Docker集成?
  • 打包镜像上传到仓库的动作详细流程是什么?
  • DevOps中的CI和CD分别是做什么用的,优点是什么?
  • 代码上线流程是什么?会遇到什么问题?

监控

Prometheus

  • Prometheus监控过什么?是怎么实现的?
  • 监控数据的采集和实现是什么?
  • Prometheus架构是什么?监控了什么?怎么安装部署?
  • Prometheus如何自定义监控Java项目?
  • 如何在K8S集群外部搭建Prometheus对集群进行监控?
  • Prometheus监控K8S的原理是什么?
  • Prometheus如何收集K8S指标?
  • Prometheus监控Pod的哪些指标?
  • 监控K8S的状态关注哪些关键指标?
  • 一个服务上线要监控哪些核心指标?
  • rate()和irate()的区别和使用场景是什么?
  • Prometheus输出的都是数字对吧?这个数字分为什么类型?(Counter、Gauge、Histogram、Summary)
  • 这四个有什么区别?使用场景是什么?
  • Prometheus如何自定义监控指标?举个例子
  • 你们普罗米修斯的指标有多少?做了哪些预置?
  • 普罗米修斯具体指标怎么设置?设置多少?
  • 普罗米修斯计算七天的平均量是怎么算的?函数叫什么?语句是什么?
  • Prometheus各个组件和作用是什么?主要监控哪些指标?
  • Prometheus是部署在K8S集群内还是独立物理机上?
  • 用Prometheus Operator还是其他方式部署?两种部署方式各有什么优劣?

Grafana

  • 用过Grafana吗?如何让Prometheus和Zabbix的监控项一起展示?
  • Grafana自己做的界面是怎么做的?用的哪些标签?
  • Grafana和Prometheus之间是怎样通信的?
  • Grafana自定义面板、数据展示Dashboard怎么做?

Zabbix

  • Zabbix和Prometheus有什么区别?
  • Zabbix的基本架构是什么?
  • Zabbix和Prometheus后端的数据库有什么不同?
  • Zabbix自动发现有研究过吗?
  • Zabbix监控突然缺失了一部分怎么排查?
  • 如果Zabbix监控突然缺失了一部分,可能是哪些原因?
  • Zabbix服务端优化怎么做?
  • 假设现在有100台服务器,怎么用Zabbix去部署监控?触发器怎么设计?

告警

  • 告警是通过什么告警的?
  • 告警分级是具体怎么做的?
  • 如果要实现告警,实现不同组收到告警信息如何配置?
  • 报警抑制怎么做?举一下例子
  • 设置报警的时候,怎么进行报警分类?
  • 告警流程是什么?
  • 监控一般监控啥?
  • 系统级别监控包括哪些?
  • 应用程序级别监控包括哪些?

ELFK/ELK

  • ELK了解吗?怎么用的?
  • ELFK架构数据流走向是什么?
  • ELFK一般用来采集什么日志?
  • Filebeat怎么推数据?
  • Elasticsearch分片和副本是什么?
  • ES集群写入比较慢了怎么办?
  • ES集群物理机配置是什么?多少个节点?多少个索引?副本数是多少?分片数是多少?
  • 分片数怎么形成的?为什么会是这些分片?
  • 关于索引、副本数、分片数大概怎么分的?有没有什么性能瓶颈?官方有没有限制?
  • 如果分片数量太少有什么影响吗?
  • 在Logstash和Elasticsearch之间想到什么办法提升性能?
  • 如果在Elasticsearch中已经创建了一个索引,现在需要调整其已有的索引结构,比较好的实践方案是什么?
  • 影响日志检索的响应时间的因素有哪些?

阿里云/云服务

ECS与基础服务

  • 阿里云ECS的底层原理熟悉吗?
  • 阿里云相关的主要做过什么?使用过什么?
  • 用过哪些公有云?
  • 你们公司用的云厂商是?一般买多大的云服务器?
  • ECS的OS镜像类型你实际用过的有哪些?

SLB与CDN

  • SLB和CDN怎么配置?
  • SLB和Nginx有什么区别?
  • 有用过云上的SLB吗?搭建流程是什么?

OSS

  • OSS和NAS、云盘有什么区别?主要存储什么数据?主要用于什么实际场景?

WAF

  • 你对WAF有没有什么了解?WAF主要做什么的?配置过吗?

VPC

  • 阿里云VPC网络了解吗?里面子网、路由表和安全组之间都是什么关系?
  • 云上的网络策略限制是通过什么做的?

云平台架构

  • 云平台的组件架构是什么?
  • OpenStack包含哪些组件?
  • 你使用过云服务器干过什么?
  • 除了传统ECS、OSS、SLB、CDN之外还接触过什么?

系统优化

内核参数

  • 内核参数优化一般优化哪些?
  • net.core.somaxconn的作用是什么?
  • net.ipv4.tcp_fastopen的作用是什么?
  • net.ipv4.tcp_fin_timeout的作用是什么?
  • net.ipv4.tcp_tw_reuse的作用是什么?
  • vm.swappiness参数的作用是什么?
  • vm.overcommit_memory参数的作用是什么?
  • vm.dirty_ratio和vm.dirty_background_ratio的作用是什么?
  • vm.max_map_count参数的作用是什么?
  • 文件系统优化挂载选项有哪些?(noatime、nodiratime、barrier=0、data=writeback)

SSH

  • SSH连接不上Linux怎么排查?
  • SSH优化、禁止root登录、创建普通账号怎么实现?
  • SSH配置文件中PermitRootLogin和PasswordAuthentication的作用是什么?

文件描述符

  • 加大文件描述符怎么配置?
  • worker_rlimit_nofile的作用是什么?

时间同步

  • 时间同步写入定时任务怎么配置?

安全相关

防火墙

  • 服务器防火墙会配置吗?
  • 查看防火墙开放了哪些端口?
  • iptables添加规则
  • iptables怎么去屏蔽特定网段?
  • 如何限制某个IP访问服务器某个端口?

DDoS与攻击

  • 当遇到DDoS攻击时怎么处理?
  • 配置过防火墙吗?防DDoS、防CC?

漏洞修复

  • 安全这一块了解吗?业务上线做漏洞扫描、攻防检测和代码质量检测
  • 服务器的安全方面,漏洞的修复怎么做?

挖矿病毒

  • 挖矿病毒怎么处理?

安全工具

  • 你对WAF有没有什么了解?WAF主要做什么的?

JVM/Java相关

GC排查

  • JVM调优怎么做?
  • Tomcat CPU利用率高排查流程是什么?
  • 导致频繁GC的原因和原理是什么?
  • 如果有一个Java程序突然占用了大量内存与CPU,怎么排查?
  • GC日志分析怎么做?使用什么JVM参数?
  • jstat怎么监控GC情况?
  • 内存分析工具(MAT、JVisualVM、JProfiler)怎么用?
  • 用什么APM工具做深入分析?(Arthas、SkyWalking)
  • 具体多线程占用情况怎么看?

内存溢出

  • 内存溢出常见的原因有哪些?(堆内存溢出、栈内存溢出、永久代内存溢出)
  • 堆转储分析怎么做?jmap怎么用?
  • 代码层面如何减少频繁GC?
  • JVM配置参数(-Xms、-Xmx、-XX:NewRatio、-XX:SurvivorRatio、-XX:+UseG1GC)怎么调?

Tomcat优化

  • Tomcat线程池怎么配置?(server.xml中的Executor)
  • Tomcat负载高排查流程是什么?
  • Tomcat假死但进程还在怎么解决?
  • 公司里面Tomcat和哪些中间件搭配使用,优化过什么方面?

Ansible

基础使用

  • Ansible用过哪些模块?
  • 用过Ansible吗?工作方式和模块有哪些?
  • Ansible底层的原理是什么?核心依赖什么?
  • 如何通过Ansible批量重启Nginx服务?
  • 给你10台机器,用Ansible查各个机器里边的磁盘情况,命令是什么?
  • 我想用Ansible给一个文件的权限是777怎么改?

playbook

  • Ansible的playbook是用来做什么的?
  • 会写playbook吗?
  • Ansible都写了哪些playbook?

加密与变量

  • 在Ansible的playbook中如何对敏感变量进行加密?

条件判断与优化

  • 在Ansible中如何进行判断,条件满足的时候才会去执行?
  • 如何优化Ansible的执行速度?

故障排查

  • Ansible部署服务出现错误了怎么快速恢复?
  • Ansible故障排查怎么做?

信创/国产化

  • 信创项目你了解哪些?其中有遇到什么问题?
  • 你对国产操作系统安装了解吗?
  • 你在使用国产Kylin系统的时候遇到过哪些坑,相比其他操作系统有哪些不好用的地方?
  • 国产化操作系统用到过哪些?
  • 说一下你了解的信创产品?
  • Kylin操作系统部署服务遇到过哪些问题?
  • 用Kylin时Docker有没有遇到过镜像不兼容?
  • 军工单位涉及软件包认证,要打RPM包,了解过吗?
  • 公司涉及很多设备都不能联网,部署服务有什么解决办法?

KVM虚拟化

  • 什么是KVM?它的全称是什么?
  • KVM与Xen、VMware ESXi在架构上有什么主要区别?
  • KVM主要由哪两个组件组成?它们各自的作用是什么?
  • 解释一下/dev/kvm这个设备文件的作用
  • KVM是如何实现CPU虚拟化的?
  • KVM的内存虚拟化是如何工作的?影子页表和EPT是什么?
  • KVM的I/O虚拟化主要有哪几种方式?比较优缺点
  • 什么是vhost?它相对于传统的virtio有什么改进?
  • 使用过哪些KVM管理工具?比较libvirt和qemu-kvm命令行
  • 如何查看一个宿主机上是否支持并开启了KVM?
  • 如何使用virsh命令启动、暂停、关闭和销毁一个虚拟机?
  • 虚拟机的配置文件通常存放在哪里?格式是什么?
  • 如何对KVM虚拟机进行CPU和内存的过热使用?
  • 什么是CPU亲和性?为什么要设置它?
  • 常见的KVM性能优化技巧有哪些?
  • 什么是QCOW2格式?优缺点是什么?
  • 如果一个KVM虚拟机无法启动,排查思路是什么?
  • 如何监控KVM虚拟机的性能?
  • 你了解哪些虚拟化手段?它们之间有什么区别?

中间件与其他

消息队列

  • 使用过哪些消息队列中间件?
  • 如何保证消息不丢失的机制?
  • Kafka了解多少?如果想从头开始消费数据应该怎么做?partition数量是越大越好吗?

Maven/Nexus

  • Maven是什么?Nexus私服的作用是什么?

Cookie与Session

  • Cookie与Session的区别是什么?

Jar与War包

  • Jar包部署和War包部署的区别是什么?

RPM打包

  • RPM包的编译和打包了解吗?

笔试题

选择/填空题

  • 在Linux系统中,用于查看当前系统进程状态的核心命令是什么?
  • 能强制终止指定PID进程的是什么命令?
  • Docker中,用于查看本地已下载镜像列表的命令是什么?
  • 在Linux系统中,要将文件file1从/opt目录移动到/home目录,正确的命令是什么?
  • Docker Compose的核心配置文件默认名称是什么?
  • Linux系统中,用于查看系统负载情况(1分钟、5分钟、15分钟)的命令是什么?
  • 能查看Docker容器实时日志的是什么命令?
  • Linux系统中,要给test.sh添加可执行权限,正确的命令是什么?
  • Docker中,用于停止并删除指定容器的命令组合是什么?
  • 在Linux系统中,用于查看指定目录下文件详细信息的命令是什么?
  • 取消挂载磁盘的命令是什么?强制取消挂载的命令是什么?
  • ping使用的是什么协议?工作在几层?
  • 交换机一般工作在几层?路由器工作在几层?
  • 系统最大端口号是多少?
  • 网段范围10.10.0.0/19换算成子网掩码是多少?
  • centos系统下执行uptime命令可以查看到的内容都有什么?
  • last命令后的-x选项代表什么意思?
  • chmod命令是用来做什么?chown命令是用来做什么?

操作/简答题

  • 请写出Linux系统中查询/var/log目录下近24小时内修改过的以.log结尾的文件的命令,并说明各参数含义
  • 请写出Docker环境中基于nginx:latest镜像创建一个名为nginx-web的容器的命令,要求后台运行、端口映射、目录挂载
  • Linux系统中,若发现某台服务器的sshd服务无法启动,请写出至少3步排查思路及对应的核心命令
  • 请写出Docker中批量停止所有运行中容器、批量删除所有已停止容器、批量删除所有未被使用的镜像的命令
  • 在阿里云ECS服务器中,需要定期每天凌晨2点执行一个脚本进行数据备份,核心步骤及命令是什么?
  • 写出用tar打包压缩/home/目录所有文件并放到/root/目录下名称为home.tar.gz的完整命令,并写出解压到/aaa/bbb/目录的完整命令
  • 请描述Linux系统常用命令以及命令简介
  • 请描述常用的JVM调优的参数都有哪些
  • 请描述Cookie与Session的区别
  • 请描述Redis的基本数据类型有哪些
  • 请描述使用过的消息队列中间件以及如何保证消息不丢失的机制
  • 请描述MySQL常用的存储引擎以及区别
  • 请描述日常工作中优化SQL的方案
  • 请描述DevOps中的CI和CD分别是做什么用的,优点是什么
  • 请描述Jar包部署和War包部署的区别
  • 请描述常用的反向代理和负载均衡软件以及应用场景
  • 请描述MySQL数据库源码编译工具(版本5.6及以上)
  • 请描述MySQL数据库源码编译常用参数(版本5.6及以上)
  • 请描述MySQL数据库编译部署后常用初始化命令(版本5.6及以上)
  • 如何从学生表查询到分数大于等于80的所有男性姓名?
  • 如何将表里的分数在70到80的女学生信息删除?
  • 如何创建一个新表?

综合笔试

  • 在Linux系统中,磁盘管理相关的命令有哪些?
  • Docker容器的数据持久化方案包括哪些?
  • 可用于查看网络连接状态的命令有哪些?
  • 关于Docker镜像的说法正确的有哪些?
正文完
 0
评论(没有评论)