当前位置:首页 >> 新能源

23 个必知仍要的 Kubernetes 高频面试题

来源:新能源   2023年03月03日 12:15

t才会认为试管的livenessProbe核酸的C#爱人顺利。

2) ReadinessProbe核酸

同样是可以根据浏览器自并不一定规则来正确pod确实生活品质,如果探测器受挫,伺服才会将此pod从大致相同service的endpoint一览表中所替换成,从此不再将任何立即控管到此Pod上,直到再来探测器顺利。

3) startupProbe核酸

启动体检系统,应;大要用途一些启动缓慢的业务部门,不致业务部门总长一段时间启动而被右边两类核酸kill上来,这个问题也可以换另一种方式为克服,就是并不一定右边两类核酸系统时,堆堆叠一段时间并不一定的总长一些即可。

每种探测器原理能赞同都有几个大致相同的体检表达式,;大要用途设置依靠体检一段时间:

initialDelaySeconds:初始第一次探测器每隔,;大要用途应;大要用途启动的一段时间,以防应;大要用途还没人启动而生活品质体检受挫

periodSeconds:体检每隔,多久执自为probe体检,选项为10s;

timeoutSeconds:体检超时为时,探测器应;大要用途timeout后为受挫;

successThreshold:顺利探测器电位,坚称探测器多少次为生活品质正常人,选项探测器1次。

右边两种核酸都赞同都有三种探测器原理:

1)Exec:通过执自为仅指示的方式为来体检服务项目确实正常人,比如运;大要用途cat仅指示拍照pod中所的某个举足轻重系统设计文档确实实际上,若实际上,则坚称pod生活品质。反之异常。

Exec探测器方式为的yaml文档词汇如下:

spec:

containers:

-name:liveness

image:k8s.gcr.io/busybox

args:

-/bin/sh

;还有c

-touch/tmp/healthy;sleep30;rm-rf/tmp/healthy;sleep600

livenessProbe:#自由选择livenessProbe的探测器系统

exec:#执自为都有仅指示

command:

-cat

-/tmp/healthy

initialDelaySeconds:5#在试管开始运自为五秒后开始探测器

periodSeconds:5#每次探测器的一段时间每隔为5秒

在右边的系统设计文档中所,探测器系统为在试管开始运自为5秒后,每隔五秒探测器一次,如果cat仅指示调回的差值为“0”,则坚称生活品质,如果为非0,则坚称异常。

2)Httpget:通过收发http/htps立即体检服务项目确实正常人,调回的情况下码为200-399则坚称试管生活品质(注http get近似于仅指示curl -I)。

Httpget探测器方式为的yaml文档词汇如下:

spec:

containers:

-name:liveness

image:k8s.gcr.io/liveness

livenessProbe:#采用livenessProbe系统探测器

httpGet:#采用httpget的方式为

scheme:HTTP#选定贸易协定,也赞同https

path:/healthz#监测确实可以会面到该网站根索引下的healthz该网站文档

port:8080#传唤下TCP是8080

initialDelaySeconds:3#试管开始运自为3秒后开始探测器

periodSeconds:3#探测器频率为3秒

上述系统设计文档中所,探测器方式为为项试管收发HTTP GET立即,立即的是8080下TCP下的healthz文档,调回任何大于或之比200且相等400的情况下码坚称顺利。任何其他代码坚称异常。

3)tcpSocket:通过试管的IP和Port执自为TCP体检,如果能够创设TCP通到,则表明试管生活品质,这种方式为与HTTPget的探测器系统有些相似,tcpsocket生活品质体检一般来说于TCP业务部门。

tcpSocket探测器方式为的yaml文档词汇如下:

spec:

containers:

-name:goproxy

image:k8s.gcr.io/goproxy:0.1

ports:

-containerPort:8080

#这里两种探测器系统都用上了,都是为了和试管的8080下TCP创设TCP通到

readinessProbe:

tcpSocket:

port:8080

initialDelaySeconds:5

periodSeconds:10

livenessProbe:

tcpSocket:

port:8080

initialDelaySeconds:15

periodSeconds:20

在上述的yaml系统设计文档中所,两类核酸都运;大要用途了,在试管启动5秒后,kubelet将收发第一个readinessProbe核酸,这将通到试管的8080下TCP,如果探测器顺利,则该pod为生活品质,十秒后,kubelet将顺利进自为第二次通到。

除了readinessProbe核酸均,在试管启动15秒后,kubelet将收发第一个livenessProbe核酸,仍然尝试通到试管的8080下TCP,如果通到受挫,则启动试管。

核酸探测器的结果无均乎都有三者之一:

Success:Container通过了体检;

Failure:Container很难通过体检;

Unknown:很难执自为体检,因此不采取任何政策(通常是我们很难并不一定核酸监测,选项为顺利)。

