php requestlimits,Kubernetes资源分配(limit/request)

概述

kubernetes 是一个集群管理平台, kubernetes需要统计整体平台的资源使用情况, 合理的将资源分配给容器使用, 并保证容器生命周期内有足够的资源来保证其运行. 同时, 如果资源发放是独占的, 对于空闲的容器来说占用这没有使用的资源是非常浪费的, 比如CPU。k8s需要考虑如何在优先度和公平性的前提下提供资源的利用率。

为了实现资源被有效调度和分配时同时提高资源的利用率, k8s采用request和limit两种限制类型对资源进行分配。

limit/request 限制类型介绍

request

容器使用的最小资源需求, 作为容器调度时资源分配的判断依赖。

只有当前节点上可分配的资源量 >= request 时才允许将容器调度到该节点。

request参数不限制容器的最大可使用资源

limit

容器能使用资源的最大值

设置为0表示对使用的资源不做限制, 可无限的使用

request 和 limit 关系

request能保证pod有足够的资源来运行, 而limit则是防止某个pod无限制的使用资源, 导致其他pod崩溃. 两者的关系必须满足:

0 <= request <= limit

如果limit=0表示不对资源进行限制, 这时可以小于request。

目前CPU支持设置request和limit,memory只支持设置request, limit必须强制等于request, 这样确保容器不会因为内存的使用量超过request但是没有超过limit的情况下被意外kill掉。

limit/request使用示例

---

apiVersion: apps/v1beta2

kind: Deployment

metadata:

name: nginx

namespace: php

labels:

app: nginx

spec:

revisionHistoryLimit: 10

strategy:

type: RollingUpdate

selector:

matchLabels:

app: nginx

template:

metadata:

labels:

app: nginx

spec:

containers:

- name: nginx

image: nginx:latest

ports:

- containerPort: 80

protocol: TCP

resources:

requests:

cpu: 0.5

memory: 1024Mi

limits:

cpu: 1

memory: 2048Mi

---

apiVersion: autoscaling/v1

kind: HorizontalPodAutoscaler

metadata:

name: nginx

labels:

app: nginx

spec:

scaleTargetRef:

apiVersion: extensions/v1beta1

kind: Deployment

name: nginx

minReplicas: 2

maxReplicas: 4

targetCPUUtilizationPercentage: 80

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值