https://kubernetes.io/zh/docs/tasks/configure-pod-container/assign-memory-resource/
创建命名空间
kubectl create namespace mem-example
新建一个限制指定内存请求的 kube.yml文件
vim memory-request-limit.yaml
该容器的内存请求为 50 MiB,内存限制为 100 MiB
apiVersion: v1
kind: Pod
metadata:
name: memory-demo
namespace: mem-example
spec:
containers:
- name: memory-demo-ctr
image: polinux/stress
resources:
requests:
memory: "100Mi"
limits:
memory: "200Mi"
command: ["stress"]
args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]
kubectl apply -f memory-request-limit.yaml --namespace=mem-example
#开始创建 Pod
kubectl get pod -n mem-example
#查看Pod 中的容器是否已运行
vim memory-request-limit2.yaml
vim memory 容器将会请求 100 MiB 内存,并且内存会被限制在 200 MiB 以内
apiVersion: v1
kind: Pod
metadata:
name: memory-demo-2
namespace: mem-example
spec:
containers:
- name: memory-demo-2-ctr
image: polinux/stress
resources:
requests:
memory: "50Mi"
limits:
memory: "100Mi"
command: ["stress"]
args: ["--vm", "1", "--vm-bytes", "250M", "--vm-hang", "1"]
在配置文件的 args 部分中,你可以看到容器会尝试分配 250 MiB 内存,这远高于 100 MiB 的限制。
kubectl apply -f memory-request-limit2.yaml --namespace=mem-example
kubectl get pod -n mem-example
#查看Pod 中的容器是否已运行
因为超过资源,所以无法启动。