创建命名空间:
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软件编程之家