Могу ли я ограничить количество собственных пользовательских ресурсов, которые могут быть созданы с помощью ResourceQuota? - PullRequest
0 голосов
/ 05 июня 2019

Если у меня есть такое определение ресурса, как это:

$ kubectl get crd unifiedpushservers.push.aerogear.org
NAME                                   CREATED AT
unifiedpushservers.push.aerogear.org   2019-06-05T13:39:23Z

Можно ли создать ResourceQuota, который бы ограничивал количество пользовательских ресурсов этого типа до 1, отказываясь от попыток создания дополнительных?

Вот что я пробовал до сих пор:

apiVersion: v1
kind: ResourceQuota
metadata:
  name: unifiedpushservers-limit
spec:
  hard:
    count/unifiedpushservers.push.aerogear.org: 1

Хотя это принято и создано, кажется, что подсчет не работает, и я могу создать более одного экземпляра.


Редактировать: Если я укажу целочисленное значение поля в спецификации, например:

apiVersion: v1
kind: ResourceQuota
metadata:
  name: unifiedpushservers-limit
spec:
  hard:
    count/unifiedpushservers.push.aerogear.org: "1"

тогда я получаю следующее сообщение об ошибке при попытке создать хотя бы один экземпляр:

Error from server (Forbidden): error when creating "./deploy/crds/push_v1alpha1_unifiedpushserver_cr.yaml": unifiedpushservers.push.aerogear.org "example-unifiedpushserver" is forbidden: status unknown for quota: unifiedpushservers-limit

Это похоже на прогресс, но я мог бы уйти еще дальше, я не уверен.

Кроме того, я должен упомянуть, что я пробую это на кластере OpenShift v3.11, который возвращает следующую информацию о версии Kubernetes:

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"11+", GitVersion:"v1.11.0+d4cacc0", GitCommit:"d4cacc0", GitTreeState:"clean", BuildDate:"2018-10-10T16:38:01Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11+", GitVersion:"v1.11.0+d4cacc0", GitCommit:"d4cacc0", GitTreeState:"clean", BuildDate:"2018-11-09T15:12:26Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}

1 Ответ

3 голосов
/ 20 июня 2019

Начиная с kubernetes 1.15 Квота подсчета объектов теперь поддерживается для пользовательских пространств с именами с использованием синтаксиса count/<resource>.<group>

Например, чтобы создать квоту для пользовательского ресурса виджетов в группе API example.com, используйте count / widgets.example.com.

объект-кол-Квота

...