此文为学习《Kubernetes权威指南》的相关笔记
学习笔记:
提高集群的资源利用率一直是中大规模集群追求的目标之一,而最常见的作法就是采用优先级方案。
与操作系统中的优先级方案相同,简而言之这种方案的做法就是:给负载以某种方式确定优先级权重,在资源不足时,优先驱逐权重较低者,在资源竞争时,优先给权重较高者让路,在K8s中,优先级抢占调度策略的核心行为为驱逐、抢占。
- 驱逐:资源不足时,综合考虑Pod的优先级、资源申请量与实际使用量等信息,确定驱逐目标。
- 抢占:当新的Pod因为资源不足而无法调度时,驱逐部分优先级较低的Pod来满足它的需求。
值得注意的事,当存在Pod互斥性的场合,调度器可以为了满足高优先级Pod的互斥性需求去驱逐其他节点上的Pod。
在本次实例中,先根据书上的内容,新建一个优先级priorityClass类型,再尝试新建一个Pod去使用它。
为了进一步实践,在后面的内容中尝试先部署一个低优先级Pod,再部署高优先级Pod去尝试抢占它的资源。
一、创建priorityClass并在Pod中使用
1、创建priorityClass配置文件priorityclass1.yaml
可以看到,PriorityClass所在的apiVersion为scheduling.k8s.io/v1beta1
除了资源对象都应该定义的apiVersion、kind、metadata外,一个PriorityClass需要定义value/globalDefault/description
apiVersion: scheduling.k8s.i