若觉得右边还不够精辟,可以移步其官方网站文档:

5、 如何依靠摇动更新全过程?

问:可以通过请注意的仅指示拍照到更新时可以依靠的表达式:

[root@master yaml] # kubectl explain deploy.spec.strategy.rollingUpdate

maxSurge:此表达式依靠摇动更新全过程,副本总数少于考虑到pod总数的上限。可以是百分比,也可以是明确的差值。选项为1。

(上述表达式的功用就是在更新全过程中所,差值若为3,那么不管三七二一,先开始运自为三个pod,;大要用途替换原先的pod,倍数)

maxUnavailable:此表达式依靠摇动更新全过程中所,不能不用的Pod的总数。

(这个差值和右边的差值很难任何间的关系,举个例子:我有十个pod,但是在更新的全过程中所,我允许这十个pod中所最多有三个不能不用,那么就将这个表达式的差值设置为3,在更新的全过程中所,只要不能不用的pod总数相等或之比3,那么更新全过程就不才会停止)。

6、K8s中所比如说的iTunes方针是什么?

问:可通过仅指示“kubectl explain pod.spec.containers”来拍照imagePullPolicy这自为的解释。

K8s的比如说iTunes方针有三种:Always、Never、IFNotPresent;

Always:比如说表单为latest时,常常从选定的地下室中所赚取比如说;

Never:禁止从地下室中所iTunes比如说,反之亦然勉强运;大要用途本地比如说;

IfNotPresent:数当本地很难大致相同比如说时,才从目标地下室中所iTunes。

选项的比如说iTunes方针是:当比如说表单是latest时,选项方针是Always;当比如说表单是自并不一定时(也就是表单不是latest),那么选项方针是IfNotPresent。

7、 image的情况下有哪些?

Running:Pod所须的试管仍然被顺利控管到某个结点,且仍然顺利开始运自为,

Pending:APIserver创立了pod教育资源实例,并且仍然存入etcd中所,但它尚未被控管启动或者仍然正处于地下室中所iTunes比如说的全过程

Unknown:APIserver勉强正常人赚取到pod实例的情况下,通常是其勉强与所在岗位结点的kubelet无线电起因。

8、 pod的启动方针是什么?

