陌陌k8s研发

        面试了陌陌的k8s研发工程师岗位,不管是面试过程,还是技术广度深度,总体感觉还是很专业的,沟通过程比较流畅,面试官会以交流的方式提问,卡顿的地方进行会适当的引导,面试完hr通知和约后续面试也挺快的,基本上几个小时后hr会联系给反馈。
        一共4轮面试,2轮技术面,1轮业务面,1轮hr面,下面整理了下整体面试的问题:
第一轮技术面试,差不多50分钟,面试官应该是部门小组负责人,先自我介绍到聊项目,我之前主要做容器云平台相关开发的,从项目延伸到k8s和go的相关知识;
1. 自我介绍+项目介绍(pass平台、自定义控制器、servicemesh平台、devops平台),基于项目问了一些功能实现和细节;
2. k8s主要问了一些基础问题,具体记不全了,如:
    pod多个container的启动顺序;
    crd编写规范(matedata、spec、status)
    自定义控制器实现机制(控制器启动流程、informer机制、watch断点续传和resync机制),reconcile的实现细节和注意事项(workqueue的去重和重试机制);
    自定义调度器实现的方式;
3. go问了一些基础问题,数组切片、map等;
4. 最后一道代码题,多个gorountine并发处理任务。
第二轮技术面试,差不多快1个小时,面试官应该是技术leader,提问的方式挺有水平的,交流的问题比较基础细致并且挺有深度的,有些平时常见但是容易忽略的地方,需要对k8s实践和源码有足够的熟悉程度。
1. 自我介绍+项目介绍,基于项目细节延伸到的问题如下;
2. kubelet的作用、pod创建的流程;
3. 常用的几种operator脚手架工具,如kubebuilder、code-generator等,区别是什么?为什么选择其中的一种?
4. deployment滚动更新,更新过程和配置,deployment controller根据pod哪些信息判断pod已经ready(pod的status.conditions信息),如何暂停滚动更新;
5. 灰度发布实现方式:
    ①只用1个deployment,多个pod,通过暂停滚动更新实现,需要通过暂停更新进行精确的pod数量控制;
    ②基于服务网格istio实现,2个deployment+virtualservice+destinationrule
6. operator原理(informer、watch机制等),reconcile处理细节,如何保证最终一致性和幂等性(workqueue去重机制、延迟重试机制、crd spec对比、status判断等);
7. operator高可用如何实现(lease),无主或者双主情况如何解决,k8s lease资源和etcd的lease机制的区别;
8. apiserver自定义准入控制,可以实现什么功能(认证、鉴权、准入控制(cidecar注入、集群资源信息校验)),准入控制webhook https证书配置,超时处理等;
第三轮业务面试,45分钟左右,应该是整个部门的负责人,主要是过项目,感觉主要是查看沟通能力,基于项目中涉及到的核心技术operator、servicemesh等问了一些架构和核心机制如,如何保证reconcile幂等性、operator高可用、istio架构等;
第四轮hr面试,就是一些常见的问题了
#陌陌##golang##云原生#
全部评论

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务