23 个必知仍要的 Kubernetes 高频面试题
2025-09-30 12:18
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商量,商量的是8080TCP下的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
#这里两种精确测量该系统都用上了,都是为了和罐的8080TCP建立联系TCP相互连接
readinessProbe:
tcpSocket:
port:8080
initialDelaySeconds:5
periodSeconds:10
livenessProbe:
tcpSocket:
port:8080
initialDelaySeconds:15
periodSeconds:20
在上述的yaml系统设计机密文件中的,两类间隙都会用了,在罐开启5秒后,kubelet将收发第一个readinessProbe间隙,这将相互连接罐的8080TCP,如果精确测量显现出乎意料,则该pod为心理健康,十秒后,kubelet将来进行第二次相互连接。
除了readinessProbe间隙外,在罐开启15秒后,kubelet将收发第一个livenessProbe间隙,始终设法相互连接罐的8080TCP,如果相互连接惨败,则在此之后罐。
间隙精确测量的结果无外乎下述三者之一:
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中的链接的串流方针是什么?
不来:可通过操控“kubectl explain pod.spec.containers”来拍照imagePullPolicy这行的解释。
K8s的链接串流方针有三种:Always、Never、IFNotPresent;
Always:链接字句为latest时,总是从选定的储藏室中的赚取链接;
Never:禁止从储藏室中的串流链接,也就是时说勉强会用本地链接;
IfNotPresent:仅有当本地不能对应链接时,才从目标储藏室中的串流。
普通用户的链接串流方针是:当链接字句是latest时,普通用户方针是Always;当链接字句是自假定时(也就是字句不是latest),那么普通用户方针是IfNotPresent。
7、 image的静止状态有哪些?Running:Pod所须的罐并未被显现出乎意料系统设计到某个链表,且并未显现出乎意料行驶,
Pending:APIserver创设了pod水资源并不一定,并且并未提领etcd中的,但它未被系统设计完成或者始终处于储藏室中的串流链接的全过程
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;
Core类(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(影编目)
不能选定要系统设计宿主机上的某个编目,直接由Pod结构上同态到宿主机上。像是docker中的的manager volume。
主要会用情节:
只必须临时将数据库保依赖于磁盘上,比如在合并/排列搜索算法中的;
作为两个罐的共享驱动器,使得第一个章节管理机构的罐可以将生成的数据库提领其中的,同时由同一个webserver罐中华人民共和国政府透过这些页面。
emptyDir的特性:
同个pod右边的完全一致罐,共享同一个更为为不可或缺简化编目,当pod链表截图时,volume的数据库也才会被截图。如果某种程度是罐被销毁,pod还在,则不才会阻碍volume中的的数据库。
总结来时说:emptyDir的数据库更为为不可或缺简化的生命周期和会用的pod明确。一般是作为临时驱动器会用。
2)Hostpath
将宿主机上已依赖于的编目或机密文件系统设计到罐结构上。像是docker中的的bind mount系统设计手段。
这种数据库更为为不可或缺简化手段,能用情节不多,因为它增加了pod与链表之间的耦合。
一般对于k8s影降兵本身的数据库更为为不可或缺简化和docker本身的数据库更为为不可或缺简化才会会用这种手段,可以自行参见apiService的yaml机密文件,位于:/etc/kubernetes/main…编目下。
3)PersistentVolume(简称PV)
基于NFS增系数的PV,也可以基于GFS的PV。它的功用是统一数据库更为为不可或缺简化编目,方便管理机构。
在一个PV的yaml机密文件中的,可以对其系统设计PV的个数,选定PV的显现出访方式也:
ReadWriteOnce:勉强以读写的手段系统设计到单个链表;
ReadOnlyMany:能以null的手段系统设计到多个链表;
ReadWriteMany:能以读写的手段系统设计到多个链表。以及选定pv的储存起来方针:
recycle:清理PV的数据库,然后则会储存起来;
Retain:必须手动储存起来;
delete:截图云驱动器水资源,云驱动器配有;
PS:这里的储存起来方针指的是在PV被截图后,在这个PV下所驱动器的源机密文件是否是截图)。
若须会用PV,那么还有一个不可或缺的种概念:PVC,PVC是向PV申领运用所须的发电能力个数,K8s影降兵中的可能才会有多个PV,PVC和PV若要关联,其假定的显现出访方式也须要明确。假定的storageClassName也须要明确,若群以外的依赖于完全一致的(昵称、显现出访方式也都明确)两个PV,那么PVC才会可选择向它所须发电能力近似于的PV去申领,或者随机申领。
本文转载自:「CSDN」,原文:,著作权归原作者所有,仅有动手学术个人会用,如有著作权,商量联系前台截图。
扫编码红利购书
。佛山男科专科医院哪里好数字孪生公司
抗衰除皱老偏方
威海白癜风医院去哪家好
阳痿怎么办
咳嗽有痰吃什么药
补益药
咳嗽黄痰可以喝太极急支糖浆吗
太极急支糖浆治咳嗽效果怎么样
先天性心脏病
-
不建议捡的3款iPhone
不建议买来的3款iPhone 千万别买来这三款iphone最后一款谁买来谁恶心。 第一款、iphone X 虽然说它是更进一步中门的始祖,
-
gh2761高温合金延展性gh2761高温合金机械性能
GH2761是Fe-Ni-Cr福堆积变硬型号变形颇高温合金,既有密度750℃以下。合金通过参加颇高铝、BRT及操控合金的AlTi比,进步合金颇高强度。该合金亦需安稳,带有颇高的屈从颇高强度、极
- 09-30国标HPb59-1锕铜含量多少 59-1密度
- 09-3012306“上新”!可购买20个地区的汽车票
- 09-30这里有个美国国家航空航天局科普嘉年华,圆你一个“飞天梦”
- 09-30航天科技转化之西路
- 09-30史上纵观肥料知识!(珍藏版)
- 09-30中核集团将推出“推进系统宠物狗”,造型别致
- 09-30微信官方总结 6 个 Old School 功能,好用却常会被忘
- 09-30世界读书日丨和科幻作家韩松一起畅游想象的海洋
- 09-30四款齐发!iPhone 14新细节曝光 苹果要加入新的紫色配色 更有幸福
- 09-30回光返照是真的吗?科学家正在努力假定这一点