攻城狮鼓励师 2022-05-07 09:22 采纳率: 100%
浏览 153
已结题

k8s 监听节点宕机的时间设置

环境: 1个master , 2个node,
操作:master 通过 "kubectl sacle --replicas=10 deployment/mynginx-dep" 命令创建了10pod。我将其中一个node节点关机, master 过了很久很久才在另外一个node中创建新的pod(感觉差不多有67分钟)。 我想问下, 如何设置master发现node节点宕机,然后重新再另外一个node上拉起 pod 的时间?(不是配置原因, 三台都是4核8G的)。

不知道我有没有描述清楚,我觉得67分钟太久了, 想设置短一些,因为再学习测试, 等待的时间太久了。有没有清楚的, 麻烦告知一下, 谢谢。

  • 写回答

2条回答 默认 最新

  • hyh123a 全栈领域新星创作者 2022-05-07 10:08
    关注

    我觉得可能不是配置的问题,可能是node节点数目或者node服务器本身资源的问题。
    一般按照官方的说法,
    最基本的k8s集群需要三台服务器,1个master 2个node
    如果你一个node宕机了,另外只剩下一个master或者node可能达不到k8s的默认配置要求,所以导致会有点慢。

    你可以这样操作试下:
    1、再加一个node节点,这样就有1master+3node
    2、宕机其中一个node节点,查看其中的被关闭的node节点上的pod数目,在其他的node节点上创建出来大概有多长时间,理论上基本都是几分钟就可以了。
    我在之前的一个集群环境中(大概6个node节点)测试过这种情况,一个node宕机,其他的pod资源自动在其他的node上创建。

    另外,你需要先确保正常环境下一个pod重新创建拉取需要多长时间,
    (比如网络问题:镜像的拉取和其他配置),确保正常大概是多长时间,这样做个对比比较。
    如果你的deployment比较耗资源,可以用简单的nginx或者busybox来测试,

    至于Node宕机时间的设置
    默认一般是300s,如果想更短,
    可以自行设置,
    这个现象与 Kubelet 的状态更新机制密切相关,下面我们来分析下 Kubelet 状态更新的基本流程。

    • 1、kubelet

    kubelet 自身会定期更新状态到 apiserver,通过参数 --node-status-update-frequency 配置上报频率,默认 10s 上报一次。

    • 2、kube-controller-manager

    kube-controller-manager 会定时去检查 kubelet 的状态,可通过 --node-monitor-period 自定义这个时间 ,默认是 5s。
    当 node 失联一段时间后,kubernetes 判定 node 为 notready 状态,这段时长可通过 --node-monitor-grace-period 参数配置,默认 40s。
    当 node 状态为 notready 一段时间后,kubernetes 判定 node 为 unhealthy 状态,这段时长可通过 --node-startup-grace-period 参数配置,默认 1m0s。
    当 node 状态为 unhealthy 一段时间后,kubernetes 开始删除原 node 上的 Pod,这段时长可通过 --pod-eviction-timeout 参数配置,默认 5m0s。

    具体设置参数参考:

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • 吕布辕门 后端领域新星创作者 2022-05-07 10:02
    关注

    通过配置如下几个属性,默认情况是6分钟。不清楚的可以再问我额,如有帮助,请采纳!
    node-monitor-period
    节点控制器(node controller) 检查每个节点的间隔,默认5秒。
    node-monitor-grace-period
    节点控制器判断节点故障的时间窗口, 默认40秒。即40 秒没有收到节点消息则判断节点为故障。
    pod-eviction-timeout
    当节点故障时,kubelet允许pod在此故障节点的保留时间,默认300秒。即当节点故障5分钟后,kubelet开始在其他可用节点重建pod。

    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月15日
  • 已采纳回答 5月7日
  • 赞助了问题酬金5元 5月7日
  • 创建了问题 5月7日

悬赏问题

  • ¥15 设计程序,利用函数getCharacterCnt,实现求解出str所指字符串中指定字符的个数,并返回此值。
  • ¥15 设计程序,实现管理30个学生5门课程的成绩,功能模块要求如下。
  • ¥15 B660主板安装xp系统老是出现错误怎么办
  • ¥15 定义过的变量报错未定义
  • ¥15 如何在EXCEL某单元格中查找是否存在另一列中的内容。
  • ¥50 非对称加密(相关搜索:密码学)
  • ¥15 关于非编程寻迹小车的分析
  • ¥15 java导出EXCEL这里已经执行成功了,但是流浪器没有下载
  • ¥15 帮我把代码改的能正常运行就行
  • ¥50 有限元修正、模型修正、最小二乘法,详细步骤