在Kubernetes/AKS中限制Priority Class使用的可行方案有哪些?
能否通过Resource Quota限制Priority Class的使用
完全可以,Kubernetes原生Resource Quota能力支持针对指定Priority Class的资源消耗做限制,完全适配你当前多租户AKS集群的管控需求。
实现逻辑
- Resource Quota支持通过
scopeSelector指定匹配PriorityClass维度的规则,仅统计符合指定优先级的Pod的资源配额,从而实现对预留高优先级类的使用限制。 - 你可以直接禁止普通租户使用核心组件预留的优先级类,也可以按需给特定租户分配固定的高优先级Pod配额。
配置示例
以下为租户命名空间下的Resource Quota配置样例,可直接禁止普通租户使用系统预留的高优先级Class:
apiVersion: v1 kind: ResourceQuota metadata: name: restrict-reserved-priorityclass namespace: 替换为实际租户命名空间 spec: hard: pods: 0 scopeSelector: matchExpressions: - operator: In scopeName: PriorityClass values: ["system-cluster-critical", "system-node-critical", "你自行定义的其他预留优先级类名称"]
多租户适配建议
- 可以通过命名空间准入控制器,给所有新创建的租户命名空间自动注入上述Resource Quota规则,避免手动配置遗漏。
- 配合LimitRange给租户命名空间设置默认的普通优先级Class,防止开发者未显式指定Priority时被分配到高优先级类。
- 若有特殊租户需要使用预留优先级,仅需要调整对应命名空间下Resource Quota的
hard.pods值为允许的最大Pod数即可,无需修改全局规则。
内容的提问来源于stack exchange,提问作者jbnasngs
相关产品推荐
相关产品推荐

