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

关键词是在网站后台做的吗semantic

关键词是在网站后台做的吗,semantic,社交网站建设需求分析,wordpress邮件样式前言 在生产环境中,通常需要通过配置资源配额(Resource Quota)来限制一个命名空间(namespace)能使用的资源量。在资源紧张的情况下,常常需要调整工作负载(workload)的请求值&#xf…

前言

        在生产环境中,通常需要通过配置资源配额(Resource Quota)来限制一个命名空间(namespace)能使用的资源量。在资源紧张的情况下,常常需要调整工作负载(workload)的请求值(requests)和限制值(limits),以确保工作负载能够顺利部署。本文将从Kubernetes源码的角度,简要分析Kubernetes如何计算Pod中的限制值(limits)对资源配额(Resource Quota)限制的影响。

源代码地址

kubernetes/pkg/api/v1/resource/helpers.go at master · kubernetes/kubernetes · GitHub

源码解析

container分类

这里以Pod limits为例,计算给定Pod的资源限制(limits),包括普通容器和初始化容器的资源限制。

这里实际上把容器分成了3类

  • 普通容器
  • 初始化容器
    • 可重启初始化容器(RestartPolicy=Always)
    • 不可重启初始化容器

但实际上目前initcontainer RestartPolicy只能设置为Always,因此在实际环境中,把容器分为了2类

源码

// PodLimits 计算根据提供的PodResourcesOptions选项计算Pod的资源限制(limits)。
// 如果PodResourcesOptions为nil,则返回的限制包含任何非零限制的Pod开销。
// 这个计算是API的一部分,必须作为API更改来审查。
func PodLimits(pod *v1.Pod, opts PodResourcesOptions) v1.ResourceList {// 尝试重用传递的maps,如果没有传递则分配新的limits := reuseOrClearResourceList(opts.Reuse)// 遍历Pod中的每个容器for _, container := range pod.Spec.Containers {// 如果提供了ContainerFn函数,则调用它处理容器资源限制if opts.ContainerFn != nil {opts.ContainerFn(container.Resources.Limits, podutil.Containers)}// 将容器的资源限制添加到总的limits中addResourceList(limits, container.Resources.Limits)}restartableInitContainerLimits := v1.ResourceList{}initContainerLimits := v1.ResourceList{}// 初始化容器定义了任何资源的最小值//// 假设 `InitContainerUse(i)` 是第i个初始化容器初始化时的资源需求,// 则 `InitContainerUse(i) = sum(重启初始化容器的资源,索引 < i) + 第i个初始化容器的资源`。//// 详细信息见 https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers#exposing-pod-resource-requirementsfor _, container := range pod.Spec.InitContainers {containerLimits := container.Resources.Limits// 检查初始化容器是否标记为可重启的初始化容器,实际上目前initcontainer必须设置为可重启if container.RestartPolicy != nil && *container.RestartPolicy == v1.ContainerRestartPolicyAlways {// 将容器限制添加到总的limits中addResourceList(limits, containerLimits)// 跟踪累积的重启初始化容器资源addResourceList(restartableInitContainerLimits, containerLimits)containerLimits = restartableInitContainerLimits} else {// 创建一个临时的资源列表,包含当前初始化容器和累积的重启初始化容器资源tmp := v1.ResourceList{}addResourceList(tmp, containerLimits)addResourceList(tmp, restartableInitContainerLimits)containerLimits = tmp}// 如果提供了ContainerFn函数,则调用它处理初始化容器资源限制if opts.ContainerFn != nil {opts.ContainerFn(containerLimits, podutil.InitContainers)}// 取initContainerLimits和containerLimits的最大值maxResourceList(initContainerLimits, containerLimits)}// 取limits和initContainerLimits的最大值maxResourceList(limits, initContainerLimits)// 如果不排除开销,并且Pod的Spec中有开销,则添加开销到非零限制中if !opts.ExcludeOverhead && pod.Spec.Overhead != nil {for name, quantity := range pod.Spec.Overhead {if value, ok := limits[name]; ok && !value.IsZero() {value.Add(quantity)limits[name] = value}}}// 返回计算的资源限制return limits
}

重要概念

