|
| 1 | +--- |
| 2 | +title: Penjadwal Kubernetes |
| 3 | +content_template: templates/concept |
| 4 | +weight: 50 |
| 5 | +--- |
| 6 | + |
| 7 | +{{% capture overview %}} |
| 8 | + |
| 9 | +Dalam Kubernetes, _scheduling_ atau penjadwalan ditujukan untuk memastikan |
| 10 | +{{< glossary_tooltip text="Pod" term_id="pod" >}} mendapatkan |
| 11 | +{{< glossary_tooltip text="Node" term_id="node" >}} sehingga |
| 12 | +{{< glossary_tooltip term_id="kubelet" >}} dapat menjalankannya. |
| 13 | + |
| 14 | +{{% /capture %}} |
| 15 | + |
| 16 | +{{% capture body %}} |
| 17 | + |
| 18 | +## Ikhtisar Penjadwalan {#penjadwalan} |
| 19 | + |
| 20 | +Sebuah penjadwal mengawasi Pod yang baru saja dibuat dan belum ada Node yang |
| 21 | +dialokasikan untuknya. Untuk setiap Pod yang ditemukan oleh penjadwal, maka |
| 22 | +penjadwal tersebut bertanggung jawab untuk menemukan Node terbaik untuk |
| 23 | +menjalankan Pod. Penjadwal dapat menetapkan keputusan penempatan ini dengan |
| 24 | +mempertimbangkan prinsip-prinsip penjadwalan yang dijelaskan di bawah ini. |
| 25 | + |
| 26 | +Jika kamu ingin memahami mengapa Pod ditempatkan pada Node tertentu, atau jika |
| 27 | +kamu berencana untuk mengimplementasikan penjadwal kustom sendiri, halaman ini |
| 28 | +akan membantu kamu belajar tentang penjadwalan. |
| 29 | + |
| 30 | +## Kube-scheduler |
| 31 | + |
| 32 | +[_Kube-scheduler_](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler/) |
| 33 | +adalah penjadwal standar untuk Kubernetes dan dijalankan sebagai bagian dari |
| 34 | +{{< glossary_tooltip text="_control plane_" term_id="control-plane" >}}. |
| 35 | +_Kube-scheduler_ dirancang agar jika kamu mau dan perlu, kamu bisa menulis |
| 36 | +komponen penjadwalan kamu sendiri dan menggunakannya. |
| 37 | + |
| 38 | +Untuk setiap Pod yang baru dibuat atau Pod yang tak terjadwal lainnya, |
| 39 | +_kube-scheduler_ memilih Node yang optimal untuk menjalankannya. Namun, setiap |
| 40 | +kontainer masuk Pod memiliki persyaratan sumber daya yang berbeda dan setiap Pod |
| 41 | +juga memiliki persyaratan yang berbeda juga. Oleh karena itu, Node yang ada |
| 42 | +perlu dipilih sesuai dengan persyaratan khusus penjadwalan. |
| 43 | + |
| 44 | +Dalam sebuah Klaster, Node yang memenuhi persyaratan penjadwalan untuk suatu Pod |
| 45 | +disebut Node _feasible_. Jika tidak ada Node yang cocok, maka Pod tetap tidak |
| 46 | +terjadwal sampai penjadwal yang mampu menempatkannya. |
| 47 | + |
| 48 | +Penjadwal menemukan Node-Node yang layak untuk sebuah Pod dan kemudian |
| 49 | +menjalankan sekumpulan fungsi untuk menilai Node-Node yang layak dan mengambil |
| 50 | +satu Node dengan skor tertinggi di antara Node-Node yang layak untuk menjalankan |
| 51 | +Pod. Penjadwal kemudian memberi tahu server API tentang keputusan ini dalam |
| 52 | +proses yang disebut dengan _binding_. |
| 53 | + |
| 54 | +Beberapa faktor yang perlu dipertimbangkan untuk keputusan penjadwalan termasuk |
| 55 | +persyaratan sumber daya individu dan kolektif, aturan kebijakan / perangkat keras / |
| 56 | +lunak, spesifikasi persamaan dan anti-persamaan, lokalitas data, interferensi |
| 57 | +antar Workloads, dan sebagainya. |
| 58 | + |
| 59 | +### Pemilihan node pada kube-scheduler {#kube-scheduler-implementation} |
| 60 | + |
| 61 | +_Kube-scheduler_ memilih node untuk pod dalam 2 langkah operasi: |
| 62 | + |
| 63 | +1. Filtering |
| 64 | +2. Scoring |
| 65 | + |
| 66 | +Langkah _filtering_ menemukan sekumpulan Nodes yang layak untuk menjadwalkan |
| 67 | +Pod. Misalnya, penyarin PodFitsResources memeriksa apakah Node kandidat |
| 68 | +memiliki sumber daya yang cukup untuk memenuhi permintaan spesifik sumber daya dari |
| 69 | +Pod. Setelah langkah ini, daftar Node akan berisi Node-node yang sesuai; |
| 70 | +seringkali, akan terisi lebih dari satu. Jika daftar itu kosong, maka Pod itu |
| 71 | +tidak (belum) dapat dijadwalkan. |
| 72 | + |
| 73 | +Pada langkah _scoring_, penjadwal memberi peringkat pada Node-node yang tersisa |
| 74 | +untuk memilih penempatan paling cocok untuk Pod. Penjadwal memberikan skor |
| 75 | +untuk setiap Node yang sudah tersaring, memasukkan skor ini pada aturan |
| 76 | +penilaian yang aktif. |
| 77 | + |
| 78 | +Akhirnya, _kube-scheduler_ memberikan Pod ke Node dengan peringkat tertinggi. |
| 79 | +Jika ada lebih dari satu node dengan skor yang sama, maka _kube-scheduler_ |
| 80 | +memilih salah satunya secara acak. |
| 81 | + |
| 82 | +Ada dua cara yang didukung untuk mengkonfigurasi perilaku penyaringan dan |
| 83 | +penilaian oleh penjadwal: |
| 84 | + |
| 85 | +1. [Aturan Penjadwalan](/docs/reference/scheduling/policies) yang memungkinkan |
| 86 | + kamu untuk mengkonfigurasi _Predicates_ untuk pemfilteran dan _Priorities_ |
| 87 | + untuk penilaian. |
| 88 | +1. [Profil Penjadwalan](/docs/reference/scheduling/profiles) yang memungkinkan |
| 89 | + kamu mengkonfigurasi _Plugin_ yang menerapkan tahapan penjadwalan berbeda, |
| 90 | + termasuk: `QueueSort`, `Filter`, `Score`, `Bind`, `Reserve`, `Permit`, dan |
| 91 | + lainnya. Kamu juga bisa mengonfigurasi _kube-scheduler_ untuk menjalankan |
| 92 | + profil yang berbeda. |
| 93 | + |
| 94 | +{{% /capture %}} |
| 95 | +{{% capture whatsnext %}} |
| 96 | +* Baca tentang [penyetelan performa penjadwal](/docs/concepts/scheduling/scheduler-perf-tuning/) |
| 97 | +* Baca tentang [pertimbangan penyebarang topologi pod](/docs/concepts/workloads/pods/pod-topology-spread-constraints/) |
| 98 | +* Baca [referensi dokumentasi](/docs/reference/command-line-tools-reference/kube-scheduler/) untuk _kube-scheduler_ |
| 99 | +* Pelajari tentang [mengkonfigurasi beberapa penjadwal](/docs/tasks/administer-cluster/configure-multiple-schedulers/) |
| 100 | +* Pelajari tentang [aturan manajemen topologi](/docs/tasks/administer-cluster/topology-manager/) |
| 101 | +* Pelajari tentang [pengeluaran tambahan Pod](/docs/concepts/configuration/pod-overhead/) |
| 102 | +{{% /capture %}} |
0 commit comments