首页 > 其他分享 >kubelet上报心跳机制

kubelet上报心跳机制

时间:2023-02-03 22:22:54浏览次数:51  
标签:node NodeLease NodeStatus kubelet json 心跳 上报

在k8s v1.13之前,kubelet启动协程定时上报状态。

参数

含义

默认间隔时间

--node-status-update-frequency

上报NodeStatus间隔时间

10s

--node-monitor-grace-period

判定Node是NotReady间隔时间

40s

--pod-eviction-timeout

Node NotReady后驱逐Pod的时间间隔

5m

 

k8s v1.13引入了NodeLease,k8s v1.17 stable。在kube-node-lease namespace下,每个节点都有一个Lease对象。
NodeStatus和NodeLease都记录节点的心跳信号,协同工作逻辑如下:
1. kubelet定期更新自己的lease对象,默认10秒。
2. kubelet定期(默认为10秒)计算一次NodeStatus,独立于上报流程;只有发生有意义的变化或者不上报持续时间超过了参数node-status-update-period(默认5m)时,kubelet才上报NodeStatus。
无论是NodeStatus对象还是NodeLease对象的更新,NodeController都视为kubelet在上报心跳。NodeLease对象比NodeStatus对象小很多,大幅降低了NodeStatus的更新频率,显著降低Etcd存储压力。

 

NodeLease结构体

type Lease struct {
  metav1.TypeMeta `json:",inline"`
  // Standard object's metadata.
  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
  // +optional
  ObjectMeta metav1.ObjectMeta `json:"metadata,omitempty"`

  // Specification of the Lease.
  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  // +optional
  Spec LeaseSpec `json:"spec,omitempty"`
}

type LeaseSpec struct {
  HolderIdentity       string           `json:"holderIdentity"`
  LeaseDurationSeconds int32            `json:"leaseDurationSeconds"`
  AcquireTime          metav1.MicroTime `json:"acquireTime"`
  RenewTime            metav1.MicroTime `json:"renewTime"`
  LeaseTransitions     int32            `json:"leaseTransitions"`
}

 

参考资料

Kubelet 状态更新机制
What is the "kube-node-lease" namespace for?
kubernetes资源管理
Efficient Node Heartbeats

标签:node,NodeLease,NodeStatus,kubelet,json,心跳,上报
From: https://www.cnblogs.com/WJQ2017/p/17090603.html

相关文章

  • kubelet 无法启动排查
    问题描述使用ansible安装Kubernetes,最后出现如所示报错,提示kubelet启动异常TASK[kube-node:轮询等待kubelet启动]***************************************************......
  • kubernetes的Kubelet
    1.kubelet简介在kubernetes集群中,每个Node节点都会启动kubelet进程,用来处理Master节点下发到本节点的任务,管理Pod和其中的容器。kubelet会在APIServer上注册节点信息,定期......
  • 【动画消消乐】HTML+CSS 自定义加载动画:怦然心跳 066
    前言Hello!小伙伴!非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ 自我介绍ଘ(੭ˊᵕˋ)੭昵称:海轰标签:程序猿|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • 获取kubelet管理的容器
    k8s1.15pkg/kubelet/kuberuntime/kuberuntime_container.gogetKubeletContainers方法获取kubelet管理的所有业务容器(true表示包括退出的和死亡的容器,用于GC)补充代码kub......
  • 【晶振】NTP网络校时服务器(卫星时钟)电路里的主心跳
    【晶振】NTP网络校时服务器(卫星时钟)电路里的主心跳【晶振】NTP网络校时服务器(卫星时钟)电路里的主心跳京准电子科技官微——ahjzsz晶振是NTP网络校时服务器(卫星时钟)电路......
  • mac保持SSH长连接配置心跳
    使用SSH进行远程连接的时候,假如终端长时间没有输入交互,终端就会卡死。这是因为SSH默认在长时间无交互情况下会自动断开连接,要想终端不卡死,只要保持SSH连接即可。SSH连接可......
  • react 快速接入 sentry,性能监控与错误上报踩坑日记
    壹❀引本文是我入职第一个月所写,在主导基建组的这段时间也难免会与错误监控和性能监控打交道,因为公司主要考虑接入sentry,所以对于接入sentry的基建任务也提了一些需求,......
  • Kubernetes监控手册05-监控Kubelet
    上一篇我们介绍了如何监控Kube-Proxy,Kube-Proxy的/metrics接口没有认证,相对比较容易,这一篇我们介绍一下Kubelet,Kubelet的监控相比Kube-Proxy增加了认证机制,相对更复杂一些......
  • Kubernetes基础(kube-apiserver?kube-controller-manager?kube-scheduler?kubelet?kube-pro
    一、kube-apiserverAPIServer提供了资源对象的唯一操作入口,其它所有组件都必须通过它提供的API来操作资源数据。只有APIServer会与etcd进行通信,其它模块都必须通......
  • 【数据挖掘】心跳信号分类预测My_Task5 模型融合 笔记
    5.2内容介绍​​https://mlwave.com/kaggle-ensembling-guide/​​https://github.com/MLWave/Kaggle-Ensemble-Guide模型融合是比赛后期一个1重要的环节,大体来说有如下......