配额
1、给namespace设置Pod配额
# 编写 quota-pod.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
name: pod-quato
spec:
hard:
pods: "2"
#给andriy-dang设置pod配额
kubectl create -f quota-pod.yaml --namespace=andriy-dang
#查看配额信息
kubectl get resourcequota pod-quato --namespace=andriy-dang --output=yaml
apiVersion: v1
kind: ResourceQuota
metadata:
creationTimestamp: 2018-03-14T05:34:26Z
name: pod-quato
namespace: andriy-dang
resourceVersion: "209063"
selfLink: /api/v1/namespaces/andriy-dang/resourcequotas/pod-quato
uid: 5be0e7f4-2749-11e8-ad43-d00d8f137bac
spec:
hard:
pods: "2"
status:
hard:
pods: "2"
used:
pods: "1"
#创建deployment验证pod配额
编写quota-deploy.yaml
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: deploy-quota-demo
namespace: andriy-dang
spec:
replicas: 3
template:
metadata:
labels:
purpose: quota-demo
spec:
containers:
- name: pod-quota-demo
image: nginx
#创建deployment
kubectl create -f quota-deploy.yaml
#查看deployment详细信息(可以看出只创建了一个pod)
kubectl get deployment -n andriy-dang deploy-quota-demo -o yaml
status:
availableReplicas: 1
kubectl describe deployment deploy-quota-demo -n andriy-dang
Name: deploy-quota-demo
Namespace: andriy-dang
CreationTimestamp: Wed, 14 Mar 2018 13:45:08 +0800
Labels: purpose=quota-demo
Annotations: deployment.kubernetes.io/revision=1
Selector: purpose=quota-demo
Replicas: 3 desired | 1 updated | 1 total | 1 available | 2 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: purpose=quota-demo
Containers:
pod-quota-demo:
Image: nginx
Port: <none>
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available False MinimumReplicasUnavailable
ReplicaFailure True FailedCreate
Progressing True ReplicaSetUpdated
OldReplicaSets: <none>
NewReplicaSet: deploy-quota-demo-6fc6b469cb (1/3 replicas created)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 24s deployment-controller Scaled up replica set deploy- quota-demo-6fc6b469cb to 3
2、为namespace设置CPU配额
#设置cpu资源配额(请求为0.5,最大为1)
编写 quota-cpu.yaml
apiVersion: v1
kind: LimitRange
metadata:
name: cpu-limit-range
spec:
limits:
- default:
cpu: 1
defaultRequest:
cpu: 0.5
type: Container
#为andriy-dang设置配额
kubectl create -f quota-cpu.yaml --namespace=andriy-dang
#创建Pod(不指定CPU值,该容器会被赋予一个默认的CPU请求值0.5和一个默认的CPU限额值1)
编写 cpu-test.yaml
apiVersion: v1
kind: Pod
metadata:
name: cpu-test
namespace: andriy-dang
spec:
containers:
- name: cpu-test
image: nginx
#查看Pod配置
kubectl get pod -n andriy-dang cpu-test -o yaml
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: cpu-test
resources:
lim