|
|
51CTO旗下网站
|
|
移步端
  • Kubernetes中的资源限制!

    如果节点有足够的商用资源,容器就有可能使用更多资源。咱们可以指定容器需要每种资源之多寡。要指定的宽广资源是CPU和内存。咱们为Pod中的容器指定资源请求时,安排程序将决定将Pod放置在谁节点上。

    笔者:布加迪编译 来源:51CTO| 2020-07-31 07:00

    【51CTO.com快译】

    如果节点有足够的商用资源,容器就有可能使用更多资源。咱们可以指定容器需要每种资源之多寡。要指定的宽广资源是CPU和内存。咱们为Pod中的容器指定资源请求时,安排程序将决定将Pod放置在谁节点上。咱们为容器指定资源限制时,kubelet会处理限制,以便不同意运行中的容器使用的风源超过我们设置的限制。

    比如说,如果我们为容器设置100 MiB的内存请求,该容器可能尝试使用更多的内存。但是如果我们为该容器设置了4GiB的内存限制,运作时环境会阻止容器使用超过配置限制的内存。

    CPU和内存称为计算资源。

    Pod的每股容器可以指定以下一项或多项:

  • CPU地方的限制
  • 内存方面的限制
  • 大页面-<大大小小>地方的限制
  • 对CPU的呼吁
  • 对内存的呼吁
  • 对大页面-<大大小小>的呼吁
  • 想进一步了解Kubernetes中的资源,点击此地走访Kubernetes的合法文档。

    在本文中,咱们将看到资源限制以及CPU和内存请求的示范。咱们还将使用Metric Server。 Metrics Server聚拢了集群中的资源利用状态数据,默认情况下未部署在集群中。咱们将采用该Metric Server翻开Pod的风源利用状态。

    先决条件

  • 至少有1个worker重点的Kubernetes集群
  • 如果您想了解创建Kubernetes集群,请点击此地。该指南将救助您在AWS Ubuntu 18.04 EC2老上创办有1个Master和2个重点的Kubernetes集群。

    咱们将做什么?

  • 能源限制
  • 能源限制

    在创造资源需求指定的Pod先前,不妨先安装Metric Server。

    采用以下命令克隆Metric Server Github存储库,并安装。

          
    1. git clone https://github.com/kodekloudhub/kubernetes-metrics-server.git  
    2. cd kubernetes-metrics-server / 

    采用对象文件创建Metric Server。

          
    1. kubectl create -f 

    希冀1. 安装Metric Server

    等待一段日子以启动Metric Server。一段日子后,您可以实行以下命令来探测集群节点。

          
    1. kubectl top node 

    希冀2. 检验节点度量

    如今,创造一个有下列内容的pod定义文件,含有内存请求和限制。

          
    1. vim my-pod-with-memory.yml 
    2.  
    3. apiVersion: v1 
    4.  
    5. kind: Pod 
    6.  
    7. metadata: 
    8.  
    9. name: my-pod-memory-demo 
    10.  
    11. spec: 
    12.  
    13. containers: 
    14.  
    15. name: my-container-memory-demo 
    16.  
    17. image: polinux/stress 
    18.  
    19. resources: 
    20.  
    21. limits: 
    22.  
    23. memory: "50Mi" 
    24.  
    25. requests: 
    26.  
    27. memory: "20Mi" 
    28.  
    29. command: ["stress"
    30.  
    31. args: ["--vm""1""--vm-bytes""30M""--vm-hang""1"

    希冀3. 我之pod内存演示

    您可以找到“resources”属性,咱们已将内存限制指定为50Mi、名将内存请求指定为20Mi。

    检查集群上的现有pod。

          
    1. kubectl get pods #Get pods from the default namespace 

    采用上述步骤中创造的pod定义来创造pod。

          
    1. kubectl create -f my-pod-with-memory.yml #Create a pod  
    2. kubectl get pods 

    希冀4. 创造一个有内存请求和限制的pod。

    如今,如果您获得了Pod的详细信息,可以看出该Pod呼吁20Mi内存,内存限制为50Mi。

          
    1. kubectl get pods  
    2. kubectl describe pod my-pod-memory-demo #Describe the pod 

    希冀5. 叙述pod,并检查内存。

    可以运用以下命令检查Pod的采取状态。

          
    1. kubectl top pods #Check resource consumption by the pod 

    希冀6. 检查内存使用状态。

    如今,创造附有CPU呼吁和限制的pod定义。

          
    1. vim my-pod-with-cpu.yml 
    2.  
    3. apiVersion: v1 
    4.  
    5. kind: Pod 
    6.  
    7. metadata: 
    8.  
    9. name: my-pod-cpu-demo 
    10.  
    11. spec: 
    12.  
    13. containers: 
    14.  
    15. name: my-container-cpu-demo image: vish/stress 
    16.  
    17. resources: 
    18.  
    19. limits: cpu: "1" 
    20.  
    21. requests: 
    22.  
    23. cpu: "0.5" 
    24.  
    25. args: 
    26.  
    27. - -cpus 
    28.  
    29. "2" 

    希冀7. 我之pod CPU演示。

    在上述文件中,您可以看出该定义之“resource”属性为CPU呼吁是0.5、限制是1。此外要小心,咱们传递2个CPU表现我们的急需,这超出了限制。

    如今,不妨使用以下命令创建附有CPU呼吁和限制的pod。

          
    1. kubectl apply -f my-pod-with-cpu.yml #Create a pod  
    2. kubectl get pods 

    希冀8. 创造附有CPU呼吁和限制的pod。

    拥有我们创建的pod的详细信息。

          
    1. kubectl get pods  
    2. kubectl describe pod my-pod-cpu-demo 

    希冀9. 叙述pod,检查CPU。

    您可以看出,Pod呼吁.5即500m CPU,限制为1个CPU。

    想检查CPU采用状态,采用以下命令。

          
    1. kubectl top pod #Check resource consumption by the pod 

    希冀10. 检查CPU采用状态。

    在上述屏幕截图中,您可以看出在pod定义中传递2个CPU表现变量后,他无法运用超过限制(即1个CPU)的风源。此地pod“my-pod-cpu-demo”可能耗用999m CPU(相当于1个CPU),他不会增加耗用的风源。

    结束语

    咱们在本文中看到了动用Metric Server在集群中展开检测的几个步骤,还观看了pod如何可以请求CPU和内存,并在不超出指定限制的情况下使用资源。

    原文标题:Resource Limits in Kuberenetes

    【51CTO来稿,合作站点转载请注明原文译者和出处为51CTO.com】

    【编纂推荐】

    1. K9s如何加快Kubernetes的集群管理?
    2. 如何在Kubernetes官方创造命名空间?
    3. 用树莓派构建Kubernetes集群
    4. Kubernetes实战指南:京宕机无缝迁移Spring Cloud至k8s
    5. 如何在Kubernetes官方创造HostPath慎始而敬终卷?
    【义务编辑: 庞桂玉 TEL:(010)68476606】

    点赞 0
  • Kubernetes  容器  Linux
  • 分享:
    大家都在看
    猜你喜欢
  • 订阅专栏+更多

    大数据安全运维实战

    大数据安全运维实战

    CDH+Ambari
    共20章 | 数据陈浩

    91人口订阅学习

    实操老:Jenkins接轨交付和后续部署

    实操老:Jenkins接轨交付和后续部署

    微服务架构下的无部署
    共18章 | freshman411

    184人口订阅学习

    思科交换网络安全指南

    思科交换网络安全指南

    安全才能无忧
    共5章 | 思科小牛

    109人口订阅学习

    视频课程+更多

    Wireshark网络安全协议分析

    Wireshark网络安全协议分析

    教授:曲广平1472人口学习过

    Oracle RAC+DG生产实战(2):Oracle19c RAC for Linux8安装+补丁

    Oracle RAC+DG生产实战(2):Oracle19c RAC

    教授:风哥1123人口学习过

    Appium移步自动化(App)高考

    Appium移步自动化(App)高考

    教授:李晓鹏1178人口学习过

    订阅51CTO邮刊

    点击这里查看样刊

    订阅51CTO邮刊

    51CTO劳务号

    51CTO官微