Skip to content

Commit 6784894

Browse files
authored
Merge pull request #20260 from girikuncoro/scheduler-tune-id
Translate scheduler performance tuning into bahasa indonesia
2 parents 8969328 + f9ef26b commit 6784894

File tree

1 file changed

+160
-0
lines changed

1 file changed

+160
-0
lines changed
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
---
2+
title: Penyetelan Kinerja Penjadwal
3+
content_template: templates/concept
4+
weight: 70
5+
---
6+
7+
{{% capture overview %}}
8+
9+
{{< feature-state for_k8s_version="v1.14" state="beta" >}}
10+
11+
[kube-scheduler](/docs/concepts/scheduling/kube-scheduler/#kube-scheduler)
12+
merupakan penjadwal (_scheduler_) Kubernetes bawaan yang bertanggung jawab
13+
terhadap penempatan Pod-Pod pada seluruh Node di dalam sebuah klaster.
14+
15+
Node-Node di dalam klaster yang sesuai dengan syarat-syarat penjadwalan dari
16+
sebuah Pod disebut sebagai Node-Node layak (_feasible_). Penjadwal mencari Node-Node
17+
layak untuk sebuah Pod dan kemudian menjalankan fungsi-fungsi untuk menskor Node-Node tersebut, memilih sebuah Node dengan skor tertinggi di antara
18+
Node-Node layak lainnya, di mana Pod akan dijalankan. Penjadwal kemudian memberitahu
19+
API server soal keputusan ini melalui sebuah proses yang disebut _Binding_.
20+
21+
Laman ini menjelaskan optimasi penyetelan (_tuning_) kinerja yang relevan
22+
untuk klaster Kubernetes berskala besar.
23+
24+
{{% /capture %}}
25+
26+
{{% capture body %}}
27+
28+
Pada klaster berskala besar, kamu bisa menyetel perilaku penjadwal
29+
untuk menyeimbangkan hasil akhir penjadwalan antara latensi (seberapa cepat Pod-Pod baru ditempatkan)
30+
dan akurasi (seberapa akurat penjadwal membuat keputusan penjadwalan yang tepat).
31+
32+
Kamu bisa mengonfigurasi setelan ini melalui pengaturan `percentageOfNodesToScore` pada kube-scheduler.
33+
Pengaturan KubeSchedulerConfiguration ini menentukan sebuah ambang batas untuk
34+
penjadwalan Node-Node di dalam klaster kamu.
35+
36+
### Pengaturan Ambang Batas
37+
38+
Opsi `percentageOfNodesToScore` menerima semua angka numerik antara 0 dan 100.
39+
Angka 0 adalah angka khusus yang menandakan bahwa kube-scheduler harus menggunakan
40+
nilai bawaan.
41+
Jika kamu mengatur `percentageOfNodesToScore` dengan angka di atas 100, kube-scheduler
42+
akan membulatkan ke bawah menjadi 100.
43+
44+
Untuk mengubah angkanya, sunting berkas konfigurasi kube-scheduler (biasanya `/etc/kubernetes/config/kube-scheduler.yaml`),
45+
lalu _ulang kembali_ kube-scheduler.
46+
47+
Setelah kamu selesai menyunting, jalankan perintah
48+
```bash
49+
kubectl get componentstatuses
50+
```
51+
untuk memverifikasi komponen kube-scheduler berjalan dengan baik (_healthy_). Keluarannya kira-kira seperti ini:
52+
```
53+
NAME STATUS MESSAGE ERROR
54+
controller-manager Healthy ok
55+
scheduler Healthy ok
56+
...
57+
```
58+
59+
## Ambang Batas Penskoran Node {#persentase-penskoran-node}
60+
61+
Untuk meningkatan kinerja penjadwalan, kube-scheduler dapat berhenti mencari
62+
Node-Node yang layak saat sudah berhasil menemukannya. Pada klaster berskala besar,
63+
hal ini menghemat waktu dibandingkan dengan pendekatan awam yang mengecek setiap Node.
64+
65+
Kamu bisa mengatur ambang batas untuk menentukan berapa banyak jumlah Node minimal yang dibutuhkan, sebagai
66+
persentase bagian dari seluruh Node di dalam klaster kamu. kube-scheduler akan mengubahnya menjadi
67+
bilangan bulat berisi jumlah Node. Saat penjadwalan, jika kube-scheduler mengidentifikasi
68+
cukup banyak Node-Node layak untuk melewati jumlah persentase yang diatur, maka kube-scheduler
69+
akan berhenti mencari Node-Node layak dan lanjut ke [fase penskoran] (/docs/concepts/scheduling/kube-scheduler/#kube-scheduler-implementation).
70+
71+
[Bagaimana penjadwal mengecek Node](#bagaimana-penjadwal-mengecek-node) menjelaskan proses ini secara detail.
72+
73+
### Ambang Batas Bawaan
74+
75+
Jika kamu tidak mengatur sebuah ambang batas, maka Kubernetes akan
76+
menghitung sebuah nilai menggunakan pendekatan linier, yaitu 50% untuk klaster dengan 100 Node,
77+
serta 10% untuk klaster dengan 5000 Node.
78+
79+
Artinya, kube-scheduler selalu menskor paling tidak 5% dari klaster kamu, terlepas dari
80+
seberapa besar klasternya, kecuali kamu secara eksplisit mengatur `percentageOfNodesToScore`
81+
menjadi lebih kecil dari 5.
82+
83+
Jika kamu ingin penjadwal untuk memasukkan seluruh Node di dalam klaster ke dalam penskoran,
84+
maka aturlah `percentageOfNodesToScore` menjadi 100.
85+
86+
## Contoh
87+
88+
Contoh konfigurasi di bawah ini mengatur `percentageOfNodesToScore` menjadi 50%.
89+
90+
```yaml
91+
apiVersion: kubescheduler.config.k8s.io/v1alpha1
92+
kind: KubeSchedulerConfiguration
93+
algorithmSource:
94+
provider: DefaultProvider
95+
96+
...
97+
98+
percentageOfNodesToScore: 50
99+
```
100+
101+
102+
## Menyetel percentageOfNodesToScore
103+
104+
`percentageOfNodesToScore` merupakan angka 1 sampai 100 dengan
105+
nilai bawaan yang dihitung berdasarkan ukuran klaster. Di sini juga terdapat
106+
batas bawah yang telah ditetapkan, yaitu 50 Node.
107+
108+
{{< note >}}Pada klaster dengan kurang dari 50 Node layak, penjadwal masih
109+
terus memeriksa seluruh Node karena Node-Node layak belum mencukupi supaya
110+
penjadwal dapat menghentikan proses pencarian lebih awal.
111+
112+
Pada klaster kecil, jika kamu mengatur `percentageOfNodesToScore` dengan angka kecil,
113+
pengaturan ini hampir atau sama sekali tidak berpengaruh, karena alasan yang sama.
114+
115+
Jika klaster kamu punya ratusan Node, gunakan angka bawaan untuk opsi konfigurasi ini.
116+
Mengubah angkanya kemungkinan besar tidak akan mengubah kinerja penjadwal secara berarti.
117+
{{< /note >}}
118+
119+
Sebuah catatan penting yang perlu dipertimbangkan saat mengatur angka ini adalah
120+
ketika klaster dengan jumlah Node sedikit diperiksa untuk kelayakan, beberapa Node
121+
tidak dikirim untuk diskor bagi sebuah Pod. Hasilnya, sebuah Node yang mungkin memiliki
122+
nilai lebih tinggi untuk menjalankan Pod tersebut bisa saja tidak diteruskan ke fase penskoran.
123+
Hal ini berdampak pada penempatan Pod yang kurang ideal.
124+
125+
Kamu sebaiknya menghindari pengaturan `percentageOfNodesToScore` menjadi sangat rendah,
126+
agar kube-scheduler tidak seringkali membuat keputusan penempatan Pod yang buruk.
127+
Hindari pengaturan persentase di bawah 10%, kecuali _throughput_ penjadwal sangat penting
128+
untuk aplikasi kamu dan skor dari Node tidak begitu penting. Dalam kata lain, kamu
129+
memilih untuk menjalankan Pod pada Node manapun selama Node tersebut layak.
130+
131+
## Bagaimana Penjadwal Mengecek Node
132+
133+
Bagian ini ditujukan untuk kamu yang ingin mengerti bagaimana fitur ini bekerja secara internal.
134+
135+
Untuk memberikan semua Node di dalam klaster sebuah kesempatan yang adil untuk
136+
dipertimbangkan dalam menjalankan Pod, penjadwal mengecek Node satu persatu
137+
secara _round robin_. Kamu dapat membayangkan Node-Node ada di dalam sebuah array.
138+
Penjadwal mulai dari indeks array pertama dan mengecek kelayakan dari Node sampai
139+
jumlahnya telah mencukupi sesuai dengan `percentageOfNodesToScore`. Untuk Pod berikutnya,
140+
penjadwal melanjutkan dari indeks array Node yang terhenti ketika memeriksa
141+
kelayakan Node-Node untuk Pod sebelumnya.
142+
143+
Jika Node-Node berada di beberapa zona, maka penjadwal akan mengecek Node satu persatu
144+
pada seluruh zona untuk memastikan bahwa Node-Node dari zona berbeda masuk dalam pertimbangan
145+
kelayakan. Sebagai contoh, ada 6 Node di dalam 2 zona:
146+
147+
```
148+
Zona 1: Node 1, Node 2, Node 3, Node 4
149+
Zona 2: Node 5, Node 6
150+
```
151+
152+
Penjadwal mempertimbangkan kelayakan dari Node-Node tersebut dengan urutan berikut:
153+
154+
```
155+
Node 1, Node 5, Node 2, Node 6, Node 3, Node 4
156+
```
157+
158+
Setelah semua Node telah dicek, penjadwal akan kembali pada Node 1.
159+
160+
{{% /capture %}}

0 commit comments

Comments
 (0)