设计的一些kubernetes面试题目

这几个月参与了几场面试,设计了多道面试题,以为能够综合考察应聘人对kubernetes的掌握状况。在这里分享下,供应聘人自查以及其余面试官参考。面试

这些面试题的设计初衷并非考察kubernetes的使用。这种笔者认为较为流于表面,由于这些使用大多能够经过查看文档得到。笔者更多更多考察的是对于kubernetes的理解,包括对其架构、设计及一些相应原理的认识,以及对一些实践经验和技术视野的考察。后续有想到更好的题目,直接在此篇中持续更新。设计模式

基础篇

基础篇主要面向的初级、中级开发工程师职位,主要考察对k8s自己的理解。架构

  • kubernetes包含几个组件。各个组件的功能是什么。组件之间是如何交互的。
  • k8s的pause容器有什么用。是否能够去掉。
  • k8s中的pod内几个容器之间的关系是什么。
  • 一个经典pod的完整生命周期。
  • k8s的service和ep是如何关联和相互影响的。
  • 详述kube-proxy原理,一个请求是如何通过层层转发落到某个pod上的整个过程。请求可能来自pod也可能来自外部。
  • rc/rs功能是怎么实现的。详述从API接收到一个建立rc/rs的请求,到最终在节点上建立pod的全过程,尽量详细。另外,当一个pod失效时,kubernetes是如何发现并重启另外一个pod的?
  • deployment/rs有什么区别。其使用方式、使用条件和原理是什么。
  • cgroup中的cpu有哪几种限制方式。k8s是如何使用实现request和limit的。

拓展实践篇

拓展实践篇主要面向的高级开发工程师、架构师职位,主要考察实践经验和技术视野。ide

  • 设想一个一千台物理机,上万规模的容器的kubernetes集群,请详述使用kubernetes时须要注意哪些问题?应该怎样解决?(提示能够从高可用,高性能等方向,覆盖到从镜像中心到kubernetes各个组件等)
  • 设想kubernetes集群管理从一千台节点到五千台节点,可能会遇到什么样的瓶颈。应该如何解决。
  • kubernetes的运营中有哪些注意的要点。
  • 集群发生雪崩的条件,以及预防手段。
  • 设计一种能够替代kube-proxy的实现
  • sidecar的设计模式如何在k8s中进行应用。有什么意义。
  • 灰度发布是什么。如何使用k8s现有的资源实现灰度发布。
  • 介绍k8s实践中踩过的比较大的一个坑和解决方式。
相关文章
相关标签/搜索