当前位置: 首页 > news >正文

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

目录

 

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:

  - key: node.kubernetes.io/not-ready

    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 面试题汇总

 

http://www.lryc.cn/news/443509.html

相关文章:

  • 【Web】PolarCTF2024秋季个人挑战赛wp
  • 职业技能大赛-自动化测试笔记分享-2
  • LeetCode讲解篇之1343. 大小为 K 且平均值大于等于阈值的子数组数目
  • 电子元件制造5G智能工厂物联数字孪生平台,推进制造业数字化转型
  • 【成品论文】2024年华为杯研赛E题25页高质量成品论文(后续会更新
  • 【后端】【语言】【python】python常见操作
  • 二叉树的链式结构和递归程序的递归流程图
  • 研究生如何利用 ChatGPT 帮助开展日常科研工作?
  • 【LLM学习之路】9月16日 第六天
  • Qt_窗口界面QMainWindow的介绍
  • 华为云centos7.9按装ambari 2.7.5 hostname 踩坑记录
  • 重生之我们在ES顶端相遇第15 章 - ES 的心脏-倒排索引
  • 金刚石切削工具学习笔记分享
  • 【文献阅读】基于原型的自适应方法增强未见到的构音障碍者的语音识别
  • Kafka-Go学习
  • Nginx反向代理出现502 Bad Gateway问题的解决方案
  • 通信工程学习:什么是VLAN虚拟局域网
  • python qt5 常用
  • 漏洞复现_永恒之蓝
  • PyCharm的使用
  • 浅谈C#之AutoResetEvent和ManualResetEvent
  • 【网络安全 | 靶机搭建】修改镜像源、更新软件源、安装git、更改python版本等
  • VuePress搭建文档网站/个人博客(详细配置)主题配置
  • Go语言笔记
  • java缓存介绍
  • react中diff的选择性子树渲染
  • Git clone远程仓库没有其他分支的问题
  • 山东潍坊戴尔存储服务器维修 md3800f raid恢复
  • Hive企业级调优[6]——HQL语法优化之任务并行度
  • Excel 冻结多行多列