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

网站开发工程师薪酬待遇淮北电子商务网站建设

网站开发工程师薪酬待遇,淮北电子商务网站建设,wordpress做网页,网站推广无锡Kubelet运行机制 Kubelet是Kubernetes中的一个重要组件#xff0c;在每个 Node 节点上都会启动 kubelet 服务。 该服务主要用于处理 Master 节点下发到本节点的任务#xff0c;管理 Pod及Pod 中的容器。每个kubelet 进程会在 API Server 上注册节点自身信息#xff0c;定期…Kubelet运行机制 Kubelet是Kubernetes中的一个重要组件在每个 Node 节点上都会启动 kubelet 服务。 该服务主要用于处理 Master 节点下发到本节点的任务管理 Pod及Pod 中的容器。每个kubelet 进程会在 API Server 上注册节点自身信息定期向 Master 节点汇报节点资源的使用情况 并通过cAdvisor 监控容器和节点资源。在本文中我们将分析Kubelet的运行机制。 Kubelet的工作流程 每个节点上的kubelet启动后它的工作流程可以分为以下几个步骤 获取Pod列表Kubeletwatch机制监视会从Master节点获取节点上的Pod列表。Master节点会将Pod列表发送给Kubelet并告诉Kubelet哪些Pod需要在该节点上运行。 创建Pod如果Kubelet发现节点上没有某个Pod的容器在运行它会根据Pod的定义创建容器。Kubelet会根据Pod的定义创建一个Pod Sandbox然后在Pod Sandbox中创建容器。 监控容器状态Kubelet会定期检查容器的状态并将状态报告给Master节点。如果容器出现故障Kubelet会尝试重启容器。如果重启失败Kubelet会将容器标记为失败并将状态报告给Master节点。 清理容器如果Kubelet发现某个容器已经被删除它会将该容器从节点上清理掉。 Kubelet的相关配置 Kubelet的配置文件可以放在多个配置文件中具体看部署方式。可能是/etc/kubernetes/kubelet.conf、/usr/lib/systemd/system/kubelet.service、/var/lib/kubelet/config.yaml。很多默认配置都可以不用修改主要的配置包括以下几个方面 节点名称Kubelet需要知道节点的名称以便向Master节点注册自己。 Pod网络Kubelet需要知道Pod网络的配置以便能够正确地创建Pod Sandbox和容器。 容器运行时Kubelet需要知道容器运行时的一些参数以便能够满足业务需要。 资源限制Kubelet需要知道节点的资源限制以便能够正确地调度Pod与优化相关。 Kubelet 状态更新机制 当 Kubernetes 中 Node 节点出现状态异常的情况下节点上的 Pod 会被重新调度到其他节点上去但是有的时候我们会发现节点 Down 掉以后Pod 并不会立即触发重新调度这实际上就是和 Kubelet 的状态更新机制密切相关的Kubernetes 提供了一些参数配置来触发重新调度到node时间下面我们来分析下 Kubelet 状态更新的基本流程。 默认情况下,正常的行为如下: kubelet 自身会定期更新状态到​ ​apiserver​​更新周期由--node-status-update-frequency参数指定默认值是10sKubernetes Controller Manager定期的检查kubelet状态该参数由–-node-monitor-period参数指定默认值5sKubernetes Controller Manager对kubelet状态更新有一个容忍值如果kubelet在这个容忍值内更新状态那么Kubernetes Controller Manager认为kubelet状态有效。具体为 当 node 失联一段时间后kubernetes 判定 node 为​​notready​​ 状态这段时长通过 ​​–node-monitor-grace-period​​ 参数配置默认为​​40s​​当 node 失联一段时间后kubernetes 判定 node 为​​unhealthy​​ 状态这段时长通过 ​​–node-startup-grace-period​​ 参数配置默认为1m当 node 失联一段时间后kubernetes 开始删除原 node 上的 pod这段时长是通过​​–pod-eviction-timeout​​ 参数配置默认为5m​ Kubernetes Controller Manager和kubelet异步工作这意味着延迟可能包含网络延迟API Server延迟etcd延迟节点负载等引起的延迟所以如果设置--node-status-update-frequency参数为5秒时那么当etcd无法将数据提交到仲裁节点时它可能会在etcd中等待6-7秒甚至更长才能被呈现 失败情况 kubelet将尝试发送nodeStatusUpdateRetry 当前nodeStatusUpdateRetry在kubelet.go.中设置为5次kubelet将使用 tryUpdateNodeStatus方法发送状态.kubelet使用golang的http.Client()方法,但是没指定超时时长因此当在apiserver过载时TCP连接会造成一些问题.因此这里尝试使用nodeStatusUpdateRetry 乘以 --node-status-update-frequency的值设置node状态.在同时Kubernetes Controller Manager每隔--node-monitor-period设置的时间检查nodeStatusUpdateRetry设置的次数经过--node-monitor-grace-period设定的时间将认为node不健康通过在 kube-apiserver组件中设置--default-not-ready-toleration-seconds --default-unreachable-toleration-seconds 这两个默认的容忍参数。Kubernetes 会自动为每个 pod 添加一个默认容忍配置默认容忍限制为60s。在添加这两个参数后需要重新部署所有 Pod 以确保将容忍添加到所有 Pod 中。除了使用kube-apiserver的参数使其对所有 pod 进行全局更改之外你还可以指定为 pod 设置忍驱逐时间。同时Kube-Proxy watch API server一旦pod被删除,那么集群中所有kube-proxy将更新其节点上的iptables规则,移除相应的endpoint这使得请求无法被发送到故障节点的pod 实际应用 默认的配置参数所属组件 参数值组件--node-status-update-frequency10skubelet--node-monitor-period5scontroller manager--node-monitor-grace-period40scontroller manager 快速更新和快速响应 参数值组件--node-status-update-frequency4skubelet--node-monitor-period2scontroller manager--node-monitor-grace-period20scontroller manager 如果--node-status-update-frequency设置为4s默认为10s。 --node-monitor-period设置为2s默认为5s。--node-monitor-grace-period设置20s默认为40s。--default-not-ready-toleration-seconds --default-unreachable-toleration-seconds 设置为30默认为 300 秒。注意这两个值应该是表示秒数的整数。 在这种情况下Pod 将在 50s 后被驱逐因为节点将在 20s 后被视为Down掉了--default-not-ready-toleration-seconds 或者 --default-unreachable-toleration-seconds 在 30s 之后开始删除Pod。但是这种情况会给 etcd 产生很大的开销因为每个节点都会每 2s 更新一次状态。 如果环境有1000个节点那么每分钟将有30000次节点更新操作这可能需要大型 etcd 容器甚至是 etcd 的专用节点。 如果我们计算尝试次数则除法将给出5但实际上每次尝试的 nodeStatusUpdateRetry 尝试将从3到5。 由于所有组件的延迟尝试总次数将在15到25之间变化。 中等更新和平均响应 参数值组件--node-status-update-frequency20skubelet--node-monitor-period5scontroller manager--node-monitor-grace-period2mcontroller manager 我们设置--node-status-update-frequency设置为20s。--node-monitor-grace-period设置为2m并将 --default-not-ready-toleration-seconds 和 --default-unreachable-toleration-seconds设置为60s。这种场景下会 20s 更新一次 node 状态Kubernetes Controller Manager 对 kubelet检测在2分钟内进行 6 * 5 30 次尝试如果没有更新节点状态。1m后它将驱逐所有 pod。那么将在一分钟后驱逐所有pod总共耗时3分钟。 此处情况适用于中等环境,因为1000个节点每分钟需要对etcd进行3000次更新。 低更新和慢响应 参数值组件--node-status-update-frequency1mkubelet--node-monitor-period5scontroller manager--node-monitor-grace-period5mcontroller manager 如果--node-status-update-frequency设置为1m。 --node-monitor-grace-period设置为5m并将 --default-not-ready-toleration-seconds 和 --default-unreachable-toleration-seconds设置为60s。在这种情况下kubelet将在每分钟上报状态5分钟内kubelet没有更新节点状态Kubernetes Controller Manager将节点设置为不健康在一分钟后开始驱逐所有pod总共耗时6分钟。 总结 Kubelet是Kubernetes中的一个重要组件它负责管理节点上的容器和Pod并与Master节点进行通信。Kubelet的工作流程包括获取Pod列表、创建Pod、监控容器状态和清理容器。Kubelet的配置包括节点名称、Pod网络、容器运行时和资源限制。 计算公式 驱逐时间 --node-monitor-grace-period --default-not-ready-toleration-seconds 或 --default-unreachable-toleration-seconds 可以有不同的配置组合满足自己实际的使用情况。 更多关于kubernetes的知识分享请前往博客主页。编写过程中难免出现差错敬请指出
http://www.dnsts.com.cn/news/156619.html

