Kubernetes探索-Pod面试(补充)

发布于:2024-04-03 ⋅ 阅读:(204) ⋅ 点赞:(0)

针对上篇文章"kubernetes探索-Pod面试"做一点点补充...

1. 简述Pod的删除流程

 

1) kube-apiserver接收到用户的删除指令,默认等待30s(优雅退出时间),随后认为pod已死亡,将其标记为Terminating状态;

 2) kubelet监控到pod标记为Terminating,启动关闭过程:

        ① endpoints-controller从service的endpoints列表中移除与此pod相关的endpoint;

        ② 若该pod定义了停止前的钩子函数,则会在pod内部调用该函数;

        ③ pod内的容器进程被发送TREM信号(kill -14);

        ④ 超过优雅退出时间后,pod内的所有进程会被发送SIGKIll信号(kill -9)

2. Pod一直处于pending状态原因有哪些?如何排查?

## 排查pod执行详情
kubectl describe pod_name

情况1:pod开始创建时,本身会处于pending状态,pod内部可能正在拉取镜像/创建容器;

情况2:调度器调度失败,Scheduer调度器无法为pod分配一个合适的node节点

        1)node节点有cpu,内存压力,导致无节点可调度;

        2)pod定义了资源,而无满足资源的node节点;

        3)node节点上有污点,而pod未定义容忍;

        4)pod定义了亲和性/反亲和性,而没有满足此亲和性/反亲和性的node节点

情况3:pvc,pv无法动态创建

3. Pod的镜像拉取策略有哪几种?

通过'imagePullPolicy'字段配置Pod的镜像拉取策略,可取以下值:

  • IfNotPresent:仅当本地没有对应镜像时,才从目标仓库中拉取镜像。
  • Always:总是重新拉取,即每次创建pod都会重新从镜像仓库拉取一次镜像。
  • Never:永不主动拉取镜像,仅使用本地镜像。

默认的镜像下载策略是:

        当镜像标签是latest时,默认策略是Always;

        当镜像标签是自定义时(也就是标签不是latest),那么默认策略是IfNotPresent。

4.存活探针和就绪探针的属性参数有哪些?

属性名 注释 默认值
initialDelaySeconds 延迟探测秒数,即容器启动多少秒后开始探测 0
periodSeconds 执行探测的频率 10 (≥1)
timeoutSeconds 探测响应超时时间,超过该时间表示探测失败 1(≥1)
filureThreshold 连续探测失败次数等于该值时,视为本次探测失败 3(≥1)
successThreshold 连续探测成功次数等于该值时,视为本次探测成功 1(≥1)

上一篇: kubernetes探索-Pod面试


网站公告

今日签到

点亮在社区的每一天
去签到