【干货】132道最新K8S面试题汇总~

k8s全称kubernetes,这个名字大家应该都不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,推动了微服务架构等热门技术的普及和落地,正在如火如荼的发展。

而K8S运维工程师的薪资在市场上也遥遥领先,平均薪资在30-50K:

这也成为大多程序员薪资想学习K8S,转向做K8S运维工程师的重要原因。

今天给大家整理了一些关于K8S常见的面试题,希望能帮到大家顺利通过面试!

1、 k8s是什么?请说出你的了解?

答:Kubernetes是一个针对容器应用,进行自动部署,弹性伸缩和管理的开源系统。主要功能是生产环境中的容器编排。

K8S是Google公司推出的,它来源于由Google公司内部使用了15年的Borg系统,集结了Borg的精华。

2、 K8s架构的组成是什么?

答:和大多数分布式系统一样,K8S集群至少需要一个主节点(Master)和多个计算节点(Node)。

●主节点主要用于暴露API,调度部署和节点的管理;

●计算节点运行一个容器运行环境,一般是docker环境(类似docker环境的还有rkt),同时运行一个K8s的代理(kubelet)用于和master通信。计算节点也会运行一些额外的组件,像记录日志,节点监控,服务发现等等。计算节点是k8s集群中真正工作的节点。

K8S架构细分:

1、Master节点(默认不参加实际工作):

●Kubectl:客户端命令行工具,作为整个K8s集群的操作入口;

●Api Server:在K8s架构中承担的是“桥梁”的角色,作为资源操作的唯一入口,它提供了认证、授权、访问控制、API注册和发现等机制。客户端与k8s群集及K8s内部组件的通信,都要通过Api Server这个组件;

●Controller-manager:负责维护群集的状态,比如故障检测、自动扩展、滚动更新等;

●Scheduler:负责资源的调度,按照预定的调度策略将pod调度到相应的node节点上;

●Etcd:担任数据中心的角色,保存了整个群集的状态;

2、Node节点:

●Kubelet:负责维护容器的生命周期,同时也负责Volume和网络的管理,一般运行在所有的节点,是Node节点的代理,当Scheduler确定某个node上运行pod之后,会将pod的具体信息(image,volume)等发送给该节点的kubelet,kubelet根据这些信息创建和运行容器,并向master返回运行状态。(自动修复功能:如果某个节点中的容器宕机,它会尝试重启该容器,若重启无效,则会将该pod杀死,然后重新创建一个容器);

●Kube-proxy:Service在逻辑上代表了后端的多个pod。负责为Service提供cluster内部的服务发现和负载均衡(外界通过Service访问pod提供的服务时,Service接收到的请求后就是通过kube-proxy来转发到pod上的);

container-runtime:是负责管理运行容器的软件,比如docker

●Pod:是k8s集群里面最小的单位。每个pod里边可以运行一个或多个container(容器),如果一个pod中有两个container,那么container的USR(用户)、MNT(挂载点)、PID(进程号)是相互隔离的,UTS(主机名和域名)、IPC(消息队列)、NET(网络栈)是相互共享的。

3、 容器和主机部署应用的区别是什么?

答:容器的中心思想就是秒级启动;一次封装、到处运行;这是主机部署应用无法达到的效果,但同时也更应该注重容器的数据持久化问题。

另外,容器部署可以将各个服务进行隔离,互不影响,这也是容器的另一个核心概念。

4、请说一下kubernetes针对pod资源对象的健康监测机制?

答:K8s中对于pod资源对象的健康状态检测,提供了三类probe(探针)来执行对pod的健康监测:

1) livenessProbe探针

可以根据用户自定义规则来判定pod是否健康,如果livenessProbe探针探测到容器不健康,则kubelet会根据其重启策略来决定是否重启,如果一个容器不包含livenessProbe探针,则kubelet会认为容器的livenessProbe探针的返回值永远成功。

2) ReadinessProbe探针

同样是可以根据用户自定义规则来判断pod是否健康,如果探测失败,控制器会将此pod从对应service的endpoint列表中移除,从此不再将任何请求调度到此Pod上,直到下次探测成功。

3) startupProbe探针

启动检查机制,应用一些启动缓慢的业务,避免业务长时间启动而被上面两类探针kill掉,这个问题也可以换另一种方式解决,就是定义上面两类探针机制时,初始化时间定义的长一些即可。

每种探测方法能支持以下几个相同的检查参数,用于设置控制检查时间:

