如题,分享记录一份还不错的面试题,看面试题的目的不是为了记住题目然后去应试(也不可能人家题都不带换的),如果是这样的话就算过了,面试真正在工作中遇到挑战一脸懵逼,怕是离大礼包不远了,看面试题是为了知道自己的水平,了解哪些常见的问题,如果有不足的就要提升弥补。
⼀、Kubernetes
K8s的集群组件有哪些?功能是什么? 初始化容器和SideCar容器的作⽤和区别 Nginx Ingress的原理本质是什么? kubectl命令相关:如何修改副本数,如何滚动更新和回滚,如何查看pod的详细信息,如何进⼊pod交互? 就绪探针和判活探针的区别和作⽤? 如何修改Pod的时间,且不会影响其他Pod,只作⽤于修改的那个Pod? PV和PVC的关系,StorageClass是什么? K8s集群节点需要关机维护,需要怎么操作? Pod创建过程是什么? 预防集群雪崩措施? Pod状态Crash了,如何去排查? 容器优雅关闭? 有了解QoS吗?怎么实现的? kubectl exec 实现的原理? 详述kube-proxy原理? ⽹络选型需要注意什么? 你们监控⽤的什么,怎么利⽤普罗⽶修斯监控pod信息,k8s状态,如果来设计相关的监控如何落地? 节点NotReady是什么导致的?NotReady会发⽣什么? 设想kubernetes集群管理从⼀千台节点到五千台节点,可能会遇到什么样的瓶颈。应该如何解决? K8s集群如何去监控的,简要举⼏个关键的监控例⼦? 灰度发布是什么。如何使⽤k8s现有的资源实现灰度发布? 设想⼀个⼀千台物理机,上万规模的容器的kubernetes集群,请详述使⽤kubernetes时需要注意哪些问题?应该怎样解决?(提⽰可以从⾼可⽤,⾼性能等⽅向,覆盖 k8s的service和ep是如何关联和相互影响的? 详述kube-proxy原理,⼀个请求是如何经过层层转发落到某个pod上的整个过程。请求可能来⾃pod也可能来⾃外部? rc/rs功能是怎么实现的。详述从API接收到⼀个创建rc/rs的请求,到最终在节点上创建pod的全过程,尽可能详细。另外,当⼀个pod失效时,kubernetes是如何发现并 cgroup中的cpu有哪⼏种限制⽅式。k8s是如何使⽤实现request和limit的? 介绍k8s实践中踩过的⽐较⼤的⼀个坑和解决⽅式? 如何去上线的,Jenkins Pipeline 共享库、灰度发布是什么。如何使⽤K8s现有的资源实现灰度发布? 设想⼀个⼀千台物理机,上万规模的容器的kubernetes集群,请详述使⽤Kubernetes时需要注意哪些问题?应该怎样解决?(提⽰可以从⾼可⽤,⾼性能等⽅向,覆盖 设想Kubernetes集群管理从⼀千台节点到五千台节点,可能会遇到什么样的瓶颈。应该如何解决? Kubernetes的运营中有哪些注意的要点? 介绍K8s实践中踩过的⽐较⼤的⼀个坑和解决⽅式?
⼆、Prometheus
prometheus对⽐zabbix有哪些优势? prometheus组件有哪些,功能是什么? 指标类型有哪些? 在应对上千节点监控时,如何保障性能? 简述从添加节点监控到grafana成图的整个流程? 在⼯作中⽤到了哪些exporter? 报警收敛怎么做的?
三、ELK
Elasticsearch的数据如何备份与恢复? 你们项⽬中使⽤的logstash过滤器插件是什么?实现哪些功能? 是否⽤了索引Template?对ES集群做了哪些优化? kibana如何⾃定义图表和仪表盘? elasticsearch分⽚副本是什么?你们配置的参数是多少?、集群规模?、qps峰值和平均峰值?
四、Docker
dockerfile有哪些关键字?⽤途是什么? 如何减⼩dockerfile⽣成镜像体积? dockerfile中CMD与ENTRYPOINT区别是什么? dockerfile中COPY和ADD区别是什么? 命令相关:导⼊导出镜像,进⼊容器,设置重启容器策略,查看镜像环境变量,查看容器占⽤资源? 构建镜像有哪些⽅式?
五、 Linux
如何清空Kafka某个topic⾥的消息 nginx⽇志访问量前⼗的ip怎么统计? nginx负载均衡算法有哪些? 如何升级内核,⽬前最新版本号多少? ⼤于2T的磁盘如何分区? 删除/var/log/下.log结尾的30天前的⽇志⽂件? 磁盘100%,服务器上找不到对应的⽂件,排查思路? 新上接⼝时好时坏,排查思路? 收到⽤户反馈APP或⽹站⽆法访问,你会怎么处理? 业务pv、QPS均值和峰值分别是多少?集群规模多少?怎么保障业务⾼可⽤? 在⽇常⼯作中遇到了什么棘⼿的问题,如何排查? 某个进程偶现CPU⾼,如何排查是哪⾥出现问题了? 监控系统、接⼝监控、错误⽇志监控、Nginx状态监控、消息队列拥堵监控、服务使⽤内存和CPU监控、服务器基础监控? ⽼板偶尔⽤⼿机使⽤了咱们的产品,就出现了⼀个报错,你该如何定位,我们这边有多少多少的并发?
六、NoSQL
Redis数据持久化有哪些⽅式? Redis集群⽅案有哪些? Redis如何进⾏数据备份与恢复? MongoDB如何进⾏数据备份? Kafka为何⽐Redis RabbitMQ快?
七、开发
Flask和Django区别,应⽤场景? 列举常⽤的Git命令? 开发的运维平台有哪些,讲⼀个⾃认为写的最好的⼀个平台? 举⼀个平常写的印象深刻的Python脚本,为了实现什么需求? Python yeild⽤法,并发,多线程? Python装饰器的作⽤以及举⼀到2个例⼦说下项⽬中⽤到Python装饰器的地⽅? Python打开⼀个⽂件,找出某个字符串最快的⽅法? 你做的平台,前后端交互怎么实现?
⼋、Kafka
Apache Kafka 是什么? 什么是消费者组? 在 Kafka 中,ZooKeeper 的作⽤是什么? 解释下 Kafka 中位移(offset)的作⽤? 阐述下 Kafka 中的领导者副本(Leader Replica)和追随者副本(Follower Replica)的区别? 如何设置 Kafka 能接收的最⼤消息的⼤⼩? 监控 Kafka 的框架都有哪些? Broker 的 Heap Size 如何设置? 如何估算 Kafka 集群的机器数量? 深度思考题 Leader 总是 -1,怎么破? LEO、LSO、AR、ISR、HW 都表⽰什么含义? __consumer_offsets 是做什么⽤的? 简述 Follower 副本消息同步的完整流程? Controller 发⽣⽹络分区(Network Partitioning)时,Kafka 会怎么样? 如何调优 Kafka?
九、提问环节
这个岗位每天、每周、每⽉都做什么? 这个岗位当前需要⽴即解决的痛点? 团队规模&协作与沟通的模式? 集群与服务规模? 当前架构/业务与未来演进⽅向?
这个反问挺有意思的,不过我的反问一般是
- 运维团队有多少人
- 用了到了哪些技术
- 比较看重哪些技术
这份面试题不但开阔了我的眼界还丰富了我的反问问题库哈哈,通过这些反问确实能获取到一些更有价值的信息,我之前怎么没想到!!!