当前位置: 首页 > 科技观察

Kubernetes中的资源限制!_0

时间:2023-03-14 21:09:01 科技观察

【.com速译】如果节点有足够的可用资源,容器就有可能使用更多的资源。我们可以指定容器需要多少资源。要指定的常见资源是CPU和内存。当我们为Pod中的容器指定资源请求时,调度器决定将Pod放置在哪个节点上。当我们为容器指定资源限制时,kubelet会处理这些限制,这样运行中的容器就不会使用超过我们设置的限制的资源。例如,如果我们为容器设置100MiB的内存请求,则容器可能会尝试使用更多内存。但是如果我们为容器设置4GiB的内存限制,运行时环境将阻止容器使用超过配置限制的内存。CPU和内存称为计算资源。Pod的每个容器都可以指定以下一项或多项:CPU限制内存限制大页面限制-CPU请求限制大页面上的内存请求-进一步请求了解资源Kubernetes,点击此处访问Kubernetes官方文档。在本文中,我们将看到资源限制以及CPU和内存请求的示例。我们还将使用MetricServer。MetricsServer聚合了集群中的资源使用数据,默认不部署在集群中。我们将使用这个MetricServer来查看Pod的资源使用情况。先决条件至少有1个工作节点的Kubernetes集群如果您想了解如何创建Kubernetes集群,请单击此处。本指南将帮助您在AWSUbuntu18.04EC2实例上创建具有1个主节点和2个节点的Kubernetes集群。我们会怎样做?ResourceConstraintsResourceConstraints在创建资源需求指定的pod之前,我们先安装MetricServer。使用以下命令克隆MetricServerGithub存储库,然后安装。gitclonehttps://github.com/kodekloudhub/kubernetes-metrics-server.gitcdkubernetes-metrics-server/使用对象文件创建MetricServer。kubectlcreate-f图1.安装指标服务器稍等片刻以启动指标服务器。一段时间后,您可以执行以下命令来监控集群节点。kubectltopnode图2.验证器指标现在,创建一个包含以下内容的pod定义文件,包括内存请求和限制。vimmy-pod-with-memory.ymlapiVersion:v1kind:Podmetadata:name:my-pod-memory-demospec:containers:-name:my-container-memory-demoimage:polinux/stressresources:limits:memory:"50Mi"请求:memory:"20Mi"命令:["stress"]args:["--vm","1","--vm-bytes","30M","--vm-hang","1"]图3.我的pod内存演示您可以找到“资源”属性,我们将内存限制指定为50Mi,将内存请求指定为20Mi。检查集群上的现有Pod。kubectlgetpods#Getpodsfromthedefaultnamespace使用在上述步骤中创建的pod定义创建pod。kubectlcreate-fmy-pod-with-memory.yml#Createapodkubectlgetpods图4.创建具有内存请求和限制的pod。现在,如果您获取pod详细信息,您可以看到pod请求20Mi的内存,内存限制为50Mi。kubectlgetpodskubectldescribepodmy-pod-memory-demo#Describethepod图5.描述pod并检查内存。可以使用以下命令检查Pod使用情况。kubectltoppods#Checkresourceconsumptionbythepod图6.检查内存使用情况。现在,创建一个附加了CPU请求和限制的pod定义。vimmy-pod-with-cpu.ymlapiVersion:v1kind:Podmetadata:name:my-pod-cpu-demospec:containers:-name:my-container-cpu-demoimage:vish/stressresources:limits:cpu:"1"请求:cpu:"0.5"args:--cpus-"2"图7.我的podCPU演示。在上面的文件中,您可以看到定义的“resource”属性具有0.5的CPU请求和1的限制。还要注意,我们将2个CPU作为我们的要求,这超出了限制。现在让我们使用以下命令创建一个附加了CPU请求和限制的pod。kubectlapply-fmy-pod-with-cpu.yml#Createapodkubectlgetpods图8.创建具有CPU请求和限制的pod。获取我们创建的pod的详细信息。kubectlgetpodskubectldescribepodmy-pod-cpu-demo图9.描述pod,检查CPU。如您所见,Pod请求.5即500mCPU,限制为1个CPU。要检查CPU使用率,请使用以下命令。kubectltoppod#Checkresourceconsumptionbythepod图10.检查CPU使用率。在上面的截图中,您可以看到在pod定义中将2个CPU作为变量传递后,它不能使用超出限制的资源(即1个CPU)。这里的pod“my-pod-cpu-demo”可能会消耗999mCPU(相当于1个CPU),不会增加消耗的资源。结论在本文中,我们看到了使用MetricServer在集群中进行监控的几个步骤,还看到了Pod如何请求CPU和内存,以及如何在不超过指定限制的情况下使用资源。原标题:Kubernetes中的资源限制