33.Kubernets对集群Pod和健康容器状态如何进行监控和检测的。

K8s通过kubelet节点监控,使用三种探针来监控和管理容器监控状态,每种探针在容器生命周期种的不同阶段发挥不同的作用。

34.解释LivenessProbes探针的作用及其适用场景。

LivenessProbes存活探针,存活探针通过在容器中创建一个命令,然后检测容器中命令的返回结果来判断容器是否存活,如果命令返回0值则代表容器存活,如果命令的返回非0值,kubelet就会杀死这个容器并且重新启动它。存活探针可以捕捉到死锁、僵停卡死的容器并且重新启动它。

35.解释ReadinessProbe探针的作用及其适用场景。

ReadinessProbe 就绪探针,可以知道容器什么时候处于就绪状态并可以接受请求流量,只要当一个Pod内的所有容器都准备好了,才能把这个Pod看作就绪状态,kubelet会在容器启动5秒后发送第一个就绪检测,尝试连接容器的80端口,如果探测成功,该Pod就会被标记为就绪状态,之后kubelet将继续每隔10秒运行一次检测。

36.解释StartupProbe探针的作用及其适用场景。

StartupProbe启动探针,专门判定容器是否完成初始化启动,启动探针成功之前,暂时禁用存活探针和就绪探针,避免容器启动慢被误杀、误判异常,启动探测成功后才正式开启另外两种探针。启动探针一般会给容器留充足时间去启动,若后续连续探测失败,则会直接重启容器,适用于大项目或者微服务初始化加载资源慢的情况。

37.说明K8s中Pod级别的Graceful Shutdown。

Graceful Shutdown优雅关闭,删除Pod时,K8s会发信号通知容器停止,预留等待时间让容器完成收尾逻辑,再强制杀死进程,避免数据丢失、事务异常。从K8s1.22开始terminationGracePeriodSeconds特性被开启,写在spec下可以自定义时间。

38.解释什么是Kubernetes的Volume。

K8s支持很多类型的卷,Pod可以同时使用任意数目的卷类型,临时卷类型的生命周期与Pod相同,持久卷可以比Pod有更长的存活期。当Pod被删除时,临时卷也会被删除,持久卷会保留在磁盘上,对于给Pod中的任意类型的卷,在其中的任何容器重启器件Pod中的数据都不会丢失,在.spec.volumes字段为Pod设置所需的卷类型。

39.解释emptyDir卷类型的特征。

有Pod被分派到某个Node上时,emptyDir卷就会在该节点上创建,并且在Pod运行期间保持存在,emptyDir卷初始状态为空,Pod中的容器各自挂载emptyDir的路径可能不相同,但是这些容器都可以读写emptyDir卷中相同的文件,当Pod从节点上删除时,emptyDir卷中的数据也会被永久删除,容器崩溃不会导致Pod从节点上移除,在容器崩溃期间emptyDir卷中的数据是安全的。

40.解释hostPath卷类型的特征。

hostPath卷能将Pod中的目录挂载到主机节点上的文件系统,数据存储在宿主机本地磁盘,不在集群统一存储,Pod只会固定调度到对应宿主机才能读取数据,到其它节点数据直接丢失,会影响Pod的迁移性。

41.解释PV卷类型的特征。

PersistentVolume持久卷,是集群中的一个存储,属于集群资源,跨节点可用,PV持久卷拥有独立于任何使用PV的Pod的生命周期,用户对PV的请求要使用PVC(持久卷申领)来表达,使用PVC申领会耗用PV资源。

42.什么是PVC,如何使用它。

PersistentVolumeClaim持久化存储声明,用户写PVC声明,写出需要的容量、读写权限、存储类别,K8s帮助匹配空闲PV,删除Pod的话,PVC、PV、数据全部保留。

43.PV有哪几种访问模式,详细说明。

ReadWriteOnce:卷可以被一个节点以读写方式挂载,这个访问模式也允许运行在同一节点上的多个Pod访问卷。

ReadOnlyMany:卷可以被多个节点以只读方式挂载。

ReadWriteMany:卷可以被多个节点以读写方式挂载。

ReadWriteOncePod:卷可以被单个Pod以读写方式挂载,如果想确保整个集群只有一个Pod可以读取或写入该PVC,使用这个模式。

44.解释PV的回收策略。

Retain:删除PVC后,PV依旧存在,状态变为Released,里面数据完全保留,此PV不能被新PVC直接绑定使用。

Delete:删除PVC后,云端存储会被自动删除。

Recycle:删除PVC后,自动执行rm -rf清空数据,然后让PV重新可用,目前此策略已被废弃。

45.如何将特定Pod调度到指定的节点?

1.给节点打一个标签,然后将Pod仅调度到具有该标签的节点上。

2.如果已知节点的特定名称,可以指定将Pod调度到具有特定名称的节点上。

3.节点亲和性,通过节点的某个标签来吸引Pod,可以硬性要求或者偏好要求。

4.对节点加污点,这样就可以保证只能让对对应污点有容忍的Pod才能被调度到该节点。

46.什么是节点的亲和性?

节点亲和性是Pod的一种属性,它使得Pod被吸引到一类特定的节点,有两种规则,required规则为必须满足,不满足不调度,preferred规则尽量满足,不满足的节点也可以调度。

47.什么是污点,它的主要用途是什么?

污点是给节点打上的排斥性标签,作用是排斥普通Pod调度到该节点,只有Pod容忍匹配节点污点,才能正常调度。

更多推荐