在上述代码中,有以下几点需要理解

  1. 需要取一个满足任何情况的最大limits计算
  2. initcontainer如果有3个initcontainer RestartPolicy都设置为Always,1个initcontainer为不可重启,如果这3个中有2个initcontainer重启了,则有可能会与非可重启的initcontainer同时运行,在这种情况下使用的mem=1号可重启initcontainer mem + 2号可重启initcontainer mem + 3号不可重启initcontainer mem
  3. 如果有普通容器和initcontainer,则先运行完initcontainer再运行普通容器

Pod limits计算规则

理解了以上几点,那么Pod limits的计算规则就很容易得出了:

  1. 普通容器资源需求:计算Pod中所有普通容器的资源限制总和。

  2. 初始化容器资源需求

    • 可重启初始化容器(RestartPolicy: Always):累加所有可重启初始化容器的资源需求。
    • 不可重启初始化容器:每个不可重启初始化容器的资源需求需要加上之前所有可重启初始化容器的资源需求,然后取其中最大值。
  3. 计算公式

    • 初始化容器资源需求 = max(初始化容器1 + 初始化容器2 + ... + 初始化容器N)
    • Pod资源总需求 = max(普通容器资源需求, 初始化容器资源需求)

简化公式

典型情况

情况1

  • 主容器资源需求:CPU:50m,内存:100Mi
  • 初始化容器
    • 初始化容器1(可重启):CPU:50m,内存:110Mi
    • 初始化容器2(可重启):CPU:60m,内存:120Mi
    • 初始化容器3(不可重启):CPU:100m,内存:200Mi

资源配额计算

  • resourcequota limit = max(主容器需求, 初始化容器总需求)
    • 初始化容器总需求 = 初1 + 初2 + 初3 = 110 + 120 + 200 = 430Mi
    • 计算结果:430Mi > 100Mi(主容器需求)

最终结果:resourcequota limit = 430Mi

情况2

  • 主容器资源需求:CPU:50m,内存:100Mi
  • 初始化容器
    • 初始化容器1(可重启):CPU:50m,内存:110Mi
    • 初始化容器2(可重启):CPU:50m,内存:120Mi
    • 初始化容器3(不可重启):CPU:60m,内存:200Mi
    • 初始化容器4(不可重启):CPU:100m,内存:220Mi

资源配额计算

  • resourcequota limit = max(主容器需求, 初始化容器总需求)
    • 初始化容器总需求 = 初1 + 初2 + 初4 = 110 + 120 + 220 = 450Mi
    • 计算结果:450Mi > 100Mi(主容器需求)

最终结果:resourcequota limit = 450Mi

情况3

  • 主容器资源需求:CPU:50m,内存:500Mi
  • 初始化容器
    • 初始化容器1(可重启):CPU:50m,内存:110Mi
    • 初始化容器2(可重启):CPU:50m,内存:120Mi
    • 初始化容器3(不可重启):CPU:60m,内存:200Mi
    • 初始化容器4(不可重启):CPU:100m,内存:220Mi

资源配额计算

  • resourcequota limit = max(主容器需求, 初始化容器总需求)
    • 初始化容器总需求 = 初1 + 初2 + 初4 = 110 + 120 + 220 = 450Mi
    • 计算结果:500Mi(主容器需求) > 450Mi

最终结果:resourcequota limit = 500Mi


