抖音代运营是什么,无线网络优化工程师,关于网站空间,产品网站建设多少钱文章目录 一、ResourceQuota准入控制器1、ResourceQuota是什么#xff1f;2、限制CPU、内存、Pod数量、Deployment数量3、限制存储空间大小 二、LimitRanger准入控制器1、LimitRanger是什么#xff1f;2、LimitRanger限制案例 一、ResourceQuota准入控制器
中文官方参考文档… 文章目录 一、ResourceQuota准入控制器1、ResourceQuota是什么2、限制CPU、内存、Pod数量、Deployment数量3、限制存储空间大小 二、LimitRanger准入控制器1、LimitRanger是什么2、LimitRanger限制案例 一、ResourceQuota准入控制器
中文官方参考文档
1、ResourceQuota是什么
ResourceQuota准入控制器是K8S中内置的准入控制器默认该控制器是启用状态主要功能是限制名称空间下的资源使用防止在一个名称空间下的Pod占用过多的资源简单理解就是针对名称空间限制用户资源的使用。
2、限制CPU、内存、Pod数量、Deployment数量
第一步创建 test 名称空间针对这个名称空间做限制
kubectl create ns test第二步创建resourcequota资源限制CPU、内存、Pod数量、Deployment数量
cat resourcequota.yaml
---
apiVersion: v1
kind: ResourceQuota
metadata: name: resourcequota-demonamespace: test # 针对test名称空间限制
spec:hard:pods: 6 # 限制Pod数量requests.cpu: 2 # 限制CPU请求requests.memory: 2Gi # 限制内存请求limits.cpu: 4 # 限制CPU使用limits.memory: 10Gi # 限制内存使用count/deployments.apps: 10 # 限制deployments数量persistentvolumeclaims: 10 # 限制PVC数量参数解释
资源名称描述limits.cpu所有非终止状态的 Pod其 CPU 限额总量不能超过该值。limits.memory所有非终止状态的 Pod其内存限额总量不能超过该值。requests.cpu所有非终止状态的 Pod其 CPU 需求总量不能超过该值。requests.memory所有非终止状态的 Pod其内存需求总量不能超过该值。hugepages-size对于所有非终止状态的 Pod针对指定尺寸的巨页请求总数不能超过此值。cpu与 requests.cpu 相同。memory与 requests.memory 相同。
第三步查看test名称空间限制信息
kubectl describe quota -n test3、限制存储空间大小
第一步创建resourcequota资源限制存储空间大小
cat resourcequota-2.yaml
---
apiVersion: v1
kind: ResourceQuota
metadata: name: resourcequota-demonamespace: test # 针对test名称空间限制
spec:hard:requests.storage: 5Gi # 限制存储总容量persistentvolumeclaims: 5 # 限制pvc总数requests.ephemeral-storage: 1Gi # 限制使用本地临时存储的下限总容量limits.ephemeral-storage: 2Gi # 限制使用本地临时存储上限总容量 参数解释
资源名称描述requests.storage所有 PVC存储资源的需求总量不能超过该值。persistentvolumeclaims在该命名空间中所允许的 PVC 总量。requests.ephemeral-storage在命名空间的所有 Pod 中本地临时存储请求的总和不能超过此值limits.ephemeral-storage在命名空间的所有 Pod 中本地临时存储限制值的总和不能超过此值。
第二步验证
kubectl describe quota -n test二、LimitRanger准入控制器
1、LimitRanger是什么
LimitRanger准入控制器是Kubernetes的一种资源配额管理机制用于限制Pod的资源使用情况。它主要用于以下几个方面 设置容器的资源限制LimitRanger可以强制要求每个Pod或容器设置资源限制例如CPU使用量和内存使用量。这有助于避免某个Pod或容器过度消耗集群资源导致其他应用程序受影响。 强制执行资源限制LimitRanger可以确保Pod或容器只使用指定的资源限制通过对Pod的准入控制来强制执行这些限制。如果没有设置资源限制在高负载情况下一个应用程序可能消耗过多的资源从而影响其他应用程序的稳定性。 配额管理LimitRanger可以与Kubernetes的配额管理机制一起使用实现更精细的资源管理。通过设置配额限制可以控制每个命名空间可用的资源总量以及每个命名空间中每种资源的使用情况。
总的来说LimitRanger准入控制器有助于确保资源的合理使用和分配提高集群的可靠性和稳定性。
如果我们在创建Pod定义了资源上下限但不满足LimitRanger规则中定义的资源上下限此时LimitRanger会拒绝创建Pod资源如果创建Pod时没有指定资源上下限默认会使用LimitRanger规则中的资源上下限制
2、LimitRanger限制案例
第一步创建limit 名称空间针对limit名称空间做演示
kubectl create ns limit第二步配置LimitRanger规则
cat limitrange.yaml
---
apiVersion: v1
kind: LimitRange
metadata:name: limitrange-demonamespace: limit
spec:limits:- default: # 默认容器上限值cpu: 1000mmemory: 1000MidefaultRequest: # 默认容器下限值cpu: 500mmemory: 500Mimin: # 创建Pod或Containerd中,requests字段值不得小于此值cpu: 500mmemory: 500Mimax: # 创建Pod或Containerd中,requests字段值不得大于此值cpu: 2000mmemory: 2000MimaxLimitRequestRatio: # 指定资源的上限和下限的比值,即上限是下限的多少倍cpu: 4memory: 4type: Container # 针对Container做限制,也可以是Podskubectl apply -f limitrange.yaml第三步查看规则信息
kubectl describe limitrange -n limit第四步测试默认上下限创建Pod不指定限制看是否使用LimitRanger规则中默认配置的值
cat limitrange-pod.yaml
---
apiVersion: v1
kind: Pod
metadata:name: limit-pod-demonamespace: limit
spec:containers:- image: nginximagePullPolicy: IfNotPresentname: nginxkubectl apply -f limitrange-pod.yaml查看限制信息
kubectl describe pod limit-pod-demo -n limit第五步测试CPU下限创建Pod指定不合规的下限看是否可以成功创建。
cat limitrange-pod-2.yaml
---
apiVersion: v1
kind: Pod
metadata:name: limit-pod-demo-2namespace: limit
spec:containers:- image: nginximagePullPolicy: IfNotPresentname: nginxresources:requests:cpu: 100m # 下限100mkubectl apply -f limitrange-pod-2.yaml可以看到不能成功创建Pod因为我们指定的下限不合规我们在定义LimitRanger规则是下限不得小于500m我创建Pod是指定下限是100m 所有无法创建。