●initialDelaySeconds:初始第一次探测间隔,用于应用启动的时间,防止应用还没启动而健康检查失败

●periodSeconds:检查间隔,多久执行probe检查,默认为10s;

●timeoutSeconds:检查超时时长,探测应用timeout后为失败;

●successThreshold:成功探测阈值,表示探测多少次为健康正常,默认探测1次。

上面两种探针都支持以下三种探测方法:

1)Exec:通过执行命令的方式来检查服务是否正常,比如使用cat命令查看pod中的某个重要配置文件是否存在,若存在,则表示pod健康。反之异常。

2)Httpget:通过发送http/htps请求检查服务是否正常,返回的状态码为200-399则表示容器健康(注http get类似于命令curl -I)。

3)tcpSocket:通过容器的IP和Port执行TCP检查,如果能够建立TCP连接,则表明容器健康,这种方式与HTTPget的探测机制有些类似,tcpsocket健康检查适用于TCP业务。

在上述的yaml配置文件中,两类探针都使用了,在容器启动5秒后,kubelet将发送第一个readinessProbe探针,这将连接容器的8080端口,如果探测成功,则该pod为健康,十秒后,kubelet将进行第二次连接。

除了readinessProbe探针外,在容器启动15秒后,kubelet将发送第一个livenessProbe探针,仍然尝试连接容器的8080端口,如果连接失败,则重启容器。

探针探测的结果无外乎以下三者之一:

●Success:Container通过了检查;

●Failure:Container没有通过检查;

●Unknown:没有执行检查,因此不采取任何措施(通常是没有定义探针检测,默认为成功)。

5、 如何控制滚动更新过程?

答:可以通过下面的命令查看到更新时可以控制的参数:

maxSurge:此参数控制滚动更新过程,副本总数超过预期pod数量的上限。可以是百分比,也可以是具体的值。默认为1。

maxUnavailable:此参数控制滚动更新过程中,不可用的Pod的数量。

完整版K8S面试题文档,共132题,图文解析,可以免费分享给大家哦,有需要扫码领取哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/128083.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT:如何安装使用插件?超详细的教程!

1.最简单的方法 直接使用油猴,里边能搜索到的插件都可以用 2.官方插件使用 ChatGPT Plus引入插件后,功能暴强许多,比如可以联网、可以生成图表、可以分析视频、可以与PDF交谈等。但有不少小伙伴还不知道怎么安装使用ChatGPT插件,所…

Python比较2个json数据是否相等

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 1、json数据转换成字典 dict1 json.load(load_f1) dict2 json.load(load_f2)2、将两个字典按key排好序,然后使用zip()函数将两个字典对应的key打包成元组。 …

MySQL 批量修改表的列名为小写

1、获取脚本 SELECT concat( alter table , TABLE_NAME, change column , COLUMN_NAME, , lower( COLUMN_NAME ), , COLUMN_TYPE, comment \, COLUMN_COMMENT, \; ) AS 脚本 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA 数据库名 and TABLE_NAME表名-- 大写是up…

win10 下 ros + Qt 工程CMakeLists.txt

win10 下 ros Qt 工程CMakeLists.txt 系统:win10 ros: melodic Qt: 5.12.12 源码目录: D:\workspace\catkin_qt 示例代码 https://github.com/ncnynl/ros-qt.git 由于示例代码是Qt4 ,目前我是用QT5,所以CMakeLists.txt 修改如下 CMakeLists.txt #####…

数据跨领域应用实例—车辆通行大数据应用场景(二)

2023年10月25日,国家数据局正式揭牌。标志着我国数据基础制度正在不断完善,数据资源使用水平稳步提升,数据要素市场将进入发展快车道。当前,数字经济已成为我国经济高质量发展的新动能,国家数据局的成立,在…

互联网是如何运作的?以前端角度出发(b站objtube的卢克儿听课笔记)

1、你是如何用你的计算机设备发送数据和接受数据的呢? 例如我们是如何访问到哔哩哔哩的数据的 当你的设备开始连接到互联网时,会被分配一个IP地址。 而哔哩哔哩的服务器也接入到互联网,它也将被分配一个IP地址。 我们常说你访问某个网站&a…

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 使用场景 大多数…

【MySQL】库操作和表操作

文章目录 一、库操作1. 创建数据库2. 数据库的编码问题查看系统默认支持的字符集查看数据库支持的字符集查看数据库支持的字符集校验规则校验规则对数据库的影响 3. 操纵数据库查看数据库显示创建语句修改数据库删除数据库 4. 数据库的备份和恢复数据库的备份数据库的恢复表的删…