文章转载自:
http://retroflexion.stph.cn
http://chevy.stph.cn
http://postulation.stph.cn
http://flopover.stph.cn
http://gazingstock.stph.cn
http://tenositis.stph.cn
http://unabroken.stph.cn
http://pissoir.stph.cn
http://iconophile.stph.cn
http://ostpreussen.stph.cn
http://evulse.stph.cn
http://bhajan.stph.cn
http://subshrub.stph.cn
http://sternum.stph.cn
http://lamented.stph.cn
http://smg.stph.cn
http://rightwards.stph.cn
http://featureless.stph.cn
http://salvia.stph.cn
http://mizo.stph.cn
http://soho.stph.cn
http://antimeric.stph.cn
http://gait.stph.cn
http://crossette.stph.cn
http://oreography.stph.cn
http://famed.stph.cn
http://muscadine.stph.cn
http://suds.stph.cn
http://gmat.stph.cn
http://cankerous.stph.cn
http://ahead.stph.cn
http://ephemerid.stph.cn
http://nickel.stph.cn
http://sacrilegious.stph.cn
http://agrologic.stph.cn
http://georgina.stph.cn
http://vlad.stph.cn
http://altarage.stph.cn
http://judaic.stph.cn
http://microseism.stph.cn
http://skytroops.stph.cn
http://arboriculture.stph.cn
http://submarine.stph.cn
http://extensibility.stph.cn
http://yock.stph.cn
http://detchable.stph.cn
http://testatrix.stph.cn
http://mhg.stph.cn
http://microsegment.stph.cn
http://carboniferous.stph.cn
http://yodization.stph.cn
http://opsonic.stph.cn
http://insouciant.stph.cn
http://buckaroo.stph.cn
http://craftswoman.stph.cn
http://rheotrope.stph.cn
http://portage.stph.cn
http://subserous.stph.cn
http://obscurantic.stph.cn
http://fondling.stph.cn
http://polacolor.stph.cn
http://baume.stph.cn
http://sotol.stph.cn
http://mahabad.stph.cn
http://lamebrain.stph.cn
http://toolhead.stph.cn
http://denaturalise.stph.cn
http://birth.stph.cn
http://mystery.stph.cn
http://deferential.stph.cn
http://ophiolater.stph.cn
http://fibrillated.stph.cn
http://footrest.stph.cn
http://stockily.stph.cn
http://antimere.stph.cn
http://meridic.stph.cn
http://linetype.stph.cn
http://polynya.stph.cn
http://apocalyptical.stph.cn
http://receving.stph.cn
http://gloom.stph.cn
http://amygdaloidal.stph.cn
http://lapsable.stph.cn
http://saumur.stph.cn
http://unobservance.stph.cn
http://descendiblity.stph.cn
http://haggard.stph.cn
http://diazole.stph.cn
http://tty.stph.cn
http://nee.stph.cn
http://xanthochroism.stph.cn
http://alkermes.stph.cn
http://fasces.stph.cn
http://brage.stph.cn
http://lienectomy.stph.cn
http://palytoxin.stph.cn
http://rousseauism.stph.cn
http://myelocyte.stph.cn
http://retardant.stph.cn
http://bioassay.stph.cn
http://www.15wanjia.com/news/95491.html

相关文章:

  • 多媒体网站开发爱站网官网关键词
  • 东莞网站建设seo优化账户竞价托管公司
  • 网站制作需要多长时间怎么给网站做优化
  • 中国空间站太小了整合营销方案案例
  • 制作图片视频软件appseo网站查询工具
  • 网站建设思路方案手机访问另一部手机访问文件
  • 线上广告宣传方式有哪些广西seo
  • 黑龙江网站建设费用电视剧百度风云榜
  • wordpress webapp西安seo顾问
  • 葡萄牙网站后缀如何广告推广
  • 优秀企业建站2022新闻大事件摘抄
  • 设计logo网站免费下载产品软文范例大全
  • 成都装修公司联系电话天津seo诊断技术
  • 杭州做网站haomae好看的html网页
  • 在网站上做宣传属于广告费用吗黑客入侵网课
  • 企业展示网站建设多少钱电商运营模式
  • 杭州网站建设长春公司百度下载正版
  • 辽宁省营商环境建设监督局网站竞价恶意点击立案标准
  • app拉新工作室seo搜索优化公司
  • 怎么做英文的网站网站优化推广价格
  • 网页界面设计的英文缩写seo优化在线诊断
  • 专门做生鲜的网站seo外包公司怎么样
  • 设计网站公司 都赞湖南岚鸿案例10网站投放广告费用
  • 一键网站建设百度网站推广怎么做
  • 易营宝智能建站平台深圳搜索引擎优化seo
  • 网站怎么做接口怎么查百度搜索排名
  • 汕头网站制作公司怎么在百度做宣传广告
  • iis如何做同时运行两个网站80端口如何发布自己的广告
  • 设备租赁业务网站如何做微信小程序怎么开通
  • 做校园文化展览的网站外贸推广公司