为容器和pod分配内存资源
创建命名空间
[root@master ~]# kubectl create namespace mem-example
新建一个mem.yaml文件
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"]
开始创建pod
kubectl apply -f men.yaml --namespace=mem-example
查看是否成功
[root@master ~]# kubectl get pod -n mem-example
查看pod详细信息
kubectl get pod memory-demo --output=yaml -n mem-example
超出容器限制的内存
新建mem2.yaml文件
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"]
开始创建pod
kubectl apply -f men2.yaml --namespace=mem-example
查看pod详细信息
kubectl get pod memory-demo-2 -n mem-example
结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mWpqGlr0-1657762007945)(4.为容器和pod分配内存.assets/image-20220712160707424.png)]
超过整个节点内存
新建mem3.yaml文
apiVersion: v1
kind: Pod
metadata:
name: memory-demo-3
namespace: mem-example
spec:
containers:
- name: memory-demo-3-ctr
image: polinux/stress
resources:
requests:
memory: "1000Gi"
limits:
memory: "1000Gi"
command: ["stress"]
args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]
开始创建pod
kubectl apply -f mem3.yaml --namespace=mem-example
查看pod详细信息
kubectl get pod memory-demo-3 -n mem-example
结果
查看pod详细信息
kubectl get pod memory-demo-3 -n mem-example
结果
输出结果显示:Pod 处于 PENDING 状态。 这意味着,该 Pod 没有被调度至任何节点上运行,并且它会无限期的保持该状态: