【k8s面试】超详细kubernetes面试题总结,面试必问!(附200道K8s/Docker面试真题+答案详解)

今年的面试差不多结束了,前两天跟一个大佬交流,他直言,K8s 就是未来的 Linux 操作系统。

操作系统一般有存储、网络、进程管理、进程调度、系统调用 API 等功能。

类似的,K8s 也提供了云原生下的存储、调度、网络、声明式 API 等功能,还提供了很多运维相关的能力,如备份、扩缩容、负载均衡等。

可以说,K8s 在云原生环境下,已经承担了一个操作系统的绝大部分功能!更是已经成为云计算领域中平台层当仁不让的事实标准!

在这个企业全面追逐云原生的时代,相信 K8s/Docker 很快就会成为每个技术从业者必备的基础知识。

另外,K8s 和 Docker 也让 DevOps 这一角色更加清晰,对很多中小企业中,需要开发 + 运维一把抓的工程师来说,早早掌握 K8s/Docker,更是犹如手握屠龙宝刀!

我拉着几个大佬,结合今年的大厂需求,给你整了 200 道云原生高频面试题,从真题入手,学 + 练结合,带你早早吃透 K8s 和 Docker! 

1、简述ETCD及其特点?

etcd 是 CoreOS 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(key-value)数据库,基于 Go 语言实现。

  • 特点:
    • 简单:支持 REST 风格的 HTTP+JSON API
    • 安全:支持 HTTPS 方式的访问
    • 快速:支持并发 1k/s 的写操作
    • 可靠:支持分布式结构,基于 Raft 的一致性算法,Raft 是一套通过选举主节点来实现分布式系统一致性的算法。

2、简述ETCD适应的场景?

etcd基于其优秀的特点,可广泛的应用于以下场景:

服务发现(Service Discovery):服务发现主要解决在同一个分布式集群中的进程或服务,要如何才能找到对方并建立连接。本质上来说,服务发现就是想要了解集群中是否有进程在监听udp或tcp端口,并且通过名字就可以查找和连接。

消息发布与订阅:在分布式系统中,最适用的一种组件间通信方式就是消息发布与订阅。即构建一个配置共享中心,数据提供者在这个配置中心发布消息,而消息使用者则订阅他们关心的主题,一旦主题有消息发布,就会实时通知订阅者。通过这种方式可以做到分布式系统配置的集中式管理与动态更新。应用中用到的一些配置信息放到etcd上进行集中管理。

负载均衡:在分布式系统中,为了保证服务的高可用以及数据的一致性,通常都会把数据和服务部署多份,以此达到对等服务,即使其中的某一个服务失效了,也不影响使用。etcd本身分布式架构存储的信息访问支持负载均衡。etcd集群化以后,每个etcd的核心节点都可以处理用户的请求。所以,把数据量小但是访问频繁的消息数据直接存储到etcd中也可以实现负载均衡的效果。

分布式通知与协调:与消息发布和订阅类似,都用到了etcd中的Watcher机制,通过注册与异步通知机制,实现分布式环境下不同系统之间的通知与协调,从而对数据变更做到实时处理。

分布式锁:因为etcd使用Raft算法保持了数据的强一致性,某次操作存储到集群中的值必然是全局一致的,所以很容易实现分布式锁。锁服务有两种使用方式,一是保持独占,二是控制时序。

集群监控与Leader竞选:通过etcd来进行监控实现起来非常简单并且实时性强。

3、简述什么是Kubernetes?

Kubernetes是一个全新的基于容器技术的分布式系统支撑平台。是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。并且具有完备的集群管理能力,多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、內建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。

4、简述Kubernetes和Docker的关系?

Docker 提供容器的生命周期管理和,Docker 镜像构建运行时容器。它的主要优点是将将软件/应用程序运行所需的设置和依赖项打包到一个容器中,从而实现了可移植性等优点。

Kubernetes 用于关联和编排在多个主机上运行的容器。

5、简述Kubernetes中什么是Minikube、Kubectl、Kubelet?

Minikube 是一种可以在本地轻松运行一个单节点 Kubernetes 群集的工具。

Kubectl 是一个命令行工具,可以使用该工具控制Kubernetes集群管理器,如检查群集资源,创建、删除和更新组件,查看应用程序。

Kubelet 是一个代理服务,它在每个节点上运行,并使从服务器与主服务器通信。

6、简述Kubernetes常见的部署方式?

常见的Kubernetes部署方式有:

  • kubeadm:也是推荐的一种部署方式;
  • 二进制:CentOS 搭建 K8S,一次性成功,收藏了!
  • minikube:在本地轻松运行一个单节点 Kubernetes 群集的工具。
  • 简单几步,无坑部署最小化 K8S 集群
  • Kubernetes 部署如此简单,看完全明白了

