k8s容器的资源限制
1、k8s支持内存和cpu的限制
requests:容器运行需求,最低保障
limits:限制,硬限制(资源上限)
CPU: 1颗逻辑CPU(1核CPU=4个逻辑CPU)
1物理核=1000个微核(millicores)
1000m=1CPU
内存:
2、Qos类别
Qos类别:
1、Guranteed:(优选级最高)
(每个容器)同时设置了CPU和内存的requests和limits,cpu.limits=cpu.requests,memory.limits=memory。request
2、 Burstable:(优先级第二)
至少有一个容器设置了CPU或内存资源的requests属性
3、BestEffort:
没有任何一个容器设置了requests或limits属性
当资源不够使用时,BestEffort状态的容器会被优先终止(根据优先级终止)
k8s是以资源的实际占用量和requests设置的需求量的比例,优先终止实际占用量和requests的需求量高的
(例如设置requests为512M的内存,实际使用500M与requests为1g,实际使用600M,会优先终止使用500M容器的pod)
3、使用k8s资源限制
[root@k8s-m ~]# cat mypod1.yaml apiVersion: v1 kind: Pod metadata: name: nginx-pod labels: app: my-pod spec: containers: - name: my-pod image: nginx ports: - name: http containerPort: 80 resources: requests: cpu: "250m" memory: "64Mi" limits: #资源最高限制 memory: "128Mi" cpu: "500m" #0.5核cpu #查看QoS [root@k8s-m ~]# kubectl describe pod nginx-pod|grep QoS QoS Class: Burstable