外部访问K8S集群内部的kafka集群服务

不许转载 kafka 部署 把 kafka 部署到 k8s 后,我们肯定是通过 service 从 k8s 外部访问 kafaka。这里的 service 要么是 NodePort, 要么是 LoadBalancer 类型。我们使用的方式是 LoadBalancer。 我们先看下面这张图,这是 kafka 在集群中的网…

pytest一些常见的插件

Pytest拥有丰富的插件架构,超过800个以上的外部插件和活跃的社区,在PyPI项目中以“ pytest- *”为标识。 本篇将列举github标星超过两百的一些插件进行实战演示。 插件库地址:http://plugincompat.herokuapp.com/ 1、pytest-html&#xff…

数据集笔记:Telecom Shanghai Dataset

0 数据地址 📱Telecom Shanghai Dataset (kaggle.com) 1 数据描述 该数据集由上海电信提供,包含超过720万条记录,记录了9481部手机通过3233个基站访问互联网的情况,时间跨度为六个月。例如,下图显示了基站的分布情况…

Visual Components应用解决方案 衡祖仿真

Visual Components可为客户量身设计及规划自动化产线系统,作为全方位的数位规划工具,它能够从制程规划、生产到销售皆能够整合在单一平台,有助于内部的技术沟通及外部销售。此外利用Visual Components整合物流及机器人模拟功能,可…

【Python3】【力扣题】242. 有效的字母异位词

【力扣题】题目描述: 【Python3】代码: 1、解题思路:若字符串长度相同,依次遍历元素,比较两个字符串的该元素个数是否相同。【耗时长】 知识点:len(...):获取序列(字符串、列表等&…

新零售时代,传统便利店如何转型?

在零售批发业,如何降低各环节成本、提高业务运转效率、更科学地了解客户服务客户,是每家企业在激烈竞争中需要思考的课题。 对零售批发企业来说,这些问题或许由来已久: (1)如何对各岗位的员工进行科学的考…

若依框架前后端分离版,集成数据库版本控制flyway

在admin模块的pom.xml增加依赖 <!-- 数据库版本控制 --><dependency><groupId>org.flywaydb</groupId><artifactId>flyway-core</artifactId><version>7.15.0</version></dependency>在admin模块下的resources 的配置文…

微信机器人接口开发

E云 是一套完整的的第三方服务平台&#xff0c;包含微信API服务、企微API服务、SCRM系统定制、企微系统定制、服务类软件定制等模块&#xff0c;本文档主要讲述个微API服务相关&#xff0c;以下简称API&#xff0c;它能处理用户微信中的各种事件&#xff0c;提供了开发者与个微…

OceanMind海睿思再次携手中冶华天,持续助力数字化转型升级!

近日&#xff0c;中新赛克海睿思 再次与 世界500强企业旗下重要骨干企业——中冶华天工程技术有限公司&#xff08;以下简称“中冶华天”&#xff09;达成深度战略合作&#xff0c;为中冶华天提供智能风控分析平台、智能数仓及指标管理平台等服务&#xff0c;携手推进中冶华天“…

Mac电脑Visio文件编辑查看软件推荐Visio Viewer for Mac

mac版Visio Viewer功能特色 在Mac OS X上查看Visio绘图和图表 在Mac OS X上轻松查看MS Visio文件 在Mac上快速方便地打开并阅读Visio文件&#xff08;.vsd&#xff0c;.vsdx&#xff09;。 支持通过放大&#xff0c;缩小&#xff0c;旋转&#xff0c;文本选择和复制&#xff0…

创新,无处不在的便利体验——基于智能视频技术的安防监控系统EasyCVR

随着科技的迅猛发展&#xff0c;基于智能视频和语音技术的EasyCVR智能安防监控系统正以惊人的速度改变我们的生活。EasyCVR通过结合先进的视频分析、人工智能和大数据技术&#xff0c;为用户提供了更加智能、便利的安全保护体验&#xff0c;大大提升了安全性和便利性。本文将介…

web应用程序、Django框架的学习

web应用程序 什么是web? Web应用程序是一种可以通过Web访问的应用程序,用户只需要有浏览器即可&#xff0c;不需要再安装其他软件 案例&#xff1a; 淘宝网、京东网、博客园、等都是基于web应用的程序 应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序&#xff0c…