Skip to content

Latest commit

 

History

History
37 lines (28 loc) · 1.72 KB

0002-k8s-priority-class.md

File metadata and controls

37 lines (28 loc) · 1.72 KB

กำหนดความสำคัญของ Pod ใน Kubernetes ด้วย Priority Class

ถ้าเราต้องการให้บาง pod ใน kubernetes มีความสำคัญมากกว่า pod อื่น ๆ เช่น ingress controller หรือ database เราสามารถกำหนด priority ของ pod ได้ด้วย Priority Class

หลักการทำงาน

  1. ถ้ามี pod ที่อยู่ใน status pending อยู่หลาย pod, kubernetes จะพยายามเอา pod ที่ priority สูงสุดมา schedule ก่อน ถ้า pod นั้นไม่สามารถ schedule ได้ kubernetes จะ schedule pod ที่ priority ต่ำกว่าตามลงมา

  2. ถ้า node ไม่มีที่เหลือให้ schedule pod, kubernetes จะลบ pod ที่ priority ต่ำกว่า เพื่อให้มีที่ที่สามารถ schedule pod ที่มี priority สูงกว่าได้

สิ่งที่เราต้องทำ

  1. สร้าง Priority Class

    apiVersion: scheduling.k8s.io/v1
    kind: PriorityClass
    metadata:
    name: high-priority
    value: 1000000
  2. เวลาสร้าง pod ให้กำหนด priorityClassName ลงไปใน pod spec

    apiVersion: v1
    kind: Pod
    metadata:
    name: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
      priorityClassName: high-priority