<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p> 节点是 Kubernetes 的核心组件之一,其生命周期可以简要概括为:注册、运行、下线。本文将简要介绍 生命周期中发生的关键事件。</p>
讯享网
节点注册
每个 节点都需要运行 , 启动后会向 发起节点的注册请求,即创建一个新的 资源对象。
配置文件中的 (或命令行参数 )的值默认为 true,用来控制是否自动注册节点。如果你希望手动管理节点的注册行为,可以将此项设置为 false。
节点的名称 由以下因素决定:
- 如果配置了 cloud provider,则由云供应商提供名称。
- 否则使用本机的 ,而 也可以通过 的配置项 覆盖掉。
注册节点实质上是创建了一个新的 资源对象,此时 便会收集有关节点的状态信息一并提交。该接口也可以重复提交,反复注册并不会有什么影响。
节点心跳机制
节点的心跳机制包括两部分:节点 状态信息更新,以及节点对应的 对象更新。
配置文件中的 (或命令行参数 )默认为 10 秒钟。这意味着当节点状态发生改变时,或者达到了 10 秒钟,kubelet 会向 kube-apiserver 发起请求,以更新节点的 状态信息。

每个节点都会在 这个命名空间中维护一个同名的 对象,更新频率为 配置文件中的 (默认 40 秒)* 0.25,即 10 秒钟。
节点健康监控
中的 (准确说是 )负责监控节点的健康情况。如果一切正常,那自然万事大吉。
但是如果节点出现网络中断或者宕机等情况时, 便会发现节点的心跳信息长时间未更新,一旦超过 的配置项 设置的时长(默认 40 秒,在未来的 v1.32 版将会变更为 50 秒), 会将该节点的状态设置为 ,并给节点打上 污点,避免新的 pod 被调度。随后再等待 5 分钟,如果节点仍未恢复心跳,则开始向 kube-apiserver 发起请求,驱逐节点上的 pod 等资源。
节点的正常下线也非常类似,标记污点、重新调度 pod、下线节点。
(我是凌虚,关注我,无广告,专注技术,不煽动情绪,欢迎与我交流)
参考资料:
- https://kubernetes.io/docs/concepts/architecture/nodes/
- https://kubernetes.io/docs/reference/node/node-status/
- https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/
- https://github.com/kubernetes/kubernetes/pull/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/177185.html