一、k8s容器资源限制
- Kubernetes采用request和limit两种限制类型来对资源进行分配。
- request(资源需求):即运行Pod的节点必须满足运行Pod的最基本需求才能运行Pod。
- limit(资源限额):即运行Pod期间,可能内存使用量会增加,那最多能使用多少内存,这就是资源限额。
- 资源类型:
CPU 的单位是核心数,内存的单位是字节。
一个容器申请0.5个CPU,就相当于申请1个CPU的一半,你也可以加个后缀m 表示千分之一的概念。比如说100m的CPU,100豪的CPU和0.1个CPU都是一样的。 - 内存单位:
K、M、G、T、P、E #通常是以1000为换算标准的。
Ki、Mi、Gi、Ti、Pi、Ei #通常是以1024为换算标准的。
二、内存限制
- 如果容器超过其内存限制,则会被终止。如果可重新启动,则与所有其他类型的运行时故障一样,kubelet 将重新启动它。
- 如果一个容器超过其内存请求,那么当节点内存不足时,它的 Pod 可能被逐出。
老办法,新创建一个实验目录
镜像导入仓库
创建并且应用pod文件
[root@server2 limit]# cat mem.yaml
apiVersion: v1
kind: Pod
metadata:
name: memory-demo
spec:
containers:
- name: memory-demo
image: stress
args: #提供了容器启动的参数
- --vm
- "1" #模拟一个进程
- --vm-bytes
- 200M #部署200M内存占用pod
resources:
requests:
memory: 50M