@@ -9,22 +9,22 @@ weight: 110
9
9
Laman ini memperlihatkan bagaimana cara untuk mengatur _ probe liveness_ , _ readiness_ , dan
10
10
_ startup_ untuk Container.
11
11
12
- [ kubelet] ( /docs/admin/kubelet/ ) menggunakan _ probe liveness _ untuk mengetahui
12
+ _ Probe liveness _ digunakan oleh [ kubelet] ( /docs/admin/kubelet/ ) untuk mengetahui
13
13
kapan perlu mengulang kembali (_ restart_ ) sebuah Container. Sebagai contoh, _ probe liveness_
14
14
dapat mendeteksi _ deadlock_ , ketika aplikasi sedang berjalan tapi tidak dapat berfungsi dengan baik.
15
- Mengulang Container dengan _ state_ tersebut dapat membantu ketersediaan aplikasi lebih baik
15
+ Mengulang Container dengan _ state_ tersebut dapat membantu ketersediaan aplikasi yang lebih baik
16
16
walaupun ada kekutu (_ bug_ ).
17
17
18
- kubelet menggunakan _ probe readiness _ untuk mengetahui kapan sebuah Container telah siap untuk
19
- menerima lalu lintas jaringan. Suatu Pod dianggap siap saat semua Container di dalamnya telah
18
+ _ Probe readiness _ digunakan oleh kubelet untuk mengetahui kapan sebuah Container telah siap untuk
19
+ menerima lalu lintas jaringan ( _ traffic _ ) . Suatu Pod dianggap siap saat semua Container di dalamnya telah
20
20
siap. Sinyal ini berguna untuk mengontrol Pod-Pod mana yang digunakan sebagai _ backend_ dari Service.
21
- Ketika Pod dalam kondisi tidak siap, Pod tersebut dihapus dari _ load balancer_ Service .
21
+ Ketika Pod dalam kondisi tidak siap, Pod tersebut dihapus dari Service _ load balancer_ .
22
22
23
- kubelet menggunakan _ probe startup _ untuk mengetahui kapan sebuah aplikasi Container telah mulai berjalan.
23
+ _ Probe startup _ digunakan oleh kubelet untuk mengetahui kapan sebuah aplikasi Container telah mulai berjalan.
24
24
Jika _ probe_ tersebut dinyalakan, _ probe_ akan menonaktifkan pemeriksaan _ liveness_ dan _ readiness_ sampai
25
25
berhasil, kamu harus memastikan _ probe_ tersebut tidak mengganggu _ startup_ dari aplikasi.
26
- Mekanisme ini dapat digunakan untuk mengadopsi pemeriksaan _ liveness_ saat memulai Container yang lambat,
27
- sehingga bisa terhindar dimatikan oleh kubelet sebelum Container mulai dan berjalan.
26
+ Mekanisme ini dapat digunakan untuk mengadopsi pemeriksaan _ liveness_ pada saat memulai Container yang lambat,
27
+ untuk menghindari Container dimatikan oleh kubelet sebelum Container mulai dan berjalan.
28
28
29
29
{{% /capture %}}
30
30
@@ -39,7 +39,7 @@ sehingga bisa terhindar dimatikan oleh kubelet sebelum Container mulai dan berja
39
39
## Mendefinisikan perintah liveness
40
40
41
41
Kebanyakan aplikasi yang telah berjalan dalam waktu lama pada akhirnya akan
42
- bertransisi ke _ state_ yang rusak, dan tidak dapat pulih selain diulang kembali.
42
+ bertransisi ke _ state_ yang rusak ( _ broken _ ) , dan tidak dapat pulih kecuali diulang kembali.
43
43
Kubernetes menyediakan _ probe liveness_ untuk mendeteksi dan memperbaiki situasi tersebut.
44
44
45
45
Pada latihan ini, kamu akan membuat Pod yang menjalankan Container dari image
@@ -53,25 +53,25 @@ _Field_ `initialDelaySeconds` memberitahu kubelet untuk menunggu 5 detik sebelum
53
53
_ probe_ yang pertama. Untuk mengerjakan _ probe_ , kubelet menjalankan perintah ` cat /tmp/healthy `
54
54
pada Container tujuan. Jika perintah berhasil, kode 0 akan dikembalikan, dan kubelet menganggap
55
55
Container sedang dalam kondisi hidup (_ alive_ ) dan sehat (_ healthy_ ). Jika perintah mengembalikan
56
- kode selain 0, maka kubelet akan mematikan Container dan mengulangnya.
56
+ kode selain 0, maka kubelet akan mematikan Container dan mengulangnya kembali .
57
57
58
58
Saat dimulai, Container akan menjalankan perintah berikut:
59
59
60
60
``` shell
61
61
/bin/sh -c " touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600"
62
62
```
63
63
64
- Container memiliki berkas ` /tmp/healthy ` pada 30 detik pertama saat dijalankan.
65
- Perintah ` cat /tmp/healthy ` mengembalikan kode sukses. Setelah 30 detik berlalu ,
64
+ Container memiliki berkas ` /tmp/healthy ` pada saat 30 detik pertama setelah dijalankan.
65
+ Kemudian, perintah ` cat /tmp/healthy ` mengembalikan kode sukses. Namun setelah 30 detik,
66
66
` cat /tmp/healthy ` mengembalikan kode gagal.
67
67
68
- Buat sebuah Pod:
68
+ Buatlah sebuah Pod:
69
69
70
70
``` shell
71
71
kubectl apply -f https://k8s.io/examples/pods/probe/exec-liveness.yaml
72
72
```
73
73
74
- Dalam 30 detik pertama, lihat _ event_ dari Pod:
74
+ Dalam 30 detik pertama, lihatlah _ event_ dari Pod:
75
75
76
76
``` shell
77
77
kubectl describe pod liveness-exec
@@ -89,7 +89,7 @@ FirstSeen LastSeen Count From SubobjectPath Type
89
89
23s 23s 1 {kubelet worker0} spec.containers{liveness} Normal Started Started container with docker id 86849c15382e
90
90
```
91
91
92
- Setelah 35 detik, lihat lagi _ event_ Pod tersebut:
92
+ Setelah 35 detik, lihatlah lagi _ event_ Pod tersebut:
93
93
94
94
``` shell
95
95
kubectl describe pod liveness-exec
@@ -115,7 +115,7 @@ Tunggu 30 detik lagi, dan verifikasi bahwa Container telah diulang kembali:
115
115
kubectl get pod liveness-exec
116
116
```
117
117
118
- Keluaran perintah tersebut memperlihatkan bahwa jumlah ` RESTARTS ` meningkat:
118
+ Keluaran perintah tersebut memperlihatkan bahwa jumlah ` RESTARTS ` telah meningkat:
119
119
120
120
```
121
121
NAME READY STATUS RESTARTS AGE
@@ -129,22 +129,22 @@ berkas konfigurasi untuk Pod yang menjalankan Container dari image `k8s.gcr.io/l
129
129
130
130
{{< codenew file="pods/probe/http-liveness.yaml" >}}
131
131
132
- Pada berkas konfigurasi tersebut, kamu dapat melihat Pod memiliki satu buah Container.
132
+ Pada berkas konfigurasi tersebut, kamu dapat melihat Pod memiliki sebuah Container.
133
133
_ Field_ ` periodSeconds ` menentukan bahwa kubelet harus mengerjakan _ probe liveness_ setiap 3 detik.
134
134
_ Field_ ` initialDelaySeconds ` memberitahu kubelet untuk menunggu 3 detik sebelum mengerjakan
135
135
_ probe_ yang pertama. Untuk mengerjakan _ probe_ tersebut, kubelet mengirimkan sebuah permintaan
136
136
GET HTTP ke server yang sedang berjalan di dalam Container dan mendengarkan (_ listen_ ) pada porta 8080.
137
137
Jika _ handler path_ ` /healthz ` yang dimiliki server mengembalikan kode sukses, kubelet menganggap
138
138
Container sedang dalam kondisi hidup dan sehat. Jika _ handler_ mengembalikan kode gagal,
139
- kubelet mematikan Container dan mengulangnya.
139
+ kubelet mematikan Container dan mengulangnya kembali .
140
140
141
141
Kode yang lebih besar atau sama dengan 200 dan kurang dari 400 mengindikasikan kesuksesan.
142
142
Kode selain ini mengindikasikan kegagalan.
143
143
144
144
Kamu dapat melihat kode program untuk server ini pada [ server.go] (https://github.com/kubernetes/kubernetes/blob/{{ < param "githubbranch" >}}/test/images/agnhost/liveness/server.go).
145
145
146
- Untuk 10 detik pertama setelah Container hidup, _ handler_ ` /healthz ` mengembalikan
147
- status 200. Setelah ini , _ handler_ mengembalikan status 500.
146
+ Untuk 10 detik pertama setelah Container hidup ( _ alive _ ) , _ handler_ ` /healthz ` mengembalikan
147
+ status 200. Setelah itu , _ handler_ mengembalikan status 500.
148
148
149
149
``` go
150
150
http.HandleFunc (" /healthz" , func (w http.ResponseWriter , r *http.Request ) {
@@ -159,17 +159,17 @@ http.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) {
159
159
})
160
160
```
161
161
162
- kubelet mulai memeriksa kesehatan (_ health check_ ) 3 detik setelah Container dimulai,
162
+ Pemeriksaan kesehatan (_ health check_ ) dilakukan kubelet 3 detik setelah Container dimulai,
163
163
sehingga beberapa pemeriksaaan pertama akan berhasil. Namun setelah 10 detik,
164
- pemeriksaan akan gagal, dan kubelet akan mematikan dan mengulang Container.
164
+ pemeriksaan akan gagal, dan kubelet akan mematikan dan mengulang Container kembali .
165
165
166
- Untuk mencoba pemeriksaan _ liveness_ HTTP, mari membuat sebuah Pod:
166
+ Untuk mencoba pemeriksaan _ liveness_ HTTP, marilah membuat sebuah Pod:
167
167
168
168
``` shell
169
169
kubectl apply -f https://k8s.io/examples/pods/probe/http-liveness.yaml
170
170
```
171
171
172
- Setelah 10 detik, lihat _ event_ Pod untuk memverifikasi bahwa _ probe liveness_
172
+ Setelah 10 detik, lihatlah _ event_ Pod untuk memverifikasi bahwa _ probe liveness_
173
173
telah gagal dan Container telah diulang kembali:
174
174
175
175
``` shell
@@ -180,37 +180,37 @@ Untuk rilis sebelum v1.13 (termasuk v1.13), jika variabel lingkungan
180
180
` http_proxy ` (atau ` HTTP_PROXY ` ) telah diatur pada Node dimana Pod
181
181
berjalan, _ probe liveness_ HTTP akan menggunakan proksi tersebut.
182
182
Untuk rilis setelah v1.13, pengaturan variabel lingkungan pada proksi HTTP lokal
183
- tidak mempengaruhi _ probe liveness) HTTP.
183
+ tidak mempengaruhi _ probe liveness _ HTTP.
184
184
185
185
## Mendefinisikan probe liveness TCP
186
186
187
187
Jenis ketiga dari _ probe liveness_ menggunakaan sebuah soket TCP. Dengan konfigurasi ini,
188
188
kubelet akan mencoba untuk membuka soket pada Container kamu dengan porta tertentu.
189
- Jika koneksi dapat sukses terbentuk, maka Container dianggap dalam kondisi sehat.
189
+ Jika koneksi dapat terbentuk dengan sukses , maka Container dianggap dalam kondisi sehat.
190
190
Namun jika tidak berhasil terbentuk, maka Container dianggap gagal.
191
191
192
192
{{< codenew file="pods/probe/tcp-liveness-readiness.yaml" >}}
193
193
194
194
Seperti yang terlihat, konfigurasi untuk pemeriksaan TCP cukup mirip dengan
195
195
pemeriksaan HTTP. Contoh ini menggunakan _ probe readiness_ dan _ liveness_ .
196
- kubelet akan mengirimkan _ probe readiness_ yang pertama, 5 detik setelah
197
- Container mulai dijalankan. kubelet akan mencoba untuk terhubung dengan Container
196
+ _ Probe readiness_ yang pertama akan dikirimkan oleh kubelet , 5 detik setelah
197
+ Container mulai dijalankan. Container akan coba dihubungkan oleh kubelet dengan
198
198
` goproxy ` pada porta 8080. Jika _ probe_ berhasil, maka Pod akan ditandai menjadi
199
- _ siap _ . kubelet akan lanjut mengerjakan pemeriksaan ini setiap 10 detik.
199
+ _ ready _ . Pemeriksaan ini akan dilanjutkan oleh kubelet setiap 10 detik.
200
200
201
201
Selain _ probe readiness_ , _ probe liveness_ juga termasuk di dalam konfigurasi.
202
- kubelet akan menjalankan _ probe liveness_ yang pertama, 15 detik setelah Container
202
+ _ Probe liveness_ yang pertama akan dijalankan oleh kubelet , 15 detik setelah Container
203
203
mulai dijalankan. Sama seperti _ probe readiness_ , kubelet akan mencoba untuk
204
204
terhubung dengan Container ` goproxy ` pada porta 8080. Jika _ probe liveness_ gagal,
205
205
maka Container akan diulang kembali.
206
206
207
- Untuk mencoba pemeriksaan _ liveness_ TCP, mari membuat sebuah Pod:
207
+ Untuk mencoba pemeriksaan _ liveness_ TCP, marilah membuat sebuah Pod:
208
208
209
209
``` shell
210
210
kubectl apply -f https://k8s.io/examples/pods/probe/tcp-liveness-readiness.yaml
211
211
```
212
212
213
- Setelah 15 detik, lihat _ event_ Pod untuk memverifikasi _ probe liveness_ tersebut:
213
+ Setelah 15 detik, lihatlah _ event_ Pod untuk memverifikasi _ probe liveness_ tersebut:
214
214
215
215
``` shell
216
216
kubectl describe pod goproxy
@@ -240,11 +240,11 @@ Terkadang kamu harus berurusan dengan aplikasi peninggalan (_legacy_) yang
240
240
memerlukan waktu tambahan untuk mulai berjalan pada saat pertama kali diinisialisasi.
241
241
Pada kasus ini, cukup rumit untuk mengatur parameter _probe liveness_ tanpa
242
242
mengkompromikan respons yang cepat terhadap _deadlock_ yang memotivasi digunakannya
243
- _probe_ tersebut. Triknya adalah untuk mengatur _probe startup_ dengan perintah yang sama,
244
- pemeriksaan HTTP ataupun TCP, dengan ` failureThreshold * periodSeconds` yang
243
+ probe_ tersebut. Triknya adalah mengatur _probe startup_ dengan perintah yang sama,
244
+ baik pemeriksaan HTTP ataupun TCP, dengan ` failureThreshold * periodSeconds` yang
245
245
mencukupi untuk kemungkinan waktu memulai yang terburuk.
246
246
247
- Jadi , contoh sebelumnya menjadi :
247
+ Sehingga , contoh sebelumnya menjadi :
248
248
249
249
` ` ` yaml
250
250
ports:
@@ -276,7 +276,7 @@ Jika _probe startup_ tidak pernah berhasil, maka Container akan dimatikan setela
276
276
277
277
# # Mendefinisikan probe readiness
278
278
279
- Terkadang aplikasi tidak dapat melayani lalu lintas jaringan (_traffic_) sementara.
279
+ Terkadang aplikasi tidak dapat melayani lalu lintas jaringan sementara.
280
280
Contohnya, aplikasi mungkin perlu untuk memuat data besar atau berkas konfigurasi
281
281
saat dimulai, atau aplikasi bergantung pada layanan eksternal setelah dimulai.
282
282
Pada kasus-kasus ini, kamu tidak ingin mematikan aplikasi, tetapi kamu tidak
@@ -329,9 +329,9 @@ Nilai minimalnya adalah 0.
329
329
setelah mengalami kegagalan. Nilai bawaannya adalah 1. Nilanya harus 1 untuk _liveness_.
330
330
Nilai minimalnya adalah 1.
331
331
* `failureThreshold`: Ketika sebuah Pod dimulai dan _probe_ mengalami kegagalan, Kubernetes
332
- akan mencoba beberapa kali sesuai nilai `failureThreshold` sebelum menyerah. Menyerah karena
333
- kasus _probe liveness_ akan membuat Container diulang kembali. Untuk _probe readiness_, menyerah
334
- akaan menandai Pod menjadi "tidak siap" (Unready ). Nilai bawaannya adalah 3. Nilai minimalnya adalah 1.
332
+ akan mencoba beberapa kali sesuai nilai `failureThreshold` sebelum menyerah. Menyerah dalam
333
+ kasus _probe liveness_ berarti Container akan diulang kembali. Untuk _probe readiness_, menyerah
334
+ akan menandai Pod menjadi "tidak siap" (_Unready_ ). Nilai bawaannya adalah 3. Nilai minimalnya adalah 1.
335
335
336
336
[_Probe_ HTTP](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#httpgetaction-v1-core)
337
337
memiliki _field-field_ tambahan yang bisa diatur melalui `httpGet` :
@@ -340,18 +340,18 @@ memiliki _field-field_ tambahan yang bisa diatur melalui `httpGet`:
340
340
juga ingin mengatur "Host" pada httpHeaders.
341
341
* `scheme`: Skema yang digunakan untuk terhubung pada host (HTTP atau HTTPS). Nilai bawaannya adalah HTTP.
342
342
* `path`: _Path_ untuk mengakses server HTTP.
343
- * `httpHeaders`: _Header_ khusus yang diatur melalui permintaan. HTTP memperbolehkan _header_ yang berulang.
343
+ * `httpHeaders`: _Header_ khusus yang diatur dalam permintaan HTTP . HTTP memperbolehkan _header_ yang berulang.
344
344
* `port`: Nama atau angka dari porta untuk mengakses Container. Angkanya harus ada di antara 1 sampai 65535.
345
345
346
346
Untuk sebuah _probe_ HTTP, kubelet mengirimkan permintaan HTTP untuk _path_ yang ditentukan
347
- dan porta untuk mengerjakan pemeriksaan. kubelet mengirimkan _probe_ untuk alamat IP Pod,
347
+ dan porta untuk mengerjakan pemeriksaan. _Probe_ dikirimkan oleh kubelet untuk alamat IP Pod,
348
348
kecuali saat alamat digantikan oleh _field_ opsional pada `httpGet`. Jika _field_ `scheme`
349
349
diatur menjadi `HTTPS`, maka kubelet mengirimkan permintaan HTTPS dan melewati langkah verifikasi
350
350
sertifikat. Pada skenario kebanyakan, kamu tidak menginginkan _field_ `host`.
351
351
Berikut satu skenario yang memerlukan `host`. Misalkan Container mendengarkan permintaan
352
352
melalui 127.0.0.1 dan _field_ `hostNetwork` pada Pod bernilai true. Kemudian `host`, melalui
353
353
` httpGet` , harus diatur menjadi 127.0.0.1. Jika Pod kamu bergantung pada host virtual, dimana
354
- untuk kasus-kasus umum, kamu tidak perlu menggunakan `host`, tetapi perlu mengaatur _header_
354
+ untuk kasus-kasus umum, kamu tidak perlu menggunakan `host`, tetapi perlu mengatur _header_
355
355
` Host` pada `httpHeaders`.
356
356
357
357
Untuk _probe_ TCP, kubelet membuat koneksi _probe_ pada Node, tidak pada Pod, yang berarti bahwa
0 commit comments