k8s之pod资源管理
k8s启动pod中,可以使用requests来设置各容器需要的最小资源limits用于限制运行时容器占用的资源,用来限制容器的最大CPU、内存的使用率。当容器申请内存超过limits时会被终止,并根据重启策略进行重启。pod重启策略有三种,如下:Always: 当容器失效时, 由kubelet自动重启该容器OnFailure: 当容器终止运行且退出码不为0时, 由kubelet自动重启该容器Nev
·
k8s启动pod中,可以使用requests来设置各容器需要的最小资源
limits用于限制运行时容器占用的资源,用来限制容器的最大CPU、内存的使用率。
当容器申请内存超过limits时会被终止,并根据重启策略进行重启。
pod重启策略有三种,如下:
Always: 当容器失效时, 由kubelet自动重启该容器
OnFailure: 当容器终止运行且退出码不为0时, 由kubelet自动重启该容器
Never: 不论容器运行状态如何, kubelet都不会重启该容器
以下先讲一下k8s中cpu和内存的单位:
CPU的单位有:
正实数,代表分配几颗CPU,可以是小数点,比如0.5代表0.5颗CPU,意思是一 颗CPU的一半时间。2代表两颗CPU。
正整数m,也代表1000m=1,所以500m等价于0.5。
Mem表示如下:
Mi表示(1Mi=10242014),M表示(1M=10001000),其他单位类推(K、M、G、T、P、E)
yaml文件使用如下:
---
apiVersion: v1
kind: Pod
metadata:
name: test-resource
labels:
app: nginx
namespace: resource
spec:
restartPolicy: Always ##指定pod的重启策略
containers:
- name: nginx-resource
image: nginx:latest
imagePullPolicy: IfNotPresent ###镜像的拉取策略
ports:
- name: http-port
containerPort: 80
resources:
limits: ##资源的限制
cpu: "0.5"
memory: 2048Mi
requests: ###给pod分配的资源
cpu: "0.1"
memory: 1024Mi
describe启动之后的pod,输出信息如下:
Containers:
nginx-resource:
Container ID: docker://ebf3e872a12a67bc6a5b2e6085fd7c35fa001ad29835f5d507e9ea038404a0e8
Image: nginx:latest
Image ID: docker://sha256:f6d0b4767a6c466c178bf718f99bea0d3742b26679081e52dbf8e0c7c4c42d74
Port: 80/TCP
Host Port: 0/TCP
State: Running
Started: Tue, 23 Feb 2021 17:03:29 +0800
Ready: True
Restart Count: 0
Limits:
cpu: 1
memory: 2Gi ###可以看到限制的内存
Requests:
cpu: 600m
memory: 1Gi
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-jgl29 (ro)
更多推荐
已为社区贡献26条内容
所有评论(0)