相关文章:

  • 四川建设厅网站招聘东莞设计企业网站的有哪些
  • 正规网站建设网站制作wordpress标题主题
  • 英山县住房和城乡建设局网站wordpress theme free
  • 网站建设情况调查表建设一个网站需要哪些硬件设备
  • 在虚拟主机上建设多个网站做网站的专业叫啥
  • 2022年最火的电商平台杭州网站建设优化案例
  • 网站猜你喜欢代码网页搜索框代码
  • 四川省住房和城乡建设厅官网站网中山网站建设是什么
  • 网站为什么要icp备案在线解压rar网站
  • 网站排名优化培训电话微梦网站建设
  • 官方网站建设需要做哪些东西wordpress 评分
  • 南山电商网站建设做盗版影视网站
  • 黄岛网站建设哪家好网站开发费分摊多少年
  • 怎么做自己的网站卖东西网站计数器代码js
  • 潍坊网站制作苏宁易购如何进行网站的建设和维护
  • 优秀企业网站建设价格网络市场营销
  • 快速建站全流程详细指导手册赣州市网络科技有限公司
  • 泉州关键词网站排名凡科网站登录入
  • 如何快速做单页面网站2016优秀网站设计
  • 合肥网站建设zgkr怎么把网站设置为信任网站
  • 二次元WordPress关键词优化营销
  • 网站分享对联广告专业制作网站公司吗
  • 哪个网站可以做投资回测深圳装修公司排名100强
  • 池州网站制作新乡做网站费用
  • 电商网站平台建设方案wordpress标签链接分类目录
  • 商务网站建设的基本步骤公司做网站需要提供什么条件
  • dw手机网站怎么做外贸网站推广服务
  • 百度官网网站wordpress页面内
  • 网站按钮确定后图片怎么做php商城网站开发实例视频
  • 局门户网站的建设方案网站建设公司简介范文