我建立了一个基于Kubernetes的自助服务平台,我们在该平台上为每个团队创建名称空间,并允许他们“在名称空间内做他们想做的事”(我们设置了资源限制,因此没有人可以杀死整个集群)。
但是,现在我想在整个组织中实施某种标准。例如,我希望每个podSpec都定义自己的资源限制,并且我希望每个资源都有一个标签来指定其所属的应用程序。
是否存在一种机制,该机制将允许API服务器根据一组规则检查正在应用的清单,如果失败,则清单会被拒绝。
例如,以下清单将被拒绝,因为它既没有标签,也没有设置资源限制。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
但是以下清单将成功,因为它满足所有规则:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: foobar spec: selector: matchLabels: app: nginx replicas: 2 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80 resources: limits: cpu: "1" requests: cpu: "0.5"