K8S知识点
32. Kubernetes对集群Pod和容器健康状态如何进行监控和检测的。
答:
K8s 通过探针机制监控 Pod 和容器的健康状态,包括存活探针、就绪探针和启动探针)。kubelet 定期执行这些探针检查容器状态,根据结果采取重启容器、标记 Pod 不可用等操作,确保应用健康运行。
33. 解释LivenessProbes探针的作用及其适用场景。
答:
LivenessProbe(存活探针)用于检测容器是否运行正常。当探测失败时,kubelet 会重启容器。适用场景:确保应用在崩溃、死锁等状态下能自动恢复,如检测 Web 服务是否能响应请求。
34. 解释ReadinessProbe探针的作用及其适用场景。
答:
ReadinessProbe(就绪探针)用于判断容器是否已准备好接收请求。未通过探测时,Pod 会从服务的端点列表中移除。适用场景:应用启动需要加载数据或初始化配置,确保仅当应用完全就绪后才接收流量。
35. 解释StartupProbe探针的作用及其适用场景。
答:
StartupProbe(启动探针)用于判断容器内的应用是否已启动完成。在启动探针成功前,存活和就绪探针不会执行。适用场景:启动缓慢的应用(如大型 JVM 应用),避免因启动时间过长导致存活探针误判并重启容器。
36. 说明K8s中Pod级别的Graceful Shutdown,是pod的属性。
答:
Pod 级别的 Graceful Shutdown(优雅关闭)指删除 Pod 时,Kubernetes 先发送终止信号(SIGTERM)给容器内进程,等待指定的终止宽限期,让进程完成收尾工作(如保存数据、关闭连接),超时后强制终止(SIGKILL)。可通过terminationGracePeriodSeconds字段配置宽限期。
37. 解释什么是Kubernetes的Volume。
答:
Kubernetes 的 Volume(存储卷)是 Pod 中容器可访问的共享存储目录,用于持久化数据或在容器间共享数据。Volume 的生命周期与 Pod 绑定,Pod 删除时,卷的内容是否保留取决于卷类型。
38. 解释emptyDir卷类型的特征。
答:
emptyDir 卷是在 Pod 被调度到节点时创建的临时目录,初始为空,所有容器可共享。当 Pod 从节点移除时,emptyDir 中的数据会被永久删除。适用于临时缓存、容器间数据交换等场景。
39. 解释hostPath卷类型的特征。
答:
hostPath 卷将节点的文件或目录挂载到 Pod 中,使容器能访问节点的文件系统。特征:数据持久化在节点本地,Pod 调度到其他节点后无法访问原节点的 hostPath 数据。适用于需要访问节点日志、配置文件等场景(需谨慎使用,可能导致 Pod 与节点耦合)。
40. 解释PV卷类型的特征,
答:
PV(PersistentVolume,持久卷)是集群级别的存储资源,由管理员预先创建或通过 StorageClass 动态供应,独立于 Pod 生命周期,可被多个 Pod 共享。PV 具有固定的存储容量、访问模式和回收策略,提供持久化存储能力。
41. 什么是PVC,如何使用它。
答:
PVC(PersistentVolumeClaim,持久卷声明)是用户对存储资源的请求。用户通过 PVC 指定所需的存储容量、访问模式等,Kubernetes 会自动匹配符合条件的 PV 并绑定。使用方式:创建 PVC 定义存储需求,在 Pod 的 Volume 中引用 PVC 名称,实现存储资源的动态分配。
42. PV有哪几种访问模式,详细说明。
答:
PV 的访问模式(Access Modes)包括:
ReadWriteOnce(RWO):仅允许单个节点以读写方式挂载。
ReadOnlyMany(ROX):允许多个节点以只读方式挂载。
ReadWriteMany(RWX):允许多个节点以读写方式挂载。
ReadWriteOncePod(RWOP):仅允许单个 Pod 以读写方式挂载(Kubernetes 1.27 + 支持)。
43. 解释PV的回收策略。
答:
PV 的回收策略定义了当 PVC 释放 PV 时的处理方式:
Retain(保留):PV 被保留,数据不删除,需管理员手动处理。
Delete(删除):PV 及其存储后端的数据会被自动删除(适用于云存储等动态供应的 PV)。
Recycle(回收):仅清空 PV 数据(已废弃,推荐用 Delete 或 Retain)。
44. 如何将特定Pod调度到指定的节点?
答:
节点选择器(nodeSelector):在 Pod.spec 中指定nodeSelector,匹配节点标签。
节点亲和性(nodeAffinity):更灵活的标签匹配规则,支持软策略(preferredDuringSchedulingIgnoredDuringExecution)和硬策略(requiredDuringSchedulingIgnoredDuringExecution)。
污点和容忍(Taints and Tolerations):节点设置污点排斥 Pod,Pod 设置容忍可调度到该节点。
节点名称(nodeName):直接指定节点名称,跳过调度器,适用于特殊场景。
45. 什么是节点的亲和性?
答:
节点亲和性(Node Affinity)是 Pod 的调度规则,通过匹配节点标签控制 Pod 调度到哪些节点。与 nodeSelector 相比,支持更复杂的逻辑(如In、NotIn、Exists等),并分为:
硬亲和性(requiredDuringSchedulingIgnoredDuringExecution):必须满足条件,否则 Pod 无法调度。
软亲和性(preferredDuringSchedulingIgnoredDuringExecution):优先满足条件,不满足也可能调度。
46. 什么是污点,它的主要用途是什么?
答:
污点(Taint)是节点的属性,用于排斥不满足条件的 Pod。每个污点包含键(key)、值(value)和效果(effect):
NoSchedule:阻止未容忍该污点的新 Pod 调度到节点。
PreferNoSchedule:尽量阻止未容忍的 Pod 调度到节点。
NoExecute:已运行的未容忍 Pod 会被驱逐,新 Pod 无法调度。
主要用途:标记特殊节点(如 GPU 节点、污点节点),控制 Pod 调度,确保节点资源合理使用。
47. 解释ConfigMap的作用。
答:
ConfigMap 用于存储非敏感的配置数据(如环境变量、配置文件),以键值对形式存在。作用:
解耦配置与应用代码,便于配置管理和更新。
可被多个 Pod 共享,通过环境变量或文件挂载方式注入容器。
48. Secret和ConfigMap相比较有哪些优点。
答:
Secret 与 ConfigMap 相比,优点在于专门用于存储敏感信息(如密码、令牌、证书):
数据会被 Base64 编码(非加密,需配合 RBAC 和加密配置增强安全性)。
访问控制更严格,默认仅在需要时挂载到 Pod,减少敏感数据暴露风险。
支持挂载为文件或环境变量,使用方式与 ConfigMap 类似,但更适合敏感信息管理。
49. 解释ResourceQuota的作用。
答:
ResourceQuota(资源配额)用于限制命名空间内资源的使用总量,防止资源滥用。作用:
限制 Pod、Service、ConfigMap 等对象的数量。
限制 CPU、内存等计算资源的总请求量和限制量。
确保不同命名空间公平使用集群资源,适用于多团队共享的集群环境。
更多推荐


所有评论(0)