资源限制插件
插件详情
资源限制插件的代码详情如下:
#运维插件的定义
#假设运维插件的 id 和 name 都是 res-limit
# patch 类型的插件,作用对象类型 Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{.name}}
namespace: {{.namespace}}
labels:
coding.oam.trait/res-limit: "true"
spec:
template:
spec:
containers:
- name: {{.name}}
resources:
limits:
cpu: {{.cpu_limit}}m
memory: {{.mem_limit}}Mi
requests:
cpu: {{.cpu_request}}m
memory: {{.mem_request}}Mi
参数说明
参数名称 | 值 |
---|---|
插件名称 | 资源限制 |
插件标识 | resource-limit |
描述 | 通过设置容器的资源请求,可以保障服务的资源下限得到满足。避免有问题的业务影响到其他业务,从而保障整体可用。 |
模式 | Patch 模式 |
目标对象类型 | Deployment |
插件自定义变量
变量标识 | 变量名 | 描述 | 是否必填 | 数据类型 |
---|---|---|---|---|
cpu_limit | cpu 资源上限 | 此容器允许使用的 CPU 上限,以千分之一 CPU 核为单位 | 是 | 整型。无最大值,最小值 0 |
mem_limit | 内存资源上限 | 此容器允许使用的内存上限,若运行中的容器使用了超过内存资源上限的内存,则 Linux 内核的内存不足处理子系统会被激活,并停止尝试分配内存的容器中的某个进程。如果该进程在容器中 PID 为 1,而容器被标记为可重新启动,则 Kubernetes 会重新启动该容器。 | 是 | 整形。无最大值,最小值 0 |
cpu_request | cpu 资源请求 | CPU 请求值定义的是该容器在节点中的 CPU 资源占用权重,“资源请求值”必须小于等于“资源上限” | 是 | 整形。无最大值 最小值 0 |
mem_request | 内存资源请求 | K8s 会保障容器启动时能分配到“内存资源请求”数量的内存 | 是 | 整形。无最大值,最小值 0 |
插件示例
#服务的定义, 假设服务名是 test-component
apiVersion: oam.coding.dev/v1alpha2
kind: component
metadata:
name: test-component
spec:
#引用哪个模版怎么表示?
componentDefinitionName: test-comp-def
deployWave: 1
containerEnvs:
- name: foo
value: bar #环境变量
- name: foo2
value: bar2 #环境变量
templateVariables:
name: test-component #服务名
image: codingcorp-docker.pkg.amd64.tech6.testing.codingcorp.net/test/docker/coffee-automake:v1 #镜像名
replicas: 3 #服务名
port: 3306 #端口
cmd: ["printenv"] #启动命令
parameters: ["HOSTNAME","KUBERNETES_PORT"] #启动参数
componentTraitConfigs:
- id: res-limit
name: res-limit
items:
cpu_limit: 100
mem_limit: 200
cpu_request: 300
mem_request: 400
问题反馈 >
2022-10-12最近更新
感谢反馈有用
感谢反馈没用
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。