设置Kubernetes的Limit Range限制范围

通过Limit Range,我们可以限制资源消耗和创建,因为默认情况下,容器在Kubernetes集群上以无限制的计算资源运行。一个Pod可以消耗Limit Range所定义的CPU和内存。
Limit Range提供了以下限制:
最低和最高资源
每个PersistentVolumeClaim的最小和最大存储请求。
命名空间中资源的请求和限制之间的比率。
设置计算资源的默认请求/限制。
在本文中,我们将创建一个限制范围,并查看如何为容器和Pods使用的CPU资源设置最小值和最大值。我们将看到在CPU上使用Limit和Request的不同场景。
先决条件:具有至少1个工作节点的Kubernetes集群。
我们会怎样做?
在默认名称空间中创建一个LimitRange。
在默认名称空间中创建具有CPU限制和范围的Pod。
在默认名称空间中创建一个LimitRange
创建一个文件以定义默认名称空间中的限制范围。
vim set-limit-range.yml

获取默认名称空间中现有限制范围的列表,并使用在上一步中创建的文件创建一个范围。
kubectl get limitrange
kubectl create -f set-limit-range.yml
kubectl get limitrange
kubectl describe limitrange set-limit-range

在上面的屏幕截图中,可以看出我们创建了一个限制范围,将CPU定义为“ Min = 200m”和“ Max = 800m”。
这意味着默认名称空间中的Pod不能具有“小于Min = 200m”和“大于Max = 800m”的CPU。
在默认名称空间中创建具有CPU限制和范围的Pod
有限制的POD
创建一个Pod定义,请求CPU大于200m且小于800m
vim pod-with-cpu-within-range.yml

列出现有的容器,并使用在上述步骤中创建的文件创建一个新的容器。
kubectl get pods
kubectl create -f pod-with-cpu-within-range.yml
kubectl get pods
kubectl describe pod pod-with-cpu-within-range

在上面的屏幕截图中,可以看到pod已经被创建,定义了CPU请求和限制。
具有更多CPU的Pod:
这次,我们创建一个CPU限制为1.5(即大于800m)的Pod。
vim pod-with-cpu-more-than-limit.yml

获取现有容器的列表,然后尝试创建一个新的容器,其CPU限制“ 1.5”大于我们在限制范围内定义的“ 800m”。
kubectl get pods
kubectl create -f pod-with-cpu-more-than-limit.yml

在上面的屏幕截图中,可以看到尚未创建容器。
具有较少CPU的Pod:
现在,让我们尝试创建一个Pod,该Pod请求的“ CPU = 100m”小于我们在限制范围内定义的“ 200m”。
vim pod-with-cpu-less-than-limit.yml

现在获取现有容器的列表,并尝试使用上述定义文件创建容器。
kubectl get pods
kubectl create -f pod-with-cpu-less-than-limit.yml
这次,由于我们要求的CPU = 100m小于定义的限制范围的200m,因此pod的创建也会失败。
没有CPU的Pod:
在这种情况下,我们不要为CPU定义任何请求或限制。
vim pod-with-no-cpu.yml

现在,让我们尝试创建一个pod并查看其描述。
kubectl get pods
kubectl create -f pod-with-no-cpu.yml
kubectl describe pods pod-with-no-cpu

在上面的屏幕截图中,可以看出,如果我们没有为CPU指定任何请求或限制,则POD分配的CPU等于在限制范围内指定的限制,即在此示例中,容器获得了CPU限制和请求等于800m,即在极限范围内指定的极限
在本文中,我们看到了在默认名称空间中创建限制范围的步骤。然后,我们针对Pod中的CPU限制和请求尝试了不同的方案。

A5互联https://www.a5idc.net/

原文地址:https://www.cnblogs.com/a5idc/p/13489141.html