Kem Intensif DevOps · Pelajaran

Keutamaan Pod dan Pendahuluan

Pelajari cara PriorityClasses menyusun kedudukan Pod dan cara penjadual boleh mendahului Pod berkeutamaan lebih rendah untuk memberi ruang kepada beban kerja kritikal.

Pelajaran 4 daripada 413 langkah

Keutamaan Pod dan Pendahuluan ialah pelajaran Kem Intensif DevOps percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.

Tidak Semua Pod Sama

Apabila kluster penuh, sesetengah beban kerja lebih penting daripada yang lain. Keutamaan Pod membolehkan anda memberitahu Kubernetes Pod mana yang patut memenangi persaingan untuk mendapatkan sumber.

Apakah PriorityClass?

PriorityClass ialah objek seluruh kluster yang memetakan nama kepada nilai integer. Nombor yang lebih tinggi bermaksud keutamaan yang lebih tinggi.

apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: high-priority
value: 1000000
globalDefault: false
description: 'For critical production workloads'

Menetapkan Keutamaan pada Pod

Pod memilih kelas dengan priorityClassName. Penjadual membaca nilai angka daripada kelas yang dirujuk.

apiVersion: v1
kind: Pod
metadata:
  name: critical-app
spec:
  priorityClassName: high-priority
  containers:
  - name: app
    image: myapp:1.0

Cara Keutamaan Mempengaruhi Penjadualan

Apabila beberapa Pod sedang menunggu, penjadual cuba menempatkan Pod berkeutamaan lebih tinggi terlebih dahulu. Keutamaan mempengaruhi tertib Pod dijadualkan.

Apakah Pengambilalihan?

Jika Pod berkeutamaan tinggi tidak dapat dijadualkan kerana kluster penuh, penjadual mungkin melakukan pengambilalihan (menyingkirkan) Pod berkeutamaan lebih rendah untuk mengosongkan ruang.

Pod yang disingkirkan kembali kepada status Menunggu dan mungkin dijadualkan semula di tempat lain.

Pengambilalihan dalam Tindakan

Bayangkan sebuah nod dipenuhi Pod berkeutamaan 100 dan sebuah Pod berkeutamaan 1000000 tiba. Penjadual boleh menyingkirkan Pod berkeutamaan rendah yang mencukupi supaya Pod kritikal itu dapat ditempatkan.

kubectl get events --field-selector reason=Preempted
# Pod default/batch-job was preempted by critical-app

Melumpuhkan Pengambilalihan

PriorityClass boleh memilih untuk tidak mengambil alih Pod lain dengan preemptionPolicy: Never. Pod sedemikian masih dijadualkan mengikut tertib keutamaan tetapi tidak akan menyingkirkan sesiapa.

apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: high-no-preempt
value: 1000000
preemptionPolicy: Never

Lalai Global

Menetapkan globalDefault: true pada PriorityClass menggunakan nilainya pada mana-mana Pod yang tidak menentukan kelas. Hanya satu kelas boleh menjadi lalai global.

Kelas Sistem Terbina Dalam

Kubernetes disertakan dengan kelas terpelihara seperti system-cluster-critical dan system-node-critical untuk komponen penting. Jangan gunakan semula kelas ini untuk aplikasi anda.

kubectl get priorityclass
# system-node-critical     2000001000
# system-cluster-critical  2000000000

Amalan Terbaik

  • Tentukan sebilangan kecil peringkat yang jelas (contohnya, kritikal, biasa, kelompok)
  • Simpan pengambilalihan untuk beban kerja yang benar-benar penting
  • Gabungkan dengan permintaan sumber supaya keputusan penjadualan tepat
  • Elakkan menjadikan semuanya berkeutamaan tinggi kerana tindakan itu menggagalkan tujuan asalnya

Keutamaan berbanding QoS

Keutamaan mengawal penjadualan dan pengambilalihan. Kelas Kualiti Perkhidmatan (daripada permintaan dan had) mengawal penyingkiran apabila nod mengalami tekanan. Kedua-duanya berkaitan tetapi merupakan mekanisme yang berbeza.

Semakan Pantas

Uji pemahaman anda tentang pengambilalihan.

Rumusan

Anda telah mempelajari bahawa PriorityClass menyusun kedudukan Pod berdasarkan nilai integer, lalu mempengaruhi tertib penjadualan. Pengambilalihan membolehkan Pod kritikal menyingkirkan Pod berkeutamaan lebih rendah apabila kluster penuh. Gunakan beberapa peringkat yang jelas dan gabungkan keutamaan dengan permintaan sumber yang tepat.

Percuma untuk bermula

Pelajari Kem Intensif DevOps dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
142
Pelajaran
568

Soalan Lazim

Adakah pelajaran “Keutamaan Pod dan Pendahuluan” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif DevOps, termasuk “Keutamaan Pod dan Pendahuluan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Keutamaan Pod dan Pendahuluan”?

Pelajari cara PriorityClasses menyusun kedudukan Pod dan cara penjadual boleh mendahului Pod berkeutamaan lebih rendah untuk memberi ruang kepada beban kerja kritikal. Anda berlatih Kem Intensif DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif DevOps?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Keutamaan Pod dan Pendahuluan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif DevOps ini?

Ya. Setiap pelajaran Kem Intensif DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Permintaan dan Had Sumber
  2. Pemilih Nod dan Afiniti
  3. Taint dan Toleransi
  4. Keutamaan Pod dan Pendahuluan
← Kembali ke Kem Intensif DevOps