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

  

猜你喜欢

转载自www.cnblogs.com/zhangb8042/p/10204206.html