- 序言
- 云原生
- Kubernetes 架构
- Kubernetes 中的网络
- Pod 状态与生命周期管理
- 集群资源管理
- 控制器
- 服务发现
- 身份与权限控制
- 存储
- 集群扩展
- 资源调度
- 用户指南
- 资源对象配置
- 命令使用
- 集群安全性管理
- 访问 Kubernetes 集群
- 在 Kubernetes 中开发部署应用
- 最佳实践概览
- 在 CentOS 上部署 Kubernetes 集群
- 生产级的 Kubernetes 简化管理工具kubeadm
- 服务发现与负载均衡
- 运维管理
- 存储管理
- 集群与应用监控
- 分布式跟踪
- 服务编排管理
- 持续集成与发布
- 更新与升级
- 领域应用概览
- 微服务架构
- Service Mesh 服务网格
- 大数据
- Serverless架构
- 边缘计算
- 人工智能
- 开发指南
- CNCF
- 附录说明
管理namespace中的资源配额
当用多个团队或者用户共用同一个集群的时候难免会有资源竞争的情况发生,这时候就需要对不同团队或用户的资源使用配额做出限制。
开启资源配额限制功能
目前有两种资源分配管理相关的控制策略插件 ResourceQuota
和 LimitRange
。
要启用它们只要 API Server 的启动配置的 KUBE_ADMISSION_CONTROL
参数中加入了 ResourceQuota
的设置,这样就给集群开启了资源配额限制功能,加入 LimitRange
可以用来限制一个资源申请的范围限制,参考 为 namesapce 配置默认的内存请求与限额 和 在 namespace 中配置默认的CPU请求与限额。
两种控制策略的作用范围都是对于某一 namespace,ResourceQuota
用来限制 namespace 中所有的 Pod 占用的总的资源 request 和 limit,而 LimitRange
是用来设置 namespace 中 Pod 的默认的资源 request 和 limit 值。
资源配额分为三种类型:
- 计算资源配额
- 存储资源配额
- 对象数量配额
关于资源配额的详细信息请参考 kubernetes 官方文档 资源配额。
示例
我们为 spark-cluster
这个 namespace 设置 ResouceQuota
和 LimitRange
。
以下 yaml 文件可以在 kubernetes-handbook 的 manifests/spark-with-kubernetes-native-scheduler
目录下找到。
配置计算资源配额
配置文件:spark-compute-resources.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-resources
namespace: spark-cluster
spec:
hard:
pods: "20"
requests.cpu: "20"
requests.memory: 100Gi
limits.cpu: "40"
limits.memory: 200Gi
要想查看该配置只要执行:
kubectl -n spark-cluster describe resourcequota compute-resources
配置对象数量限制
配置文件:spark-object-counts.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
name: object-counts
namespace: spark-cluster
spec:
hard:
configmaps: "10"
persistentvolumeclaims: "4"
replicationcontrollers: "20"
secrets: "10"
services: "10"
services.loadbalancers: "2"
配置CPU和内存LimitRange
配置文件:spark-limit-range.yaml
apiVersion: v1
kind: LimitRange
metadata:
name: mem-limit-range
spec:
limits:
- default:
memory: 50Gi
cpu: 5
defaultRequest:
memory: 1Gi
cpu: 1
type: Container
default
即 limit 的值defaultRequest
即 request 的值
参考
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论