Skip to content

Commit bd3ddc5

Browse files
authored
Merge pull request #19909 from ariscahyadi/kube-scheduler-id-local
Kube-scheduler ID Localization
2 parents 1c4fc64 + 4ff0022 commit bd3ddc5

File tree

2 files changed

+107
-0
lines changed

2 files changed

+107
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: "Penjadwalan"
3+
weight: 90
4+
---
5+
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
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

Comments
 (0)