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/