1、什么是运维?什么是游戏运维?
运维:保障业务软硬件稳定上线、持续可靠运行,覆盖网络、系统、数据库、安全、监控、自动化、故障处置,细分DBA、Web、虚拟化、游戏运维等。
游戏运维一般分三类:
- 开发运维:自研运维平台、自动化工具,支撑业务交付;
- 应用运维(业务运维):游戏开服、版本发布、线上故障排查、监控告警、玩家侧业务问题;
- 系统运维:提供底层基础设施,服务器、网络、存储、监控、硬件支撑。
总结:开发运维、系统运维提供工具+基础设施,支撑应用运维做业务交付,三者闭环协作。
2、运营人员做什么(游戏行业)
游戏运营核心:排期开服、导量、活动、付费运营;对接渠道、投放、策划;跟踪留存、ARPU等数据;协调运维、策划、客服处理线上活动与玩家问题。
3、300台服务器如何管理
- 跳板机+权限管控,统一入口、审计登录;
- 自动化批量管理:Ansible/Saltstack/Puppet,统一配置分发、批量执行;
- CMDB资源台账:记录服务器IP、业务、配置、硬件、负责人;
- 配套监控、告警、日志集中收集。
4、简述 RAID0 / RAID1 / RAID5 原理与特点
- RAID0(条带):数据分散并行写入多块盘,读写性能最高;无冗余,任意一块盘损坏全部数据丢失,适合临时/非核心缓存。
- RAID1(镜像):两块盘互为完整副本,读性能提升、写不变;容量=单盘大小,100%冗余,成本高,适合系统盘、核心数据库。
- RAID5(分布式奇偶校验):≥3块盘,校验信息分散在所有盘;最多坏1块盘可恢复;读性能较好、写性能偏弱;容量=(n-1)*单盘容量,业务常用。
选型参考:系统盘RAID1;数据库主库优先RAID10;Web/非核心业务RAID5。
5、LVS、Nginx、HAProxy区别&选型
- LVS:四层(传输层)内核负载均衡,基于IP+端口转发;性能极强,但不能基于URL/目录路由。
- Nginx:七层为主(HTTP/HTTPS),Web服务、反向代理、缓存;可按域名、URL、目录分流;健康检查偏被动。
- HAProxy:四层+七层双支持,专业代理;支持TCP(MySQL读负载)+HTTP;原生主动URL健康检查、会话保持策略丰富。
✅ 选型:
- 超大并发、TCP通用流量 → LVS+Keepalived
- 中小型Web、需要灵活HTTP路由 → HAProxy
- Web静态服务、动静分离、简单反向代理 → Nginx
6、Squid、Varnish、Nginx缓存区别&选型
- Nginx:Web服务器,缓存靠第三方模块,适合静态资源,不算专业Cache。
- Varnish:专业高性能内存缓存,适合图片/页面缓存;支持批量精准清缓存,性能优于Squid;受内存容量限制。
- Squid:成熟老牌专业缓存,生态丰富,适合代理+缓存混合场景。
✅ 选型:专业CDN/页面静态缓存优先 Varnish / Squid;简单静态资源加速可用Nginx。
7、Tomcat 和 Resin 区别&选型
两者都是Java Servlet容器。
- Tomcat:社区大、文档多、兼容性好,稳定性优秀;性能中等;中小企业、通用Java项目首选。
- Resin:性能更强,适合高并发Java服务;社区和文档偏少;大厂高吞吐业务会选用。
8、什么是中间件?什么是JDK?
中间件:独立服务软件,位于操作系统之上,屏蔽底层差异,用于分布式系统之间通信、资源共享;如消息队列、Web容器、分布式配置中心。
JDK:Java开发工具包,提供编译、调试、运行Java程序的整套环境,包含JRE、编译器、工具。
9、Tomcat 8005、8009、8080端口
- 8005:Shutdown端口,接收关闭指令
- 8009:AJP端口,Apache等Web服务器通过AJP协议和Tomcat通信
- 8080:默认HTTP业务访问端口
10、CDN是什么
内容分发网络,在互联网边缘部署节点,静态资源(图片、包、JS/CSS)缓存到就近边缘节点;用户就近访问,降低源站压力、减少延迟、抗DDoS。
11、灰度发布
灰度(金丝雀):平滑上线方案,小流量新版本、大部分旧版本并行(A/B测试属于灰度);观察指标、告警、错误率,确认稳定后逐步全量切流;控制故障爆炸半径,保障整体稳定。
12、DNS解析流程(www.baidu.com)
- 查本机
hosts→ 本地DNS缓存; - 没有则请求
resolv.conf里的本地DNS; - 本地DNS无缓存,递归查询根DNS → 根返回.com顶级域地址;
- 访问.com顶级域 → 返回baidu.com权威DNS;
- 访问baidu权威DNS,拿到www.baidu.com A记录;
- 逐级回传缓存,返回客户端IP。
13、RabbitMQ
消息队列中间件,异步解耦、削峰;生产者投递消息入队列,消费者消费;消息可持久化、确认机制,保障异步场景可靠投递。
14、Keepalived工作原理
基于VRRP虚拟路由冗余协议,主备节点组成VRRP组,对外共享VIP虚拟IP;
- Master持续发送VRRP通告;Backup只监听;
- Backup收不到通告,按优先级重新选举新Master,VIP漂移,实现秒级故障转移;
- 内置健康检查,可主动剔除故障节点。
15、LVS三种模式 VS/NAT、VS/TUN、VS/DR
- VS-NAT:请求、回包全部经过LVS;DNAT改写目的IP,RS网关指向LVS;优点:RS任意OS、支持端口映射;缺点:流量瓶颈,适合小规模集群。
- VS-TUN(IP隧道):LVS封装新IP头转发;RS解包处理,响应包直接回客户端,不经过LB;可跨网段、跨机房;要求RS支持IP隧道协议。
- VS-DR(直接路由,最常用):只修改二层MAC地址,IP不变;RS配置同VIP在lo网卡、抑制ARP;回包直出客户端,性能最高;限制:LB和RS同广播域(同交换机)。
16、MySQL Innodb锁排查 & 主从复制延迟优化
Innodb锁问题定位
show engine innodb status;
information_schema三张锁表:innodb_trx(事务)、innodb_locks(当前锁)、innodb_lock_waits(锁等待),定位死锁、行锁等待。
主从延迟优化
- 硬件:从库CPU/IO不弱于主库;
- 复制:开启并行复制;
- SQL:优化慢SQL、大事务、大批量DDL;
- 架构:读写分离,从库分摊读压力;
- 参数调优:从库放宽刷盘策略(
sync_binlog=0、innodb_flush_log_at_trx_commit=2); - 网络:降低跨机房网络抖动,合理设置
slave-net-timeout。
17、重置MySQL root密码
✅ 已知旧密码:
mysqladmin -uroot -p password "新密码"
# 或sql内
update mysql.user set authentication_string=password('xxx') where user='root';
flush privileges;
✅ 忘记密码(安全模式):
systemctl stop mysqld
mysqld_safe --skip-grant-tables &
mysql -uroot
update mysql.user set authentication_string=password('xxx') where user='root';
flush privileges;
8.0+不再支持password()函数,改用
alter user root@localhost identified by 'xxx';
18、LVS/Nginx/HAProxy优缺点(精简版,同第5题扩展)
Nginx
✅优点:七层灵活、域名/URL路由、配置简单、自带Web、静态性能好、日志完善
❌缺点:仅HTTP/HTTPS、健康检查被动、会话保持依赖ip_hash
LVS
✅优点:四层内核转发、性能极高、低消耗、支持TCP全协议、无流量瓶颈(DR/TUN)
❌缺点:不能七层URL路由、配置复杂、无原生应用层健康检查
HAProxy
✅优点:4+7层、丰富负载算法、主动URL健康检查、session/cookie会话保持、支持MySQL TCP负载、内置统计页面
❌缺点:七层性能弱于LVS
19、MySQL备份工具
- mysqldump:逻辑备份,适合中小库;支持InnoDB热备,结合binlog做时间点恢复;大数据量慢。
- xtrabackup(Percona):InnoDB物理热备,全量+增量,适合大库,生产主流。
- LVM快照:物理快照,快速,但需要停机/锁表配合。
20、Keepalived模块+健康检查
三大模块:
- core:主进程、配置解析、全局管理
- vrrp:实现VRRP协议、主备VIP漂移
- check:后端健康检测(TCP端口、HTTP_GET脚本等)
健康检查:ICMP ping、TCP端口探测、HTTP状态码校验,失败则降权/剔除节点。
21、Nginx日志统计TOP10访问IP
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10
22、tcpdump抓192.168.1.1:80并保存
tcpdump 'host 192.168.1.1 and port 80' -w tcpdump.log
23、本机192.168.2.1:80转发到8080(iptables DNAT)
iptables -t nat -A PREROUTING -d 192.168.2.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.1:8080
24、RAID0/1/5(同第4题,略)
25、对运维工程师的理解
运维核心目标:保障业务稳定、高可用、低成本交付;风险前置、自动化、监控告警、故障快速止血;一个小失误可能造成线上资损,要求严谨、复盘意识、故障处置能力。
26、实时抓TCP 80端口流量
tcpdump -nn tcp port 80
27、服务器开不了机排查步骤(标准流水线)
- 硬件:电源、指示灯、风扇、硬盘RAID告警;
- BIOS:能否进BIOS,识别内存、硬盘;
- 引导:MBR/GRUB、系统盘是否为第一启动项;
- 内核:能否加载内核、是否内核panic;
- 系统:单用户模式、文件系统fsck、磁盘满、挂载异常;
- 日志:
/var/log/messages、dmesg查看报错。
28、Linux中毒怎么处理
- 先隔离:断外网,保留现场;
- 定位:top/ps/iftop/netstat/lsof,找异常进程、异常外联;
- 溯源:查找恶意文件、计划任务、开机自启项;
- 清除:删除恶意程序、清理定时任务;
- 核验:检查后门、ssh密钥;
高危/无法彻底清理,备份业务数据后重装系统。
29、病毒删了自动重建
说明存在父守护进程持续生成恶意文件;
流程:隔离外网 → lsof/pstree定位父PID → 先kill父进程 → 删除恶意二进制、定时任务、自启项;必要时chattr锁定关键目录。
30、OSI七层模型
- 物理层:信号、介质、网线
- 数据链路层:MAC、帧、ARP
- 网络层:IP、路由、ICMP
- 传输层:TCP/UDP、端口
- 会话层:会话建立管理(TCP已融合)
- 表示层:编码、加密、压缩
- 应用层:HTTP/DNS/FTP/SMTP,面向用户/业务
31、常用Nginx模块
- rewrite:URL重写、跳转
- access:IP访问控制
- ssl:HTTPS加密
- gzip:压缩传输
- proxy:反向代理
- upstream:负载均衡后端集群
- ngx_cache_purge:手动清理缓存
32、Web负载架构组件
LVS、Nginx、HAProxy、Keepalived
33、查看HTTP并发与TCP连接状态
netstat -an | awk '/^tcp/{++S[$NF]} END{for(a in S) print a,S[a]}'
# 或新版ss
ss -ant | awk '{++S[$2]} END{for(a in S) print a,S[a]}'
调大文件句柄:
/etc/security/limits.confnofile
34、tcpdump抓80,统计访问源IPTOP
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | head -20
35、脚本扫描192.168.1.0/24存活IP
#!/bin/bash
for ip in {1..254}
do
{
ping -c1 -W1 192.168.1.$ip >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "192.168.1.$ip UP"
fi
}&
done
wait
36、Apache日志只保留最近7天
find /app/logs -name "*.log" -type f -mtime +7 -delete
# 或 -exec rm -f {} \;
# 最佳方案:logrotate 日志轮转,自动切割+过期删除
37、Linux系统优化(精简)
- 禁止root直接SSH登录、修改SSH端口、sudo最小权限;
- 时间同步chrony/ntp;国内yum源;
- 按需关闭SELinux、防火墙策略收紧;
- 调高nofile文件句柄;
- 精简开机自启服务;
/etc/sysctl.conf内核参数优化(tcp、内存、连接);- 锁定关键系统文件,隐藏版本信息。
38、取出eth0 IP(cut/awk/sed)
# cut
ifconfig eth0 | sed -n '2p' | cut -d: -f2 | cut -d' ' -f1
# awk
ifconfig eth0 | awk 'NR==2' | awk -F'[: ]+' '{print $4}'
# sed
ifconfig eth0 | sed -n '/inet addr/p' | sed -r 's#^.*addr:(.*) Bc.*#\1#'
注:CentOS7+推荐
ip a替代ifconfig
39、Shell快捷键
- Ctrl+a 行首|Ctrl+e 行尾
- Ctrl+c 终止|Ctrl+d 退出
- Ctrl+l 清屏
- Ctrl+u 剪切光标前|Ctrl+k剪切光标后|Ctrl+y粘贴
- Ctrl+r 搜索历史命令
- Tab补全|Ctrl+Shift+C/V 复制粘贴
40、每晚0点打包/var/www/html到/data,带时间戳
# 脚本backup.sh
#!/bin/bash
tar zcf /data/html-$(date +%Y%m%d).tar.gz /var/www/html
# crontab -e
0 0 * * * /bin/bash /root/backup.sh
41、Linux挂载Windows共享CIFS
mount.cifs //192.168.1.3/server /mnt/server -o user=administrator,pass=123456
42、同33题(TCP连接统计,略)
43、同34题(tcpdump统计80访问IP,略)
44、统计/var/log下普通文件总数
ls -lR /var/log | grep "^-" | wc -l
# 推荐find(更稳定)
find /var/log -type f | wc -l
45、统计每个客户端IP连接数
netstat -an | awk '/tcp/{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr
46、生成32位随机密码写入/pass
head -c32 /dev/urandom | base64 | head -c32 > /pass
# 原md5版本
cat /dev/urandom | head -1 | md5sum | head -c32 >> /pass
47、Apache access.log访问TOP5 IP
awk '{print $1}' access_log | sort | uniq -c | sort -rn | head -5
48、查看二进制文件
hexdump -C file,十六进制+ASCII对照查看
49、ps aux VSZ、RSS
- VSZ:虚拟内存大小(包含共享库、swap、未提交内存)
- RSS:常驻内存,进程实际占用物理内存
50、检测修复分区/dev/hda5
⚠️ 必须卸载分区再fsck,不能挂载修复!
umount /dev/hda5
fsck /dev/hda5
51、Linux开机顺序
BIOS → MBR → BootLoader(GRUB) → 加载内核 → systemd(旧init)→ 挂载文件系统、启动服务 → rc.local → 登录
52、软链接vs硬链接
- 硬链接 ln f1 f2:inode相同;不可跨分区;删除源文件不影响;不能链接目录
- 软链接 ln -s f1 f2:类似快捷方式,inode不同;可跨分区、支持目录;源文件删除则失效
53、备份磁盘MBR分区表
dd if=/dev/sda of=./mbr.bak bs=512 count=1
54、vim基础操作(命令模式)
- yy复制行,p粘贴
- dd删除单行,dG删除全文
- :90 跳至90行
- /关键词 向下搜索,n下一处
55、手动安装grub
grub-install /dev/sda
56、取出aaa.txt 4~7行
sed -n '4,7p' aaa.txt
# 或者awk
awk 'NR>=4&&NR<=7' aaa.txt
57、当前目录所有txt
find ./ -name "*.txt"
58、/usr下大于1M文件
find /usr -type f -size +1M
# 旧写法 +1024k
find /usr -type f -size +1024k
59、定时5点~8点执行任务
# 分钟 小时 日 月 周
0 5-8 * * * /usr/bin/backup
60、MySQL主从复制原理
- Master写操作写入binlog
- Master binlog dump线程推送binlog给从库
- Slave IO线程接收binlog,写入relay log
- Slave SQL线程重放relay log,同步数据
61、vim三种模式
命令模式、输入(编辑)模式、末行模式
62、DNS解析流程(同12题,略)
63、DNS递归查询 & 迭代查询
- 递归:本地DNS替客户端查到底,直接返回最终结果
- 迭代:DNS服务器返回下一级服务器地址,由客户端继续查询
64、正向代理 & 反向代理
✅ 正向代理:代理客户端,比如翻墙代理;服务端不知道真实访客
✅ 反向代理:代理后端服务,用户访问代理,代理转发后端集群;用户无感知后端多台服务器(Nginx/LVS都属于反向代理)
65、etcd简介&特点
分布式强一致KV存储,Go开发,基于Raft;
特点:REST API、HTTPS安全、高性能、Raft保证一致性;用于配置中心、服务发现、分布式锁。
66、etcd适用场景
服务发现、配置中心、消息订阅、负载均衡、分布式锁、集群Leader选举、分布式协调通知。
67、HAProxy简介&特性
TCP/HTTP专业负载均衡,稳定性强;支持4/7层、虚拟主机、ACL、cookie会话保持、主动健康检查、web统计页面,适合高并发Web和MySQL读负载。
68、HAProxy负载均衡策略
roundrobin轮询、static-rr权重、leastconn最少连接、source源IP哈希、uri、url_param、hdr、rdp-cookie
69、四层负载均衡 vs 七层负载均衡
- 四层(L4):传输层,基于IP+端口转发(LVS),只看包头,性能高,无法识别HTTP内容
- 七层(L7):应用层,解析HTTP协议,可按域名、URL、Cookie路由(Nginx/HAProxy)
70、LVS/Nginx/HAProxy异同(精简)
相同:软件反向负载均衡
差异:
LVS:纯四层内核转发,不能URL路由;
Nginx:七层HTTP为主,Web服务一体;
HAProxy:4+7双支持,健康检查、会话保持更强。
71、Heartbeat
老牌Linux HA组件,心跳检测、资源接管;节点间心跳报文,失联后资源漂移,实现双机高可用。
72、Keepalived原理(同14题,略)
73、Keepalived三大模块(同20题,略)
74、Keepalived健康检查三层检测
网络层ICMP ping;传输层TCP端口探测;应用层HTTP/自定义脚本校验,异常则剔除后端节点。
75、LVS概念&作用
Linux Virtual Server,Linux内核IPVS实现负载均衡集群;将流量分发到RS节点,水平扩容、分担压力、故障自动摘除,7×24高可用。三层架构:调度器DS、RealServer服务池、共享存储。
76、LVS三种模式(同15题,略)
77、LVS调度算法
固定:rr轮询、wrr加权轮询、sh源哈希、dh目的哈希
动态:lc最小连接、wlc加权最小连接、lblc、lblcr
78、LVS/Nginx/HAProxy优缺点(同18题,略)
79、代理服务器概念&作用
位于客户端与源站中间;转发请求、缓存静态资源、加速访问、隐藏后端真实IP、访问控制。
80、RTO、RPO
- RTO:恢复时间目标,故障后多久恢复服务
- RPO:恢复点目标,灾难场景最多允许丢失多少数据
目标理想RTO=0,RPO=0,现实很难做到
81、CAP理论
分布式三特性:C一致性、A可用性、P分区容错;
核心:无法同时完美满足三者,分布式系统必须容忍分区P,只能选CP或AP。
82、ACID(数据库事务)
- A原子性:要么全成功,要么全回滚
- C一致性:事务前后数据合法一致
- I隔离性:并发事务互相隔离
- D持久性:提交后永久落地
83、Kubernetes(K8s)
Google基于Borg开源的容器编排平台;自动部署、调度、扩缩容、自愈、服务发现、负载均衡,管理大规模容器集群。
84、Docker vs K8s
Docker:单容器生命周期管理,打包镜像、启停容器;
K8s:多主机容器编排,调度、自愈、扩缩、管理集群内大量Docker容器。
85、Minikube / kubectl / kubelet
- minikube:本地单节点K8s,学习测试
- kubectl:集群命令行客户端,操作资源
- kubelet:每个Node上代理,和APIServer通信,管理本机Pod
86、K8s部署方式
kubeadm(推荐)、二进制、minikube(本地测试)
87、K8s集群架构 Master + Node
Master管控平面:kube-apiserver(唯一入口+etcd存储)、controller-manager控制器、scheduler调度器;
Node工作节点:kubelet、kube-proxy、容器运行时;
apiserver所有操作存入etcd,控制器持续调谐期望状态。
88、K8s优势&场景
优势:容器编排、弹性伸缩、自愈、服务发现、跨云可移植、模块化插件;
场景:微服务快速发布、动态扩缩、资源优化、持续交付。
89、K8s缺点
学习曲线陡、组件多运维复杂;简单单体小应用过重;资源开销更大。
90、K8s基础核心资源
master/node、pod(最小调度单元)、label标签、Deployment、ReplicaSet、HPA、Service、Volume、Namespace
91、Master核心组件详解
kube-apiserver(REST入口、etcd读写)、kube-scheduler(Pod调度预选优选)、kube-controller-manager(Node/Deployment/Service等控制器闭环调谐)
92、RC(ReplicationController)
保证集群内固定副本数;Pod少了新建、多了销毁;Deployment是RC升级版,支持滚动更新。
93、RS vs RC
ReplicaSet(RS)和RC作用一致,维持副本数;RS支持集合式标签选择器,RC仅等值选择器;现在优先使用Deployment管理RS,不再直接用RC
94、kube-proxy作用
Node上代理,监听Service/Endpoint变化,生成转发规则,实现Service负载均衡,流量转发到后端Pod。
95、kube-proxy iptables模式
监听apiserver,动态更新iptables NAT规则;流量直接内核转发,不经过用户态代理进程;适合中小集群。
96、kube-proxy ipvs模式
内核IPVS模块,哈希表结构;规则多时性能远优于线性iptables;支持更多负载均衡算法,适合大规模集群。
97、ipvs vs iptables
都基于netfilter;iptables适合防火墙,线性规则,大集群性能衰减;IPVS专为四层负载均衡设计,哈希索引、支持更多调度算法、扩展性更好。
98、静态Pod
由kubelet直接管理,不走apiserver调度;不能通过Deployment/RC管理;kubelet本地yaml创建,仅存在当前Node。
99、Pod状态
Pending(镜像拉取/调度中)、Running、Succeeded(一次性任务正常退出)、Failed(异常退出)、Unknown(节点失联,无法上报状态)
100、创建Pod完整流程
- kubectl提交yaml → apiserver校验存入etcd
- scheduler监听到未绑定Pod,预选过滤节点、优选打分,绑定Node
- 目标节点kubelet收到指令,拉镜像、创建容器
- kubelet上报Pod状态回apiserver,写入etcd
101、Pod重启策略 RestartPolicy
- Always(默认,服务类Pod,容器退出自动重启)
- OnFailure(异常退出才重启,Job批处理)
- Never(绝不重启)
Deployment/DaemonSet只能Always;Job使用OnFailure/Never
102、Pod探针 Liveness / Readiness / Startup
- LivenessProbe:存活探针,判断容器是否卡死;失败则kill重建
- ReadinessProbe:就绪探针,判断服务是否就绪;失败从Service endpoint摘除,不再接收流量
- StartupProbe:慢启动应用,保护启动时间长的容器,避免前两个探针误杀
103、探针三种检测方式
Exec执行命令、TCPSocket端口连通、HTTPGet http状态码200~399为成功
104、Pod调度方式
Deployment/RS基础调度;NodeSelector简单定向;NodeAffinity节点亲和(硬/软策略);Taints&Tolerations污点容忍,排斥特定Pod。
105、InitContainer初始化容器
顺序串行执行,全部成功后才启动业务容器;用于前置准备:拉取配置、等待依赖服务、权限初始化。
106、Deployment滚动升级流程
创建新ReplicaSet → 逐步扩容新RS副本、缩容旧RS;逐步替换,不一次性全杀,保证业务不断;可控制最大不可用、最大激增副本数。
107、Deployment更新策略
- RollingUpdate(默认滚动更新,平滑),参数maxUnavailable、maxSurge
- Recreate:先全部销毁旧Pod,再新建新版本,业务会中断
108、DaemonSet
每个匹配标签Node运行且仅一个Pod;不定义replicas;典型场景:节点日志采集、节点监控代理、CNI网络插件。
109、HPA 自动扩缩容
HorizontalPodAutoscaler;周期性采集CPU/内存/自定义指标,动态调整Deployment副本数,自动扩缩。依赖Metrics Server提供核心指标。
110、Service四种类型
- ClusterIP(默认,集群内访问)
- NodePort:宿主机端口映射,外部通过nodeIP:port访问
- LoadBalancer:云厂商外部负载均衡
- ExternalName:映射外部域名
111、Service负载策略
RoundRobin轮询;SessionAffinity会话保持(同IP固定Pod)
112、Headless Service
不分配ClusterIP;直接DNS返回后端Pod列表,客户端直连Pod;适合有状态服务(etcd、mysql集群),需要感知真实Pod地址。
113、外部访问K8s服务
NodePort、LoadBalancer、Ingress、HostPort、直接映射宿主机端口
114、Ingress
七层HTTP路由资源;Ingress Controller(Nginx/Traefik)根据Ingress规则,按域名、路径转发到不同Service;对外统一入口。
115、镜像拉取策略
- Always:每次都拉取(latest标签默认)
- IfNotPresent:本地有就不拉(自定义标签默认)
- Never:只使用本地镜像
116、K8s负载均衡
内部ClusterIP;外部NodePort/LoadBalancer/Ingress;Service四层,Ingress七层。
117、组件和apiserver通信
全部走REST API + Watch机制;数据持久化etcd;kubelet/scheduler/controller-manager通过Watch实时监听资源变更。
118、kube-scheduler作用
负责新Pod节点调度;预选过滤资源/标签等不满足节点;优选打分,选出最优Node,完成绑定。
119、调度两大阶段:预选Predicates + 优选Priorities
预选:过滤不合格节点;优选:对剩下节点打分,最高分调度。
120、kubelet作用
Node代理,管理本机Pod、镜像、Volume;上报节点资源、Pod状态;内置cAdvisor采集容器指标。
121、cAdvisor
内置在kubelet,采集Node、容器CPU、内存、磁盘、网络监控指标,供Metrics Server、Prometheus使用。
122、K8s集群安全体系
宿主机隔离、最小权限;APIServer HTTPS认证、RBAC授权;Secret保管敏感信息;准入控制器AdmissionControl;网络策略NetworkPolicy隔离Pod。
123、准入控制器AdmissionControl
认证授权之后、资源持久化之前执行;可拦截、修改资源请求;如LimitRanger、ServiceAccount、PodSecurityPolicy。
124、RBAC
基于角色权限控制;用户/ServiceAccount绑定角色,授予资源操作权限;运行时动态调整,无需重启apiserver。
125、Secret
存储密码、token、密钥等敏感信息;相比明文yaml更安全,可挂载进Pod或给镜像拉取使用。
126、Secret使用方式
挂载Volume、环境变量、镜像拉取secret、serviceAccount自动关联
127、PodSecurityPolicy(PSP)
Pod安全策略,准入控制器;精细控制Pod权限、特权容器、宿主机挂载、用户ID、权限提升等安全约束;开启后默认禁止创建Pod,必须授权策略。
128、PSP安全管控项
特权容器privileged、hostPID/hostNetwork宿主机命名空间、运行用户/组、权限提升、SELinux等
129、K8s网络模型
每个Pod独立IP,Pod之间直接互通(扁平网络);同一Pod内所有容器共享网络命名空间,localhost互通。
130、CNI
容器网络接口标准;CNI插件负责创建容器网卡、分配IP;IPAM负责IP地址管理;如flannel、calico都是CNI插件。
130(重题)NetworkPolicy网络策略
Pod间网络访问隔离;基于标签定义Ingress/Egress黑白名单,控制Pod之间、Pod与外部通信,实现微服务网络隔离。
131、NetworkPolicy原理
CNI网络插件(Calico)实现规则;控制器监听NetworkPolicy资源,下发节点iptables/ipset规则,做流量放行/拒绝。
132、Flannel
Overlay网络;给所有Node上Pod分配不冲突IP;UDP/VXLAN隧道封装跨节点Pod流量,适合简单K8s集群。
133、Calico
BGP三层路由方案;每个节点内置vRouter;直接路由Pod流量,无隧道封装损耗;支持NetworkPolicy,生产主流。
134、共享存储作用
有状态应用持久化数据;Pod重建、漂移后数据不丢失;多个Pod共享同一份数据。
135、K8s数据持久化
EmptyDir(Pod生命周期,临时共享)、HostPath(宿主机目录挂载)、PV持久卷(NFS/Ceph等外部存储)
136、PV & PVC
PV:后端存储资源抽象(管理员创建);PVC:用户存储申请;PVC绑定PV,Pod挂载PVC使用存储。
137、PV生命周期状态
Available可用、Bound已绑定、Released(PVC删除,待回收)、Failed回收失败
138、存储供给模式
静态供给:管理员预先批量建PV;动态供给:StorageClass,创建PVC自动创建PV
139、CSI
容器存储接口标准;存储厂商实现CSI插件,K8s原生对接外部存储;解耦K8s内核和存储驱动。
140、Worker节点加入集群
安装容器运行时、kubelet、kube-proxy;配置apiserver地址;kubelet自动注册节点到集群。
141、Pod资源控制 Request/Limit
Request:调度预留最小资源;Limit:硬上限,超过会限流/杀容器;调度器依据Request总和判断节点资源是否足够。
142、Request/Limit对调度影响
调度器只看request总和,不看limit;节点所有Pod request之和不超过节点总资源才允许调度。
143、Metrics Server
采集Node/Pod CPU内存核心指标,供HPA、kubectl top使用;自定义指标用Prometheus。
144、EFK日志方案
Elasticsearch存储检索日志;Fluentd以DaemonSet在每个Node采集容器日志;Kibana可视化查询。
145、节点维护优雅下线
kubectl drain node-xxx,驱逐该节点所有Pod,不再调度新Pod;维护完成后kubectl uncordon恢复调度。
146、集群联邦
多K8s集群统一管理,跨地域多集群统一资源视图。
147、Helm
K8s包管理器;Chart是应用包,打包一组yaml;统一版本、配置、分发、升级、回滚应用,避免零散yaml维护。
148、OpenShift
红帽企业容器平台,基于K8s+Docker;S2I源码直接构建镜像、多租户、项目配额、安全SELinux、CI/CD内置、内置监控日志。
149、OpenShift Project
逻辑资源隔离分组;分配用户权限、资源配额,限制Pod/存储等资源消耗。
150、OpenShift高可用
控制平面Master多副本HA;应用靠K8s自愈、副本调度;有状态业务自身做数据同步。
151、OpenShift SDN
Open vSwitch实现Overlay;ovs-subnet扁平、ovs-multitenant项目隔离VNID、ovs-networkpolicy支持自定义网络策略。
152、OpenShift角色
集群级角色、项目本地角色,RBAC权限模型,绑定用户/组。
153、OpenShift认证方式
LDAP、GitHub OAuth、Header认证、Keystone、基础认证等
154、中间件(同8题,略)
155、磁盘使用率Shell脚本
#!/bin/bash
# 磁盘告警
ip=$(hostname -I | awk '{print $1}')
df -Ph | awk 'NR>1{gsub(/%/,"");if($5>=90)print "'$ip' 磁盘"$1"使用率"$5"% 告警"}'
156、LVS负载均衡策略(同77题,略)
157、LVS整体理解(精简)
三层架构DS调度器、RS真实服务器、共享存储;IPVS内核实现四层负载;DR模式性能最优,适合大规模集群;搭配Keepalived实现调度器高可用。
158、负载均衡原理
接收客户端请求,按调度算法分发后端多台RS;自动剔除故障节点、恢复后重新加入;水平扩容、分担压力;会话保持解决无状态HTTP购物车等问题。
159、LVS两组件 ipvs + ipvsadm
- ipvs:内核模块,真正实现调度转发
- ipvsadm:用户空间工具,配置管理ipvs规则
160、LVS术语
DS调度器、RS真实服务器、VIP虚拟IP、DIP调度器内网IP、RIP后端RSIP、CIP客户端IP
161、LVS-NAT报文流转(精简)
CIP→VIP到达DS → ipvs改目的IP为RIP,转发RS;RS回包源RIP→CIP,经过DS做SNAT改成VIP返回客户端;双向流量都走DS
162、LVS-NAT特性
RS私有网段、网关指向DIP;支持端口映射;双向流量过LB,规模大容易瓶颈;RS操作系统无限制。
163、LVS-DR报文流转
CIP→VIP到DS;只修改二层MAC为RS MAC,IP不变;RS在lo绑定VIP、抑制ARP;处理完成后直接以VIP为源IP回包给客户端,回包不经过DS
164、LVS-DR特性
DS和RS同广播域;RS网关不能指向DIP;不支持端口映射;响应流量直出,性能最高;RS需配置lo:VIP、ARP抑制。
165、LVS三模式对比表(面试口述)
| 模式 | 操作系统 | 网络 | 上限RS | 效率 |
|---|---|---|---|---|
| NAT | 任意 | 同网段 | 20左右 | 一般 |
| TUN | 支持IP隧道 | 跨网段 | 百级 | 高 |
| DR | 抑制ARP | 同二层 | >100 | 最高 |
166、LVS调度算法(同77题,略)
167、LVS vs Nginx(精简口述版)
LVS四层内核转发,性能极强、适合超大流量TCP;但不能按URL/域名路由。
Nginx七层HTTP,灵活路由、动静分离、缓存;但是所有流量经过进程,大流量容易带宽瓶颈。
✅ 经典架构:LVS+Keepalived 外层四层入口 → 内层多Nginx七层集群。
168、负载均衡三大能力
流量分发调度、故障节点自动摘除、节点恢复自动重新加入集群
169、Nginx upstream负载策略
轮询(默认)、weight权重、ip_hash会话保持、least_conn最少连接
170、Keepalived概述
最初为LVS设计,基于VRRP;两大核心:后端健康检查、VIP故障漂移;主备切换,消除负载均衡单点故障。
171、VRRP协议理解
解决网关单点故障;一组路由器虚拟成一个,共用VIP;三种状态Initialize、Master、Backup;Master定期发通告,故障后Backup抢占。
172、Keepalived工作原理(同14题)
173、脑裂(Split-Brain)是什么&成因
脑裂:主备之间心跳断开,双方都认为对方宕机,同时抢占VIP,双Master;会造成IP冲突、双写损坏共享数据。
成因:
- 心跳链路故障(网线、交换机、网卡)
- 防火墙拦截VRRP(协议112)
- 节点CPU/IO满载,无法发送心跳
- VRRP配置不一致、优先级错误
174、Keepalived脑裂解决方案(生产标准答案)
- 冗余双心跳链路(独立网卡/直连线),避免单链路故障
- 防火墙放行VRRP协议(112)
- VRRP认证,防止非法节点干扰
- 第三方仲裁/网关探测脚本(vrrp_script,ping网关失败自动降权)
- 配置
nopreempt非抢占,避免恢复后乱抢VIP - 监控告警脑裂;高端方案使用STONITH/Fence隔离电源,强制关闭故障节点
📌 附赠面试加分小提示
- 游戏运维重点突出:开服、灰度、版本发布、服扩缩容、监控告警、故障止血、玩家侧问题;
- 尽量结合项目,不要死背;被问架构优先说:四层LVS+七层Nginx/HAProxy + Keepalived高可用 + 日志监控 + 自动化Ansible;
- K8s云原生岗重点吃透Pod、探针、HPA、Ingress、PV/PVC、RBAC、CSI。