如何将此文件应用于所有命名空间:
apiVersion: v1
kind: LimitRange
metadata:
name: resource-limits
spec:
limits:
-
type: Pod
max:
cpu: 1000m
memory: 1Gi
min:
cpu: 500m
memory: 500Mi
默认情况下,它会应用到我使用的命名空间。我想让这个设置成为一个通用设置
我怎么能做到呢。把这个设为全局设置。
3条答案
按热度按时间pinkon5k1#
根据我的调查,这在manifest文件中是不可能的,但是在这里我使用bash实现了一个trick-script,如果您使用
kubectl
部署manifest,则使用下面的辅助脚本:也许你会说为什么我在一个循环中而不是在一行中应用它,方法是添加与命名空间一样多的
--namespace
标志!实际上,我尝试过这样做,但看起来kubectl
命令在通过变量传递时并不考虑多个--namespace
,如下所示:ryhaxcpt2#
在做了大量的研究之后,我得到了一个更好的解决方案,
Kyverno
,它被采用作为CNCF孵化项目的成熟度级别。它可以实现集群级别的策略,这满足了我的用例。链接在这里:https://kyverno.io/
wnavrhmk3#
使用Kyverno之类的准入控制器可以很容易地完成这一点。Kyverno具有“generate“功能,可用于基于触发器(例如创建名称空间)生成任何Kubernetes资源
下面是一个Kyverno策略实现此目的的示例。https://kyverno.io/policies/best-practices/add_ns_quota/add_ns_quota/