kubernetes - 我可以限制可以使用 ResourceQuota 创建的自定义资源的数量吗?
问题描述
如果我有这样的自定义资源定义:
$ 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"}
解决方案
由于kubernetes 1.15对象计数配额现在支持使用语法的命名空间自定义资源count/<resource>.<group>
例如,要在 example.com API 组中的小部件自定义资源上创建配额,请使用 count/widgets.example.com。
推荐阅读
- javascript - 如何防止打字稿将动态导入转换为require()?
- xss - 通过 CSS 选择器的 XSS
- javascript - 如何在 React 中下载编码资产(任何类型的文件)?
- angularjs - AngularJS 1.4 掩码输入电话号码问题
- javascript - 在 Vue.js 中启用和禁用提交按钮
- python - yfinance api 返回多个代码数据
- c++ - c ++,加速比较两行数组并返回第一行但不返回第二行的程序
- c - 如何在 Eclipse C 中打开 txt 文件并将数据写入其中?
- javascript - 日期范围以加号开头
- ios - 如何在模态视图控制器中隐藏带有动画的自定义导航栏