Налаштування квот для обʼєктів API
Ця сторінка показує, як налаштувати квоти для обʼєктів API, включаючи PersistentVolumeClaims та Services. Квота обмежує кількість обʼєктів певного типу, які можуть бути створені в просторі імен. Ви вказуєте квоти в обʼєкті ResourceQuota.
Перш ніж ви розпочнете
Вам треба мати кластер Kubernetes, а також інструмент командного рядка kubectl має бути налаштований для роботи з вашим кластером. Рекомендується виконувати ці настанови у кластері, що має щонайменше два вузли, які не виконують роль вузлів управління. Якщо у вас немає кластера, ви можете створити його, за допомогою minikube або використовувати одну з цих пісочниць:
Для перевірки версії введітьkubectl version
.Створення простору імен
Створіть простір імен, щоб ресурси, які ви створюєте у цьому завданні, були ізольовані від решти вашого кластера.
kubectl create namespace quota-object-example
Створення ResourceQuota
Ось файл конфігурації для обʼєкта ResourceQuota:
apiVersion: v1
kind: ResourceQuota
metadata:
name: object-quota-demo
spec:
hard:
persistentvolumeclaims: "1"
services.loadbalancers: "2"
services.nodeports: "0"
Створіть ResourceQuota:
kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects.yaml --namespace=quota-object-example
Перегляньте докладну інформацію про ResourceQuota:
kubectl get resourcequota object-quota-demo --namespace=quota-object-example --output=yaml
У виводі показано, що в просторі імен quota-object-example може бути максимум один PersistentVolumeClaim, максимум два Services типу LoadBalancer та жодного Services типу NodePort.
status:
hard:
persistentvolumeclaims: "1"
services.loadbalancers: "2"
services.nodeports: "0"
used:
persistentvolumeclaims: "0"
services.loadbalancers: "0"
services.nodeports: "0"
Створення PersistentVolumeClaim
Ось файл конфігурації для обʼєкта PersistentVolumeClaim:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-quota-demo
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
Створіть PersistentVolumeClaim:
kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects-pvc.yaml --namespace=quota-object-example
Перевірте, що PersistentVolumeClaim було створено:
kubectl get persistentvolumeclaims --namespace=quota-object-example
У виводі показано, що PersistentVolumeClaim існує і має статус Pending:
NAME STATUS
pvc-quota-demo Pending
Спроба створити другий PersistentVolumeClaim
Ось файл конфігурації для другого PersistentVolumeClaim:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-quota-demo-2
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 4Gi
Спробуйте створити другий PersistentVolumeClaim:
kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects-pvc-2.yaml --namespace=quota-object-example
У виводі показано, що другий PersistentVolumeClaim не був створений, оскільки це перевищило квоту для простору імен.
persistentvolumeclaims "pvc-quota-demo-2" is forbidden:
exceeded quota: object-quota-demo, requested: persistentvolumeclaims=1,
used: persistentvolumeclaims=1, limited: persistentvolumeclaims=1
Примітки
Ці рядки використовуються для ідентифікації обʼєктів API, які можуть бути обмежені за допомогою квот:
Рядок | Обʼєкт API |
---|---|
"pods" | Pod |
"services" | Service |
"replicationcontrollers" | ReplicationController |
"resourcequotas" | ResourceQuota |
"secrets" | Secret |
"configmaps" | ConfigMap |
"persistentvolumeclaims" | PersistentVolumeClaim |
"services.nodeports" | Service типу NodePort |
"services.loadbalancers" | Service типу LoadBalancer |
Очищення
Видаліть свій простір імен:
kubectl delete namespace quota-object-example
Що далі
Для адміністраторів кластера
Налаштуйте типові запити та ліміти памʼяті для простору імен
Налаштуйте типові запити та ліміти центрального процесора для простору імен
Налаштуйте мінімальні та максимальні обмеження памʼяті для простору імен
Налаштуйте мінімальні та максимальні обмеження центрального процесора для простору імен
Налаштуйте квоти памʼяті та центрального процесора для простору імен