问:可以通过仅指示`kubectl explain pod.spec拍照pod的启动方针。(restartPolicy字符串)

Always:但凡pod实例停止就启动,此为选项方针。

OnFailure:数在pod实例出现错误时才启动

9、 Service这种教育资源实例的功用是什么?

问:用来给大致相同的多个pod实例包括一个固定的确立会面接口,中;大要用途服务项目辨认出和服务项目会面。

10、正式版回滚相关的仅指示?[root@masterhttpd-web]#kubectlapply-fhttpd2-deploy1.yaml;还有record

#开始运自为yaml文档,并详细描述正式版讯息;

[root@masterhttpd-web]#kubectlrollouthistorydeploymenthttpd-devploy1

#拍照该deployment的历史正式版

[root@masterhttpd-web]#kubectlrolloutundodeploymenthttpd-devploy1;还有to-revision=1

#执自为回滚操作者,选定回滚到正式版1

#在yaml文档的spec字符串中所,可以写都有预设(;大要用途限制最多详细描述多少个历史正式版):

spec:

revisionHistoryLimit:5

#这个字符串通过 kubectl explain deploy.spec 仅指示找revisionHistoryLimit 自为获得

11、 表单与表单自由冗余的功用是什么?

表单:是当大致相同特点的教育资源实例越来越多的时候,为了更好的管理机构,可以按照表单将其分为一个组,为的是提升教育资源实例的管理机构可靠性。

表单自由冗余:就是表单的转发去除条件。目在此之前API赞同两种表单自由冗余:

基于等差值间的关系的,如:“=”、“”“==”、“!=”(注:“==”也是之比的意思,yaml文档中所的matchLabels字符串);

基于等价的,如:in、notin、exists(yaml文档中所的matchExpressions字符串);

注:in:在这个等价中所;notin:之均这个等价中所;exists:要么全在(exists)这个等价中所,要么都之均(notexists);

运;大要用途表单自由冗余的操作者自然语言:

在运;大要用途基于等价的表单自由冗余同时选定多个自由冗余之间的自然语言间的关系为“与”操作者(比如:- {key: name,operator: In,values: [zhangsan,lisi]} ,那么只要保有这两个差值的教育资源,都才会被仅指名所);

运;大要用途飞龙差值的表单自由冗余,意味著每个教育资源实例都被仅指名所(如:表单自由冗余的单键是“A”,两个教育资源实例同时保有A这个单键,但是差值不一样,这种情况下,如果运;大要用途飞龙差值的表单自由冗余,那么将同时仅指名所这两个教育资源实例)

飞龙的表单自由冗余(注意不是右边说的飞龙差值,而是飞龙的,都很难并不一定单键的地名),将勉强自由选择出任何教育资源;

在基于等价的自由冗余中所,运;大要用途“In”或者“Notin”操作者时,其values可以为飞龙,但是如果为飞龙,这个表单自由冗余,就很难任何含意了。

两种表单自由冗余特点(基于等差值、基于等价的书写原理):

selector:

matchLabels:#基于等差值

app:nginx

matchExpressions:#基于等价

-{key:name,operator:In,values:[zhangsan,lisi]}#key、operator、values这三个字符串是固定的

-{key:age,operator:Exists,values:}#如果选定为exists,那么values的差值一定要为飞龙

12、 中用的表单定义有哪些?

表单定义是可以自并不一定的,但是为了能使他人可以降至请注意的优点,一般才会运;大要用途都有一些定义:

正式版类表单(release):stable(稳定版)、canary(金丝雀正式版,可以将其被称作的测试版中所的的测试版)、beta(的测试版);

生存环境类表单(environment):dev(开发)、qa(的测试)、production(原材料)、op(运维);

应;大要用途类(app):ui、as、pc、sc;

仅指令集类(tier):frontend(在此之前下端)、backend(后下端)、cache(缓存);

分区表单(partition):customerA(零售商A)、customerB(零售商B);

品控级别(Track):daily(每天)、weekly(每周)。

13、 有几种拍照表单的方式为?

问:中用的有都有三种拍照方式为:

[root@master ~]# kubectl get pod ;还有show-labels #拍照pod,并且说明了表单细节

[root@master ~]# kubectl get pod -L env,tier #说明了教育资源实例表单的差值

[root@master ~]# kubectl get pod -l env,tier #只说明了具备单键差值教育资源实例的pod,而“-L”是说明了所有的pod

14、 去除、修改、撤下表单的仅指示?#对pod表单的操作者

[root@master ~]# kubectl label pod label-pod abc=123 #给名叫label-pod的pod去除表单

[root@master ~]# kubectl label pod label-pod abc=456 ;还有overwrite #修改名叫label-pod的表单

[root@master ~]# kubectl label pod label-pod abc- #撤下名叫label-pod的表单

[root@master ~]# kubectl get pod ;还有show-labels

#对node结点的表单操作者

[root@master ~]# kubectl label nodes node01 disk=ssd #给结点node01去除disk表单

[root@master ~]# kubectl label nodes node01 disk=sss –overwrite #修改结点node01的表单

[root@master ~]# kubectl label nodes node01 disk- #撤下结点node01的disk表单

15、 DaemonSet教育资源实例的特点?

DaemonSet这种教育资源实例才会在每个k8s一个大中所的结点上开始运自为,并且每个结点勉强开始运自为一个pod,这是它和deployment教育资源实例的最;大要也是唯一的差异。所以,在其yaml文档中所,不赞同并不一定replicas,除此之均,与Deployment、RS等教育资源实例的写法大致相同。

它的一般运;大要用途过场如下:

在去要用每个结点的副本收集岗位;

防范每个结点的的开始运自为情况下;

16、 说说你对Job这种教育资源实例的认识到?

问:Job与其他服务项目类试管有所不同,Job是一种岗位类试管(一般;大要用途要用一次性侦查)。运;大要用途常见不多,可以忽略这个问题。

#提高Job执自为可靠性的原理:

spec:

parallelism: 2 #一次开始运自为2个

completions: 8 #最多开始运自为8个

template:

metadata:

17、描述一下pod的有机体有哪些情况下?

Pending:坚称pod仍然被同意创立,刚刚准备好kube-scheduler自由选择合适的结点创立,一般是在准备比如说;

Running:坚称pod中所所有的试管仍然被创立,并且数数有一个试管刚刚开始运自为或者是刚刚启动或者是刚刚启动;

Succeeded:坚称所有试管仍然顺利停止,并且不才会再启动;

Failed:坚称pod中所所有试管都亦非0(不正常人)情况下退出;

Unknown:坚称勉强载入Pod情况下,通常是kube-controller-manager勉强与Pod无线电。

18、 创立一个pod的流程是什么?

零售商下端提交Pod的系统设计讯息(可以是yaml文档并不一定好的讯息)到kube-apiserver;

Apiserver寄出仅指令后,通知给controller-manager创立一个教育资源实例;

Controller-manager通过api-server将pod的系统设计讯息读取到ETCD三幅表中所心中所;

Kube-scheduler监测到pod讯息才会开始控管预选,才会先去除上来不具备Pod教育资源系统设计要求的结点,然后开始控管调优,;大要是筛选更适合开始运自为pod的结点,然后将pod的教育资源系统设计单收发到node结点上的kubelet配件上。

Kubelet根据scheduler发来的教育资源系统设计单开始运自为pod,开始运自为顺利后,将pod的开始运自为讯息调回给scheduler,scheduler将调回的pod开始运自为状况的讯息读取到etcd三幅表中所心。

19、 撤下一个Pod才会愈演愈烈什么事情?

问:Kube-apiserver才会接受到浏览器的撤下仅指令,选项有30秒一段时间准备好庄重退出,少于30秒才会被标示出为遇害情况下,此时Pod的情况下Terminating,kubelet看不到pod标示出为Terminating就开始了关闭Pod的岗位;

关闭流程如下:

pod从service的endpoint一览表中所被替换成;

如果该pod并不一定了一个停止在此之前的钳子,其才会在pod之下被线程,停止钳子一般并不一定了如何庄重的过后某种程度;

某种程度被收发TERM瞬时(kill -14)

当少于庄重退出的一段时间后,Pod中所的所有某种程度都才会被收发SIGKILL瞬时(kill -9)。

20、 K8s的Service是什么?

问:Pod每次启动或者重新侦察,其IP地址都才会造成了变简化,这使得pod间无线电和pod与均部无线电变得困难,这时候,就须要Service为pod包括一个固定的入口处。

Service的Endpoint一览表通常初始化了一组大致相同系统设计的pod,通过负载均衡的方式为把均界立即重新分配到多个pod上

21、 k8s是怎么顺利进自为服务项目申请人的?

问:Pod启动后才会初始化当在此之前生存环境所有Service讯息,以便有所不同Pod根据Service名顺利进自为无线电。

22、 k8s一个大均使用量大怎么会面Pod?

问:可以通过Service的NodePort方式为会面,才会在所有结点传唤同一个下TCP,比如:30000,会面结点的使用量大才会被初始化到大致相同的Service右边。

23、 k8s三幅表专一简化的方式为有哪些?

问:

1)EmptyDir(飞龙索引)

很难选定要预设宿PSP上的某个索引,直接由Pod之下同构到宿PSP上。近似于docker中所的manager volume。

;大要运;大要用途过场:

只须要临时将三幅表存留在磁盘上,比如在拆分/排序插值中所;

作为两个试管的协作读取,使得第一个细节管理机构的试管可以将生成的三幅表存入其中所,同时由同一个webserver试管对均包括这些页面。

emptyDir的特点:

同个pod里头的有所不同试管,协作同一个专一简化索引,当pod结点撤下时,volume的三幅表也才会被撤下。如果数数是试管被销毁,pod还在,则不才会受到影响volume中所的三幅表。

总结来说:emptyDir的三幅表专一简化的有机体和运;大要用途的pod明确。一般是作为临时读取运;大要用途。

2)Hostpath

将宿PSP上已实际上的索引或文档预设到试管之下。近似于docker中所的bind mount预设方式为。

这种三幅表专一简化方式为,运用过场不多,因为它提高了pod与结点之间的作用力。

一般对于k8s一个大本身的三幅表专一简化和docker本身的三幅表专一简化才会运;大要用途这种方式为,可以自自为参考apiService的yaml文档,位于:/etc/kubernetes/main…索引下。

3)PersistentVolume(简称PV)

基于NFS服务项目的PV,也可以基于GFS的PV。它的功用是确立三幅表专一简化索引,归并。

在一个PV的yaml文档中所,可以对其系统设计PV的大小,选定PV的会面的系统:

ReadWriteOnce:勉强以载入的方式为预设到单个结点;

ReadOnlyMany:能以内联的方式为预设到多个结点;

ReadWriteMany:能以载入的方式为预设到多个结点。以及选定pv的储存起来方针:

recycle:清除PV的三幅表,然后基本功能性储存起来;

Retain:须要手动储存起来;

delete:撤下碧读取教育资源,碧读取;大要用途;

PS:这里的储存起来方针仅指的是在PV被撤下后,在这个PV下所读取的源文档确实撤下)。

若须运;大要用途PV,那么还有一个举足轻重的概念:PVC,PVC是向PV核发应;大要用途所须的使用量大小,K8s一个大中所可能才会有多个PV,PVC和PV若要相似性,其并不一定的会面的系统必需明确。并不一定的storageClassName也必需明确,若群中所实际上大致相同的(人名、会面的系统都明确)两个PV,那么PVC才会自由选择向它所须使用量接近的PV去核发,或者随机核发。

本文转载自:「CSDN」,原文:,商标权归原作者所有,数要用人文科学共享运;大要用途,如有知识产权,请联系后台撤下。

扫码特惠常居

武汉癫痫专业医院
乐珠滴眼液多少钱一盒
广州儿科专科医院哪里好
治疗口腔溃疡能用必奇蒙脱石散吗
艾得辛的治疗效果如何
标签:面试题
友情链接