ChatGPT面试问答,K8S八股文系列(1)

1,818 阅读3分钟

简述什么是Kubernetes?

图片

Note:

一个“容器”,实际上是一个由 Linux Namespace、Linux Cgroups 和 rootfs 三种技术构建出来的进程的隔离环境。

Kubernetes 项目为用户提供的不仅限于一个工具。它真正的价值,乃在于提供了一套基于容器构建分布式系统的基础依赖。

极客时间《深入剖析Kubernetes》

简述Kubernetes和Docker的关系?

图片

对于Docker项目来说,它最核心的原理实际就是为待创建的用户进程: 1、启用Linux Namespace配置:视图隔离 2、设置指定的Cgroups参数:资源限制 3、切换进程的根目录(Change Root):容器镜像生效,以实现环境一致性。所谓容器镜像,本质就是容器的根文件系统(rootfs)。

Docker容器的增量rootfs:即下层已经生成的永远不会改变,所有的修改都通过在上层叠加。比如,删除A文件,就是在上层添加一个“白障”,让系统无法读取到下层A文件。修改则是先copy一个备份到新的层(新老的文件可能都在可读写层),然后读取的时候直接读取新的层。

简述Kubernetes中什么是Kubectl、 Kubelet?

图片

在 Kubernetes 项目中,kubelet 主要负责同容器运行时(比如 Docker 项目)打交道。而这个交互所依赖的,是一个称作 CRI(Container Runtime Interface)的远程调用接口,这个接口定义了容器运行时的各项核心操作,比如:启动一个容器需要的所有参数。

kubelet 的另一个重要功能,则是调用网络插件和存储插件为容器配置网络和持久化存储。这两个插件与 kubelet 进行交互的接口,分别是 CNI(Container Networking Interface)和 CSI(Container Storage Interface

简述Kubernetes常见的部署方式?

图片

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

图片

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

图片

图片

Kubernetes 项目要解决的问题是什么? 

编排?调度?容器云?还是集群管理?此外,还希望 Kubernetes 能提供路由网关、水平扩展、监控、备份、灾难恢复等一系列运维能力。

而 Kubernetes 项目要着重解决的问题,则来自于 Borg 的研究人员在论文中提到的一个非常重要的观点:运行在大规模集群中的各种任务之间,实际上存在着各种各样的关系。这些关系的处理,才是作业编排和管理系统最困难的地方。

极客时间《深度剖析Kubernetes》

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

image.png

简述Kubernetes相关基础概念?

图片

我们从容器这个最基础的概念出发,首先遇到了容器间“紧密协作”关系的难题,于是就扩展到了 Pod;有了 Pod 之后,我们希望能一次启动多个应用的实例,这样就需要 Deployment 这个 Pod 的多实例管理器;而有了这样一组相同的 Pod 后,我们又需要通过一个固定的 IP 地址和端口以负载均衡的方式访问它,于是就有了 Service。

极客时间《深度剖析Kubernetes》

简述Kubernetes集群相关组件?

图片

针对以上K8S基础概念等知识点总结了一份思维导图,希望对各位同学在面试准备过程中有所帮助!

图片

下文,我们将从容器编排与作业管理(POD、Deployment、Job等)继续复习K8S相关面试考题

原文关注公众号“云原生SRE”