版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年K8S工程师初级K8S开发试题及答案一、单项选择题(每题2分,共20分)1.Kubernetes中,最小的调度与部署单元是哪项?A.NodeB.PodC.ContainerD.Deployment答案:B解析:Pod是Kubernetes中可以被创建、调度、管理的最小单元,一个Pod封装一个或多个容器,共享网络与存储资源;Node是集群工作节点,是承载Pod的物理/虚拟主机;Container是运行应用的载体,必须被包含在Pod中;Deployment是管理Pod的控制器,不是部署单元。2.以下哪种原生控制器适合部署无状态Web应用,支持灵活的扩缩容与滚动更新?A.DeploymentB.StatefulSetC.DaemonSetD.Job答案:A解析:Deployment是Kubernetes为无状态应用设计的工作负载控制器,支持滚动更新、回滚、水平扩缩容等能力,适合无状态Web服务、接口服务等场景;StatefulSet用于管理有状态应用,如数据库、分布式存储节点;DaemonSet用于保证每个Node节点运行一个指定Pod,适合日志采集、节点监控这类集群级代理服务;Job用于一次性批处理任务,不适合长期运行的应用服务。3.集群内部访问Service的默认DNS域名格式是哪项?A.<service-name>.<namespace>.svc.cluster.localB.<pod-ip>.<service-name>.cluster.localC.<service-name>.<node-name>.svc.localD.<deployment-name>.<namespace>.cluster.local答案:A解析:Kubernetes默认集群域名后缀为cluster.local,集群DNS服务为每个Service生成固定域名,格式为「服务名.命名空间.svc.集群域名」,集群内任意Pod都可以通过该域名稳定访问Service,无需关注后端PodIP的变化。4.在Pod的YAML定义中,要为Pod内多个容器声明可共享的存储卷,需要配置哪个字段?A.spec.containers[*].volumeMountsB.spec.volumesC.spec.volumeClaimTemplatesD.spec.storageClassName答案:B解析:spec.volumes是Pod规格层面的字段,用于声明该Pod可用的存储卷,支持空目录、ConfigMap、Secret、PVC等多种存储源,同一个Pod内的多个容器可以挂载该存储卷实现数据共享;volumeMounts是容器层面的字段,用于指定存储卷在容器内的挂载路径;volumeClaimTemplates是StatefulSet中用于动态创建PVC的配置,不属于Pod字段;storageClassName是存储类名称,用于指定PVC使用的存储类型。5.以下Service类型中,可直接通过节点IP对外开放访问的是哪项?A.ClusterIPB.NodePortC.ExternalNameD.HeadlessService答案:B解析:ClusterIP仅分配集群内部虚拟IP,仅支持集群内访问;NodePort会在集群所有Node节点开放一个指定范围的端口,外部可通过<NodeIP>:<NodePort>直接访问服务;ExternalName仅通过DNSCNAME将服务映射到指定外部域名,不分配IP也不开放端口;HeadlessService不分配ClusterIP,仅用于集群内服务发现。6.Deployment滚动更新过程中,用于控制最大不可用副本数的字段是哪项?A.maxSurgeB.maxUnavailableC.progressDeadlineSecondsD.minReadySeconds答案:B解析:maxUnavailable定义了滚动更新过程中允许最多有多少个副本处于不可用状态,支持绝对值或百分比配置;maxSurge定义更新过程中允许超出预期总副本数的最大新增副本数;progressDeadlineSeconds定义部署超时时间,超过该时间部署未完成则标记为失败;minReadySeconds定义新Pod就绪后需要等待多久才被判定为可用,避免刚启动就承接流量。7.以下关于ConfigMap和Secret的描述,正确的是哪项?A.ConfigMap适合存储敏感数据,Secret适合存储非敏感配置B.Secret默认将数据以base64编码存储,ConfigMap默认以明文存储C.ConfigMap不能挂载为容器文件,Secret可以D.两者都只能以环境变量方式注入容器答案:B解析:Secret用于存储敏感数据,默认使用base64编码存储数据(并非加密,若需加密需要结合KMS等组件),ConfigMap用于存储非敏感配置,以明文存储;两者都支持环境变量注入、文件挂载两种使用方式,因此选项A、C、D错误,B正确。8.当前稳定版Kubernetes集群中,Deployment资源对应的正确apiVersion是哪项?A.extensions/v1beta1B.apps/v1C.apps/v1beta1D.v1答案:B解析:自Kubernetes1.9版本起,apps/v1成为Deployment的稳定版API,旧版的extensions/v1beta1、apps/v1beta1等版本已经逐步废弃,因此正确答案为B。9.当Pod因集群节点资源不足无法完成调度时,Pod会处于什么状态?A.PendingB.RunningC.CrashLoopBackOffD.Completed答案:A解析:Pending状态表示Pod已经被APIServer接受并保存,但是尚未完成调度或者无法启动容器,资源不足无法调度属于典型的Pending场景;Running表示Pod已经调度到节点、所有容器启动正常;CrashLoopBackOff表示容器启动失败后kubelet不断尝试重启,进入异常循环;Completed表示Job类型的任务已经执行完成。10.开发Go语言自定义Kubernetes控制器,官方推荐的标准客户端库是哪项?A.client-goB.k8s.io/apiserverC.kubectlD.kube-proxy答案:A解析:client-go是Kubernetes官方维护的Go语言客户端库,提供了访问APIServer、资源监听、类型序列化等核心能力,是开发自定义控制器、Operator等扩展组件的基础依赖;k8s.io/apiserver是APIServer核心服务端代码库,kubectl是命令行工具,kube-proxy是集群网络组件,因此正确答案为A。二、多项选择题(每题3分,共15分)1.以下选项中,属于Kubernetes原生支持的Pod重启策略的有哪些?A.AlwaysB.OnFailureC.NeverD.OnExit答案:ABC解析:KubernetesPod的restartPolicy仅支持三种策略:Always(默认策略,只要容器退出就重启,适合长期运行的服务)、OnFailure(仅当容器退出码非0即异常退出时才重启)、Never(容器退出后永远不重启,适合一次性任务),不存在OnExit策略,因此正确选项为ABC。2.以下关于HeadlessService的描述,正确的有哪些?A.HeadlessService不会分配ClusterIPB.HeadlessService通常用于有状态应用的服务发现C.声明HeadlessService需要指定spec.clusterIP:NoneD.HeadlessService无法被集群DNS解析答案:ABC解析:HeadlessService通过将spec.clusterIP设置为None实现,不分配集群虚拟IP,DNS解析会直接返回后端所有Pod的IP地址,适合StatefulSet这类每个Pod需要独立网络标识的有状态应用,依然可以被集群DNS正常解析,因此D错误,ABC正确。3.Kubernetes原生支持的应用健康检查探针类型包括哪些?A.livenessProbe(存活探针)B.readinessProbe(就绪探针)C.startupProbe(启动探针)D.healthProbe答案:ABC解析:Kubernetes原生提供三种探针:存活探针检测容器存活状态,失败则重启容器;就绪探针检测容器是否可承接流量,失败则将Pod从Service端点移除;启动探针检测应用是否启动完成,启动成功前不会触发存活和就绪探针,适合慢启动应用;不存在原生的healthProbe探针类型,因此正确选项为ABC。4.以下选项中,属于Kubernetes原生工作负载控制器的有哪些?A.DeploymentB.StatefulSetC.DaemonSetD.IngressControllerE.Job/CronJob答案:ABCE解析:Deployment、StatefulSet、DaemonSet、Job、CronJob都是Kubernetes核心提供的工作负载控制器,用于管理Pod的生命周期;IngressController是实现Ingress规则的反向代理组件,不属于核心工作负载控制器,因此正确选项为ABCE。5.自定义资源定义CRD的YAML文件中,必须包含的核心字段有哪些?A.apiVersionB.kindC.metadataD.specE.status答案:ABCDE解析:所有Kubernetes资源都必须包含apiVersion(API版本)、kind(资源类型)、metadata(元数据,包含资源名称、命名空间、标签等信息);自定义资源的规则定义在spec字段,自定义资源的运行状态信息保存在status字段,因此五个字段都是必须的,全选。三、判断题(每题2分,共10分)1.同一个Pod内的多个容器共享同一个网络命名空间,可以通过localhost互相通信。答案:正确解析:Pod的核心设计就是让多个紧耦合的容器共享网络和存储,同一个Pod内所有容器共享IP和端口空间,因此可以通过localhost直接互访。2.StatefulSet不支持滚动更新,只能全部重建更新。答案:错误解析:StatefulSet原生支持有序滚动更新,支持按顺序逐个替换旧版本Pod,保证更新过程不破坏有状态应用的稳定性,和Deployment一样支持滚动更新能力。3.命名空间是Kubernetes的逻辑资源隔离机制,不同命名空间下的同名资源不会冲突。答案:正确解析:命名空间将集群划分为多个逻辑分区,同一个命名空间内资源名称必须唯一,不同命名空间的资源相互独立,名称可以重复,适合多团队、多环境的资源隔离。4.Kubernetes中Service的负载均衡转发能力是由CoreDNS实现的。答案:错误解析:CoreDNS(原kube-dns)负责实现Kubernetes的服务发现,提供DNS域名解析;Service的负载均衡转发是由kube-proxy组件实现,kube-proxy在每个节点维护iptables或IPVS规则,实现流量的转发和负载均衡。5.容器退出后,Kubernetes会立即删除对应Pod和所有日志。答案:错误解析:默认情况下容器退出后Pod会保留在集群中,日志也会保留在对应节点上,方便开发人员排查问题,只有手动删除Pod或者控制器清理旧版本ReplicaSet时,才会清理对应的Pod和日志。四、简答题(每题11分,共55分)1.请简述Pod、Deployment、Service三者的作用与关系答案:(1)作用:①Pod是Kubernetes最小的调度部署单元,用于封装运行应用的一个或多个容器,同一个Pod内的容器共享网络、存储资源,每个Pod拥有独立的集群IP,是所有应用运行的基础承载单元。②Deployment是Kubernetes原生的无状态应用工作负载控制器,用于管理Pod的全生命周期,通过控制ReplicaSet保证Pod副本数符合预期,支持滚动更新、版本回滚、水平扩缩容等能力,满足无状态应用的部署运维需求。③Service是Kubernetes提供的服务抽象与负载均衡层,用于为一组动态变化的Pod提供固定的访问入口,解决了PodIP随重建调度变化的问题,实现了服务发现与负载均衡,解耦服务消费者与后端Pod的依赖。(2)关系:Pod是基础承载单元,运行实际的应用容器;Deployment作为控制器,负责管控一组Pod的副本数、更新、重启等生命周期,保证Pod按预期运行;Service为Deployment管理的Pod提供稳定的访问入口,承接集群内外的访问流量,三者配合完成云原生应用的部署与访问。2.请简述三种Kubernetes探针的作用,说明开发中为什么要配置探针答案:Kubernetes原生提供三种探针,作用分别为:①存活探针(livenessProbe):用于检测容器是否正常存活,若探测失败,kubelet会判定容器进入异常状态,按照重启策略重启容器,解决了应用进程假死(比如死锁、进程未退出但无法处理请求)的问题,实现异常自动恢复。②就绪探针(readinessProbe):用于检测容器是否就绪,可正常承接用户请求,若探测失败,kubelet会将该Pod从对应Service的后端端点列表中移除,不会转发流量到该Pod,适合处理应用启动慢、应用暂时不可用(比如加载数据)的场景,避免无效请求失败。③启动探针(startupProbe):用于检测应用是否启动完成,在启动探针探测成功之前,kubelet不会触发存活探针和就绪探针的探测,适合启动时间较长的大型应用,避免存活探针在应用启动完成前就判定异常,错误重启容器。开发中配置探针的原因:云原生环境下应用是动态调度的,仅依靠进程状态无法准确判断应用是否可用,配置探针可以让Kubernetes自动感知应用状态,自动完成异常恢复和流量调度,提升应用的高可用性,减少人工干预,符合云原生自动化运维的设计理念。3.什么是ConfigMap和Secret?两者的区别和适用场景分别是什么?答案:ConfigMap和Secret都是Kubernetes提供的配置管理资源,用于将应用配置和容器镜像解耦,让同一个镜像可以在不同环境加载不同配置,不需要修改镜像就能适配不同环境。两者的区别和适用场景:①存储安全性:ConfigMap以明文存储配置数据,适合存储非敏感配置,比如应用运行环境、配置文件内容、服务地址参数等,常见场景:挂载应用配置文件到容器,注入环境变量,保存集群通用配置。②Secret专门用于存储敏感数据,默认将数据做base64编码存储,支持加密存储,可以避免敏感信息明文暴露在镜像、代码库中,常见场景:存储数据库密码、API密钥、SSL证书、私有镜像仓库拉取凭证等敏感信息。两者都支持环境变量注入和文件挂载两种使用方式,核心区别是适用场景的安全性要求不同。4.简述Deployment滚动更新的流程,说明maxSurge和maxUnavailable参数的作用答案:滚动更新是Deployment默认的更新方式,逐步将旧版本Pod替换为新版本,更新过程中持续保留可用实例,不会中断服务,核心流程为:①当触发更新(比如修改镜像版本),Deployment会创建一个新的ReplicaSet,用于管理新版本Pod;②按照maxSurge和maxUnavailable的配置,创建指定数量的新版本Pod,等待新版本Pod就绪;③终止对应数量的旧版本Pod,逐步缩减旧ReplicaSet的副本数;④重复上述步骤,直到所有旧版本Pod都被替换为新版本,更新完成,旧ReplicaSet会保留在集群中,支持快速回滚。参数作用:①maxSurge:定义滚动更新过程中允许超出预期总副本数的最大Pod数量,支持绝对值或百分比,控制更新过程中最多新增多少个新版本Pod,该值越大,更新速度越快,占用的集群资源越多。②maxUnavailable:定义滚动更新过程中允许最多有多少个副本处于不可用状态,支持绝对值或百分比,控制更新过程中最少保留多少个可用实例,该值越小,更新过程可用性越高。例如总副本数为10,若要求更新过程全程不中断服务,可配置maxUnavai
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办公设备再制造工复测测试考核试卷含答案
- 服装及纺织品整烫工变革管理水平考核试卷含答案
- 浮法玻璃成型工达标知识考核试卷含答案
- 工程总承包项目EPC管理和审计
- 人教版2026-2027学年八年级下册生物教学工作计划(及进度表)
- 厨房排水主管施工方案
- Ⅱ级承插式钢筋混凝土管施工方法(范文)
- 2026年燃气管道工程施工方案(新)
- “2025年全民国家安全教育日”知识测试题及答案
- 一体化压铸趋势下独立加强板产品的生命周期预判
- 2026-2027学年二年级语文上册第一单元检测试卷统编版
- 2025年北京市丰台区教育系统事业编人员招聘笔试试题及答案详解
- 2026年秋季九年级道德与法治上册教学计划
- 2026小学语文新教材培训:新修订教材衔接教学建议
- 动力管道设计手册-第2版
- 城市轨道交通行车组织教案
- 广联达钢结构算量软件-基础培训
- RB/T 303-2016养老服务认证技术导则
- HY/T 158-2013拖曳式多参数剖面测量系统
- GB/T 5578-1985固定式发电用汽轮机技术条件
- GB/T 2900.13-2008电工术语可信性与服务质量
评论
0/150
提交评论