kubernetes 命名空间容器配额限制

创建命名空间:

kubectl create namespace my-namespace

需要配置的资源限制:

  • 配置容器默认内存限制

  • 配置容器默认CPU限制

  • 配置命名空间容器总内存和CPU限制

xxx/default-resource-limit.yaml文件内容如下:

# 如果在具有默认内存限制的命名空间中创建容器,并且该容器未指定其自身的内存限制,则将为该容器分配默认内存限制
apiVersion: v1
kind: LimitRange
metadata:
  name: default-mem-limit
spec:
  limits:
  # 默认内存上限为2G
  # 如果容器指定resources.limit.memory而没有指定resources.requests.memory
  # 那么两者值均为指定的值resources.limit.memory
  - default:
      memory: 2048Mi
  # 默认内存请求为512M
  # 如果容器指定resources.requests.memory而没有指定resources.limit.memory
  # 那么resources.requests.memory按指定的,resources.limit.memory按默认的
    defaultRequest:
      memory: 256Mi
    type: Container
 
---
 
# 如果在具有默认CPU限制的命名空间中创建容器,并且该容器未指定其自己的CPU限制,则将为该容器分配默认CPU限制
apiVersion: v1
kind: LimitRange
metadata:
  name: default-cpu-limit
spec:
  limits:
  # 默认容器CPU上限为2
  # 如果容器指定resources.limit.cpu而没有指定resources.requests.cpu
  # 那么两者值均为指定的值resources.limit.cpu
  - default:
      cpu: 2
  # 默认容器CPU请求为0.5
  # 如果容器指定resources.requests.cpu而没有指定resources.limit.cpu
  # 那么resources.requests.cpu按指定的,resources.limit.cpu按默认的
    defaultRequest:
      cpu: 0.5
    type: Container
 
---
 
# 配置整个命名空间中运行的所有容器可以使用的内存和CPU总量
apiVersion: v1
kind: ResourceQuota
metadata:
  name: default-mem-cpu-total-limit
spec:
  hard:
    requests.cpu: "8"
    requests.memory: 16Gi
    limits.cpu: "8"
    limits.memory: 16Gi

通过下面命令将限制应用到my-namespace命名空间中:

kubectl apply -f xxx/default-resource-limit.yaml --namespace=my-namespace

查看创建的资源限制信息:

kubectl get resourcequota default-mem-cpu-total-limit --output=yaml --namespace=my-namespace
kubectl get limitrange default-mem-limit --output=yaml --namespace=my-namespace
kubectl get limitrange default-cpu-limit --output=yaml --namespace=my-namespace

创建Pod时指定容器资源限制示例代码:

apiVersion: v1
kind: Pod
metadata:
  name: resource-limit-pod-demo
spec:
  containers:
  - name: resource-limit-pod-demo
    image: nginx
    resources:
      # 指定该Pod容器内存和CPU上限
      limits:
        memory: "512Mi"
        cpu: "2"
      # 指定该Pod容器内存和CPU请求大小
      requests:
        memory: "256Mi"
        cpu: "1"

查看Pod容器资源信息:

kubectl get pod resource-limit-pod-demo --output=yaml --namespace=my-namespace

---------------------- 正文结束 ------------------------

长按扫码关注微信公众号

Java软件编程之家

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值