7、简述Kubernetes如何实现集群管理?

在集群管理方面,Kubernetes将集群中的机器划分为一个Master节点和一群工作节点Node。其中,在Master节点运行着集群管理相关的一组进程kube-apiserver、kube-controller-manager和kube-scheduler,这些进程实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理能力,并且都是全自动完成的。推荐大家看看:轻松管理 Kubernetes 集群的7个工具。

8、简述Kubernetes的优势、适应场景及其特点?

Kubernetes作为一个完备的分布式系统支撑平台,其主要优势:

  • 容器编排
  • 轻量级
  • 开源
  • 弹性伸缩
  • 负载均衡

Kubernetes常见场景:

  • 快速部署应用
  • 快速扩展应用
  • 无缝对接新的应用功能
  • 节省资源,优化硬件资源的使用

Kubernetes相关特点:

  • 可移植: 支持公有云、私有云、混合云、多重云(multi-cloud)。
  • 可扩展: 模块化,、插件化、可挂载、可组合。
  • 自动化: 自动部署、自动重启、自动复制、自动伸缩/扩展。

9、简述Kubernetes的缺点或当前的不足之处?

Kubernetes当前存在的缺点(不足)如下:

  • 安装过程和配置相对困难复杂。
  • 管理服务相对繁琐。
  • 运行和编译需要很多时间。
  • 它比其他替代品更昂贵。
  • 对于简单的应用程序来说,可能不需要涉及Kubernetes即可满足。

10、简述Kubernetes相关基础概念?

11、简述Kubernetes集群相关组件?

12、简述Kubernetes RC的机制?

13、简述kube-proxy作用?

14、简述kube-proxy iptables原理?

15、简述kube-proxy ipvs原理?

16、简述kube-proxy ipvs和iptables的异同?

17、简述Kubernetes中什么是静态Pod?

18、简述Kubernetes中Pod可能位于的状态?

19、简述Kubernetes创建一个Pod的主要流程?

20、简述Kubernetes中Pod的重启策略?

21、简述Kubernetes中Pod的健康检查方式?

22、简述Kubernetes Pod的LivenessProbe探针的常见方式?

23、简述Kubernetes Pod的常见调度方式?

24、简述Kubernetes初始化容器(init container)?

25、简述Kubernetes deployment升级过程?

26、简述Kubernetes deployment升级策略?

27、简述Kubernetes DaemonSet类型的资源特性?

28、简述 Kubernetes 自动扩容机制?

29、简述Kubernetes Service类型?

30、简述Kubernetes Service分发后端的策略?

31、简述Kubernetes Headless Service?

32、简述Kubernetes外部如何访问集群内的服务?

33、简述Kubernetes ingress?

34、简述Kubernetes镜像的下载策略?

35、简述Kubernetes的负载均衡器?

36、简述Kubernetes各模块如何与API Server通信?

37、简述Kubernetes Scheduler作用及实现原理?

38、简述Kubernetes Scheduler使用哪两种算法将Pod绑定到worker节点?

39、简述Kubernetes kubelet的作用?

40、简述Kubernetes kubelet监控Worker节点资源是使用什么组件来实现的?

41、简述Kubernetes如何保证集群的安全性?

42、简述Kubernetes准入机制?

43、简述Kubernetes RBAC及其特点(优势)?

44、简述Kubernetes Secret作用?

45、简述Kubernetes Secret有哪些使用方式?

46、简述Kubernetes PodSecurityPolicy机制?

47、简述Kubernetes PodSecurityPolicy机制能实现哪些安全策略?

48、简述Kubernetes网络模型

49、简述Kubernetes CNI模型?

50、简述Kubernetes网络策略?

51、简述Kubernetes网络策略原理?

52、简述Kubernetes中flannel的作用?

53、简述Kubernetes Calico网络组件实现原理?

54、简述Kubernetes共享存储的作用?

55、简述Kubernetes数据持久化的方式有哪些?

56、简述Kubernetes PV和PVC?

57、简述Kubernetes PV生命周期内的阶段?

58、简述Kubernetes所支持的存储供应模式?

59、简述Kubernetes CSI模型?

60、简述Kubernetes Worker节点加入集群的过程?

61、简述Kubernetes Pod如何实现对节点的资源控制?

62、简述Kubernetes Requests和Limits如何影响Pod的调度?

63、简述Kubernetes Metric Service?

64、简述Kubernetes中,如何使用EFK实现日志的统一管理?

65、简述Kubernetes如何进行优雅的节点关机维护?

66、简述Kubernetes集群联邦?

67、简述Helm及其优势?

受限于文章篇幅的原因,剩余的K8s/Docker面试真题+答案详解可以在评论区自取~

猜你喜欢

转载自blog.csdn.net/Cloud_Native/article/details/128266612