一面:
写小项目:
面试官给的项目要求大体是这样:
K8S 容器化之后应用容器里几乎没有什么可用的调试工具,可以利用容器 Namespace 共享的思路,启动一个包含各种调试工具(比如 netstat, gdb)的容器,加入到 pod 的 pid、net 等 namespace 中, 实现对任意 pod 的 debug 功能。现在希望利用 kubectl plugin 机制实现一个插件,用于 debug 任意一个 pod 里的容器,达到 kubectl exec 的使用体验;
二面:
1、问项目经历,聊了两个项目
2、对 Kubernetes 了解怎么样,看过源码吗?
3、Kubernetes 的 Service 是什么概念,怎么实现的?
4、Informer 是怎么实现的,有什么作用?
5、StatefulSet 用过吗?有什么特点?
6、StatefulSet 的滚动升级是如何实现的?
7、现在我们希望只升级 StatefulSet 中的任意个节点进行测试, 可以怎么做?
答:正确办法是利用 partition 机制;
8、Kubernetes 的所有资源约定了版本号, 为什么要这么做?
9、假如有多几个版本号并存, 那么 K8S 服务端需要维护几套代码?
10、接下来我们聊聊 Golang,看一下这段代码有没有问题(一段 golang for-range 里 goroutine 闭包捕获的代码),为什么?
11、goroutine 是怎么调度的?
12、goroutine 和 kernel thread 之间是什么关系?
13、有什么想问我的?
三面:
1、给我介绍 PingCAP 相关团队的职责与挑战
2、聊为什么出来看机会,以及未来的职业规划
3、聊之前做的一个数据同步的项目,大概内容是订阅 MySQL Binlog,sink 到搜索索引、分库分表以及业务事件订阅流中;
4、为什么数据同步里选择了 xxxx 开源项目,优势在哪?
5、订阅分库分表的 Binlog 怎么订阅?
6、分库分表的数据源中假如存在主键冲突要怎么解决?
7、怎么保证下游对 Binlog 的消费顺序?
8、如何在下游保证消费时的事务原子性?
9、描述了一下 tidb 的 binlog 架构,问这种场景下怎么保证 Binlog 顺序
10、聊一个上了 Kubernetes 的项目,问了一些细节和坑
11、用 Kubernetes 之后,解决了哪些问题?
12、聊之前做的监控警报项目,问背景和产出;
13、Prometheus 单实例数据量级 hold 不住了,有什么解决方案?
14、有什么想问我的?
四面:
1、聊"配置中心"项目的细节
2、为什么不用 ZK,要自己再写一个"配置中心"
3、配置中心怎么做服务发现的?怎么做 failover 的?
4、用 Kubernetes 碰到过哪些坑?
5、对 Prometheus 做了哪些改动?
6、对 Alertmanager 做了哪些改动?
7、监控系统怎么做"自监控"?
8、跨机房的网络问题怎么监控?
9、有什么想问我们的?
全部评论
(3) 回帖