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

动态网站设计与制作毕业论文seo推广软件代理

动态网站设计与制作毕业论文,seo推广软件代理,微信小程序公司,域名服务器地址k8s kubelet 状态更新机制 场景: 当 Kubernetes 中 Node 节点出现状态异常的情况下,节点上的 Pod 会被重新调度到其他节点上去,但是有的时候我们会发现节点 Down 掉以后,Pod 并不会立即触发重新调度,这实际上就是和 K…

k8s kubelet 状态更新机制

场景:

当 Kubernetes 中 Node 节点出现状态异常的情况下,节点上的 Pod 会被重新调度到其他节点上去,但是有的时候我们会发现节点 Down 掉以后,Pod 并不会立即触发重新调度,这实际上就是和 Kubelet 的状态更新机制密切相关的,Kubernetes 提供了一些参数配置来触发重新调度的时间

kubelet 状态更新的基本流程:

  • 1、kubelet 自身会定期更新状态到 apiserver,通过参数–node-status-update-frequency指定上报频率,默认是 10s 上报一次。
  • 2、kube-controller-manager 会每隔–node-monitor-period时间去检查 kubelet 的状态,默认是 5s。
  • 3、当 node 失联一段时间后,kubernetes 判定 node 为 notready 状态,这段时长通过–node-monitor-grace-period参数配置,默认 40s。
  • 4、当 node 失联一段时间后,kubernetes 判定 node 为 unhealthy 状态,这段时长通过–node-startup-grace-period参数配置,默认 1m0s。
  • 5、当 node 失联一段时间后,kubernetes 开始删除原 node 上的 pod,这段时长是通过–pod-eviction-timeout参数配置,默认 5m0s。

kube-controller-manager 和 kubelet 是异步工作的,这意味着延迟可能包括任何的网络延迟、apiserver 的延迟、etcd 延迟,一个节点上的负载引起的延迟等等。因此,如果–node-status-update-frequency设置为 5s,那么实际上 etcd 中的数据变化会需要 6-7s,甚至更长时间。

注意:

  • kubelet 在更新状态失败时,会进行nodeStatusUpdateRetry次重试,默认为 5 次。

  • kubelet 会在函数tryUpdateNodeStatus中尝试进行状态更新。Kubelet 使用了 Golang 中的http.Client()方法,但是没有指定超时时间,因此,如果 API Server 过载时,当建立 TCP 连接时可能会出现一些故障。

  • 因此,在nodeStatusUpdateRetry * --node-status-update-frequency时间后才会更新一次节点状态。

  • 同时,Kubernetes 的 controller manager 将尝试每–node-monitor-period时间周期内检查nodeStatusUpdateRetry次。在–node-monitor-grace-period之后,会认为节点 unhealthy,然后会在–pod-eviction-timeout后删除 Pod。

  • kube proxy 有一个 watcher API,一旦 Pod 被驱逐了,kube proxy 将会通知更新节点的 iptables 规则,将 Pod 从 Service 的 Endpoints 中移除,这样就不会访问到来自故障节点的 Pod 了。

如何配置:

对于这些参数的配置,需要根据不通的集群规模场景来进行配置。

社区默认的配置:

  • –node-status-update-frequency 10s
  • –node-monitor-period 5s
  • –node-monitor-grace-period 40s
  • –pod-eviction-timeout 5m

快速更新和快速响应:

  • –node-status-update-frequency 4s
  • –node-monitor-period 2s
  • –node-monitor-grace-period 20s
  • –pod-eviction-timeout 30s

在这种情况下,Pod 将在 50s 被驱逐,因为该节点在 20s 后被视为 Down 掉了,–pod-eviction-timeout在 30s 之后发生,但是,这种情况会给 etcd 产生很大的开销,因为每个节点都会尝试每 2s 更新一次状态。

如果环境有 1000 个节点,那么每分钟将有 15000 次节点更新操作,这可能需要大型 etcd 容器甚至是 etcd 的专用节点。

如果我们计算尝试次数,则除法将给出 5,但实际上每次尝试的 nodeStatusUpdateRetry 尝试将从 3 到 5。 由于所有组件的延迟,尝试总次数将在 15 到 25 之间变化。

中等更新和平均响应:

  • –node-status-update-frequency 20s
  • –node-monitor-period 5s
  • –node-monitor-grace-period 2m
  • –pod-eviction-timeout 1m

这种场景下会 20s 更新一次 node 状态,controller manager 认为 node 状态不正常之前,会有 2m60/205=30 次的 node 状态更新,Node 状态为 down 之后 1m,就会触发驱逐操作。

如果有 1000 个节点,1 分钟之内就会有 60s/20s*1000=3000 次的节点状态更新操作。

低更新和慢响应:

  • –node-status-update-frequency 1m
  • –node-monitor-period 5s
  • –node-monitor-grace-period 5m
  • –pod-eviction-timeout 1m

Kubelet 将会 1m 更新一次节点的状态,在认为不健康之后会有 5m/1m*5=25 次重试更新的机会。Node 为不健康的时候,1m 之后 pod 开始被驱逐。

更多细节参考官方文档:

https://github.com/kubernetes-sigs/kubespray/blob/master/docs/kubernetes-reliability.md

http://www.bjxfkj.com.cn/article/106079.html

相关文章:

  • wordpress企业网站建设黑帽seo优化
  • 怎么用java 做网站网游推广
  • 在哪做网站不要钱长春seo
  • 国内做国外代购在哪个网站好seo关键词优化软件
  • 北京专业网站建设超级外链在线发布
  • 网站动画广告条怎么做的百度纯净版首页入口
  • 福州网站建设网络公司婚恋网站排名前10
  • 自学做网站需要学会哪些搜索引擎优化课程
  • 个人网站主页建设教程永久免费linux服务器
  • 深圳网站建设加盟东莞网络营销销售
  • 沈阳市建设工程质量监督局网站aso关键词优化计划
  • 网站建设怎么申请域名百度搜索官网
  • 阿里云创建网站营销培训课程有哪些
  • 网站制作流程分为哪七步网站推广宣传语
  • 安庆市大观区城乡建设局网站朋友圈广告推广平台
  • 网站开发实用技术相关论文脚上起小水泡还很痒是怎么回事
  • 烟台做网站核心关键词
  • 铜仁市建设委员会网站互联网销售包括哪些
  • ks3c ks4c做网站5118和百度指数
  • 漫画驿站网页设计图纸尺寸大小电工培训课程
  • 做一个基础的企业网站多少钱哪里有做网络推广的
  • 武汉网站建设优化seo指导
  • 常熟网站制作南京seo按天计费
  • 石狮市住房和城乡建设局网站游戏推广员每天做什么
  • 网站缓存设置怎么做福州短视频seo机会
  • 蓝色织梦cms企业网站模板全站源码百度权重3的网站值多少
  • 学做日本菜的网站班级优化大师简介
  • 多合一建网站电商怎么注册开店
  • 网站建设策划案在线crm软件
  • 谁做的四虎网站是多少网站seo源码