k8s容器资源限制(内存限制、CPU限制、namespace的资源限制与资源配额)

1.资源的限制类型

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为换算标准的。


2. 内存限制

[kubeadm@server1 ~]$ mkdir quota
[kubeadm@server1 ~]$ cd quota/
[kubeadm@server1 quota]$ vim demo.yml
[kubeadm@server1 quota]$ cat demo.yml
apiVersion: v1 
kind: Pod 
metadata:  
  name: memory-demo 
spec:  
  containers:  
  - name: memory-demo    
    image: stress    
    args:    
    - --vm    
    - "1"    
    - --vm-bytes    
    - 200M    
    resources:      
      requests:        
        memory: 50Mi      
      limits:        
        memory: 100Mi
[kubeadm@server1 quota]$ kubectl apply -f demo.yml 
pod/memory-demo created
[kubeadm@server1 quota]$ kubectl get pod
NAME                                     READY   STATUS              RESTARTS   AGE
memory-demo                              0/1     ContainerCreating   0          5s
nfs-client-provisioner-96649cd96-pntbp   1/1     Running             1          26h
[kubeadm@server1 quota]$ kubectl get pod
NAME                                     READY   STATUS      RESTARTS   AGE
memory-demo                              0/1     OOMKilled   2          33s
nfs-client-provisioner-96649cd96-pntbp   1/1     Running     1          26h
[kubeadm@server1 quota]$ kubectl describe pod memory-demo 
Name:         memory-demo
Namespace:    default
Priority:     0
Node:         server3/172.25.1.3
Start Time:   Sat, 04 Jul 2020 22:43:14 +0800
Labels:       <none>
Annotations:  Status:  Running
IP:           10.244.2.137
IPs:
  IP:  10.244.2.137
Containers:
  memory-demo:
    Container ID:  docker://d8745253bbf2a986d4a8bf7e1afd5aed1609e42601d4801d57feccb5424bcb21
    Image:         stress
    Image ID:      docker-pullable://stress@sha256:48a71454d405dbe1c756dd728cadeb577f429f61313ac62b413b52fbaa8a3b44
    Port:          <none>
    Host Port:     <none>
    Args:
      --vm
      1
      --vm-bytes
      200M
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       OOMKilled
      Exit Code:    1
      Started:      Sat, 04 Jul 2020 22:44:51 +0800
      Finished:     Sat, 04 Jul 2020 22:44:51 +0800
    Ready:          False
    Restart Count:  4
    Limits:
      memory:  100Mi
    Requests:
      memory:     50Mi
    Environment:  <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-5qqxc (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  default-token-5qqxc:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-5qqxc
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  104s               default-scheduler  Successfully assigned default/memory-demo to server3
  Normal   Created    51s (x4 over 96s)  kubelet, server3   Created container memory-demo
  Normal   Started    51s (x4 over 96s)  kubelet, server3   Started container memory-demo
  Warning  BackOff    22s (x7 over 94s)  kubelet, server3   Back-off restarting failed container
  Normal   Pulling    7s (x5 over 103s)  kubelet, server3   Pulling image "stress"
  Normal   Pulled     7s (x5 over 96s)   kubelet, server3   Successfully pulled image "stress"
[kubeadm@server1 quota]$ kubectl delete -f demo.yml 
pod "memory-demo" deleted

在这里插入图片描述
在这里插入图片描述


3. CPU限制

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值