CKA 版本:1.32
第六套题是涉及PriorityClass相关。
注意:本文不是题目,只是为了学习相关知识点做的实验。仅供参考
实验目的
创建一套PriorityClass ,验证PriorityClass的运作策略。
1 环境准备
创建2个pc,一个为高优先度,一个为低优先度
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:name: high-priority
value: 2000
globalDefault: false
description: "此优先级类为高优先度"
---
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:name: low-priority
value: 1000
globalDefault: false
description: "此优先级类为低优先度。"
查看pc
kubectl get pc
可以看到高低优先度的服务已经创建完成。
2 创建低优先度的pod
由于我是3台机器(1台有master 污点),每台10个G 内存,所以我创建2个副本的pod,并且每台申请7G内存。来验证抢占和优先级
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx
spec:replicas: 2selector:matchLabels:run: nginxtemplate:metadata:labels:run: nginxspec:containers:- name: nginximage: docker.m.daocloud.io/library/nginx:stable-alpineports:- containerPort: 80resources:limits:memory: 8Grequests:memory: 8GpriorityClassName: low-priority
创建高优先度的pod
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-high
spec:replicas: 2selector:matchLabels:run: nginx-hightemplate:metadata:labels:run: nginx-highspec:containers:- name: nginx-highimage: docker.m.daocloud.io/library/nginx:stable-alpineports:- containerPort: 80resources:limits:memory: 8Grequests:memory: 8GpriorityClassName: high-priority
3 验证deployment的状态
,通过查看deployment的状态,可以发现前期低优先度的deployment正常运行,当高优先度的deployment需要被调度后,会抢占资源驱逐低优先度的pod,让高优先度的pod调度。
查看pod状态,发现高优先度的运行,低优先度的调度中。
参考链接:
https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/pod-priority-preemption/