需求:集群管理为每一个pod配置Requests和Limits限制是繁琐的, 解决方案: kubernetes提供了LimitRange机制对pod和容器的Requests和Limits作出限制 LimitRange几种限制方式: 最大最小范围, Requests或Limits的默认值, limits与Requests的最大比例上限 1.创建namespace
kubectl create namespace limitrange-example2.LimitRange资源对象
apiVersion: v1 kind: LimitRange metadata: name: mylimits namespace: limitrange-example spec: limits: - max: cpu: "2" memory: 4Gi min: cpu: 200m memory: 6Mi maxLimitRequestRatio: cpu: 2 memory: 2 type: Pod - default: cpu: 300m memory: 200Mi defaultRequest: cpu: 200m memory: 100Mi min: cpu: 100m memory: 3Mi max: cpu: "2" memory: 1Gi maxLimitRequestRatio: cpu: 5 memory: 4 type: Container3.查看limitrange对象信息
kubectl describe limitrange mylimits -n limitrange-example说明
type为Pod: min表示是pod中所有容器的requests值的总和下限 max表示pod中所有容器的limits值的总和上限 maxLimitRequestRatio表示是pod中所有容器的Limits值总和与Requests值总和的比例上限 type为Requests: min表示是pod中的容器的requests值的下限 max表示pod中容器的limits值的上限 defaultRequest: pod中未指定Requests值的容器的默认Requests值 default表示pod中未指定Limits值的容器的默认Limits值 maxLimitRequestRatio表示是pod中所有容器的Limits值总和与Requests值比例上限4.创建pod
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: limitrange-example spec: selector: matchLabels: app: nginx replicas: 1 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.11 ports: - containerPort: 80说明: 由于该pod未配置Requests和Limits, 所以使用默认定义的Requests和Limits值
5.配置超过资源限制的pod, 结果是无法创建的
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: limitrange-example spec: selector: matchLabels: app: nginx replicas: 1 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.11 ports: - containerPort: 80 resources: limits: cpu: "3" memory: 2Gi转载于:https://www.cnblogs.com/lovelinux199075/p/11278658.html