关注分享主机优惠活动
国内外VPS云服务器

K8S如何限制资源使用(k8s io limit)

摘要:本文介绍了几种限制资源使用的方法。 方法2的例子有它的位置。 虽然限制方法 1 很好,但它不是必需的,很容易忘记,而且占用太多资源。 因此,设置全局资源限制是必要的。 ,以防止这种情况发生。

本文介绍了K8S中限制资源使用的几种方法。

资源类型

K8S 允许限制两种类型的资源:CPU 和内存。

CPU单元如下。

一个正实数,表示分配的 CPU 数量。 也可以使用小数点。 例如,0.5代表0.5。 CPU指的是CPU的一半时间。 2代表两个CPU。

正整数m也代表1000m=1,所以500m就是0.5对应 。

内存单位:

正整数,直接数字代表字节

k Kki、千字节

mMmi、兆字节

gGGi、千兆字节

t >、TTi、太字节

pP Pi ,PB

方法一:在 pod 容器规范中设置资源限制

在 K8S 中,资源设置适用于 Pod 内的容器。 主要有两大类。 Limit上限控制和require下限控制。 它的位置是:

spec.containers[].resources.limits.cpu

spec.containers[].resources.limits.memory

spec.containers[].resources.requests.cpu

spec.containers[].resources.requests.memory

示例:

apiVersion: v1kind: Podmetadata: name:frontendspec:containers: - name: .    .. 图片:... 资源: 请求:内存:“64Mi” cpu:“250m” 限制:内存:“128Mi” cpu:“500m”

方法二:命名空间限制

虽然方法一比较好,但是不是必需的,而且很容易忘记设置Limits/Requests,导致过度使用主机资源。 。 ,因此,为了防止这种情况发生,需要设置全局资源限制。 K8S 通过在命名空间中设置LimitRange来实现此目标。

设置默认请求/限制

默认请求/limit 而Pod规范中没有设置request/limit,这个设置会限制资源的无限制使用,有效避免使用。

设置位于此处:

spec.limits[].default.cpu,默认限制

spec.limits[].default.memory,同上

spec.limits[].defaultRequest.cpu,默认请求

spec.limits[].defaultRequest.memory,同上

示例:

apiVersion: v1kind: LimitRangemetadata : 名称: 规格: 限制: - 默认: 内存: 512Mi cpu: 1 默认请求: 内存: 256Mi cpu: 0.5 类型: 容器

配置请求 / 限制约束

K8S 还允许您对请求/限制设置以下限制:

针对特定资源的请求的约束是>=特定值

针对特定资源的限制必须是 ><=特定值

这样会随机设置pod规范中的limit,可以有效避免资源耗尽的情况请求。 是随机设置的,这会导致 Pod 无法获得足够的资源。 情况。

设置位于此处:

spec.limits[].max.cpulimit是必需的 <= value

spec.limits[].max.memory,与上面相同

spec.limits[]。分钟。 CPU请求必须是>=特定值

spec.limits[].min.memory,同上

示例:

apiVersion: v1kind: LimitRangemetadata: name: spec:limits: [ k4] 最大:内存:1Gi cpu:800m 最小:内存:500Mi cpu:200m 类型:容器

参考

管理容器的计算资源

配置默认命名空间的内存请求和限制

配置命名空间的默认 CPU 请求和限制

配置命名空间的最小和最大内存约束

配置最小和最大内存约束最大 CPU 限制

未经允许不得转载:主机频道 » K8S如何限制资源使用(k8s io limit)

评论 抢沙发

评论前必须登录!