【Kubernetes】常见面试题汇总(三十)

目录

[82. Worker 节点宕机,简述 Pods 驱逐流程。](#82. Worker 节点宕机,简述 Pods 驱逐流程。)

特别说明:

题目 1-68 属于【Kubernetes】的常规概念题,即 " 汇总(一)~(二十二)" 。

题目 69-113 属于【Kubernetes】的生产应用题。


82. Worker 节点宕机,简述 Pods 驱逐流程。

(1)节点宕机的概述:

在 Kubernetes 集群中,当节点由于某些原因(网络、宕机等)不能正常工作时会被认定为不可用状态(Unknown 或者 False 状态),当时间超过了 pod-eviction-timeout 值时,那么节点上的所有 Pod 都会被节点控制器计划删除。

(2)Kubernetes 集群中有一个节点生命周期控制器:node lifecycle_controller.go。

  • 它会与每一个节点上的 kubelet 进行通信,以收集各个节点已经节点上容器的相关状态信息。

  • 当超出一定时间后不能与 kubelet 通信,那么就会标记该节点为 Unknown 状态。并且节点生命周期控制器会自动创建代表状况的污点,用于防止调度器调度 pod 到该节点。

(3)那么 Unknown 状态的节点上已经运行的 pod 会怎么处理呢?

  • 节点上的所有 Pod 都会被污点管理器(taint_manager.go) 计划删除。而在节点被认定为不可用状态到删除节点上的 Pod 之间是有一段时间的,这段时间被称为容忍度

  • 你可以通过下面的方式来配置容忍度的时间长短:

tolerations:

operator: Exists

effect: NoExecute

tolerationSeconds:180

  • key:node.kubernetes.io/unreachable

operator: Exists

effect: NoExecute

tolerationSeconds:180

  • 如果在不配置的情况下,Kubernetes 会自动给 Pod 添加一个 key 为 node.kubernetes.io/not-ready 的容忍度,并配置 tolerationSeconds=300。同样 Kubernetes 会给 Pod 添加一个 key 为 node.kubernetes.io/unreachable 的容忍度,并配置 tolerationSeconds=300。

(4)当到了删除 Pod 时,污点管理器会创建污点标记事件,然后驱逐 pod 。

- 这里需要注意的是由于已经不能与 kubelet 通信,所以该节点上的 Pod 在管理后台看到的是处于灰色标记,但是此时如果去获取 pod 的状态其实还是处于 Running 状态。

  • 每种类型的资源都有相应的资源控制器(Controller),例如:deployment_controller.go、stateful set control.g0。每种控制器都在监听资源变化,从而做出相应的动作执行。

- deployment 控制器 在监听到 Pod 被驱逐后会创建一个新的 Pod 出来,但是Statefulset 控制器并不会创建出新的 Pod,原因是因为它可能会违反 Statefulset 固有的至多一个的语义,可能出现具有相同身份的多个成员这将可能是灾难性的,并且可能导致数据丢失。


"【Kubernetes】常见面试题汇总" 系列文章,可点击链接查看专栏详情:K8s 面试题汇总

相关推荐
会飞的土拨鼠呀1 小时前
Docker 部署开源蜜罐Cowrie
docker·容器·开源
怪我冷i1 小时前
win11使用minikube搭建K8S集群基于podman desktop( Fedora Linux 43)
linux·kubernetes·ai编程·ai写作·podman
我是谁??1 小时前
Rocky9.2离线安装docker和NVIDIA Container Toolkit训练环境搭建
运维·docker·容器
无心水2 小时前
【神经风格迁移:工程化】27、神经风格迁移全栈进阶实战:Docker容器化与K8s部署,从单机到云原生
docker·云原生·架构·神经风格迁移·docker容器化·ai部署·vgg算法
victory04312 小时前
K8S 从Harbor当中拉取镜像 连接方法
云原生·容器·kubernetes
陈陈CHENCHEN2 小时前
【Kubernetes】K8s 1.35 配置 Docker 作为容器运行时
docker·kubernetes
勇气要爆发3 小时前
Kubernetes (K8S):云时代的“超级舵手”
云原生·容器·kubernetes
杜子不疼.3 小时前
Spring Cloud Alibaba 微服务架构:注册中心 + 配置中心搭建
微服务·云原生·架构
java_logo3 小时前
MinerU Docker 部署指南:PDF 结构化解析服务实践
docker·容器·pdf·mineru·mineru部署·mineru部署文档·mineru部署教程
大新新大浩浩3 小时前
ubuntu2204 + k8s 1.32.5 +GPU-Operator 24.9.2搭建GPU-k8s平台
云原生·容器·kubernetes