Localize liveness readiness startu probes page into Bahasa Indonesia
parent
0f91086750
commit
838d1b180c
|
@ -0,0 +1,374 @@
|
||||||
|
---
|
||||||
|
title: Mengatur Probe Liveness, Readiness dan Startup
|
||||||
|
content_template: templates/task
|
||||||
|
weight: 110
|
||||||
|
---
|
||||||
|
|
||||||
|
{{% capture overview %}}
|
||||||
|
|
||||||
|
Laman ini memperlihatkan bagaimana cara untuk mengatur _probe liveness_, _readiness_, dan
|
||||||
|
_startup_ untuk Container.
|
||||||
|
|
||||||
|
[kubelet](/docs/admin/kubelet/) menggunakan _probe liveness_ untuk mengetahui
|
||||||
|
kapan perlu mengulang kembali (_restart_) sebuah Container. Sebagai contoh, _probe liveness_
|
||||||
|
dapat mendeteksi _deadlock_, ketika aplikasi sedang berjalan tapi tidak dapat berfungsi dengan baik.
|
||||||
|
Mengulang Container dengan _state_ tersebut dapat membantu ketersediaan aplikasi lebih baik
|
||||||
|
walaupun ada kekutu (_bug_).
|
||||||
|
|
||||||
|
kubelet menggunakan _probe readiness_ untuk mengetahui kapan sebuah Container telah siap untuk
|
||||||
|
menerima lalu lintas jaringan. Suatu Pod dianggap siap saat semua Container di dalamnya telah
|
||||||
|
siap. Sinyal ini berguna untuk mengontrol Pod-Pod mana yang digunakan sebagai _backend_ dari Service.
|
||||||
|
Ketika Pod dalam kondisi tidak siap, Pod tersebut dihapus dari _load balancer_ Service.
|
||||||
|
|
||||||
|
kubelet menggunakan _probe startup_ untuk mengetahui kapan sebuah aplikasi Container telah mulai berjalan.
|
||||||
|
Jika _probe_ tersebut dinyalakan, _probe_ akan menonaktifkan pemeriksaan _liveness_ dan _readiness_ sampai
|
||||||
|
berhasil, kamu harus memastikan _probe_ tersebut tidak mengganggu _startup_ dari aplikasi.
|
||||||
|
Mekanisme ini dapat digunakan untuk mengadopsi pemeriksaan _liveness_ saat memulai Container yang lambat,
|
||||||
|
sehingga bisa terhindar dimatikan oleh kubelet sebelum Container mulai dan berjalan.
|
||||||
|
|
||||||
|
{{% /capture %}}
|
||||||
|
|
||||||
|
{{% capture prerequisites %}}
|
||||||
|
|
||||||
|
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
|
||||||
|
|
||||||
|
{{% /capture %}}
|
||||||
|
|
||||||
|
{{% capture steps %}}
|
||||||
|
|
||||||
|
## Mendefinisikan perintah liveness
|
||||||
|
|
||||||
|
Kebanyakan aplikasi yang telah berjalan dalam waktu lama pada akhirnya akan
|
||||||
|
bertransisi ke _state_ yang rusak, dan tidak dapat pulih selain diulang kembali.
|
||||||
|
Kubernetes menyediakan _probe liveness_ untuk mendeteksi dan memperbaiki situasi tersebut.
|
||||||
|
|
||||||
|
Pada latihan ini, kamu akan membuat Pod yang menjalankan Container dari image
|
||||||
|
`k8s.gcr.io/busybox`. Berikut ini adalah berkas konfigurasi untuk Pod tersebut:
|
||||||
|
|
||||||
|
{{< codenew file="pods/probe/exec-liveness.yaml" >}}
|
||||||
|
|
||||||
|
Pada berkas konfigurasi di atas, kamu dapat melihat bahwa Pod memiliki satu `Container`.
|
||||||
|
_Field_ `periodSeconds` menentukan bahwa kubelet harus melakukan _probe liveness_ setiap 5 detik.
|
||||||
|
_Field_ `initialDelaySeconds` memberitahu kubelet untuk menunggu 5 detik sebelum mengerjakan
|
||||||
|
_probe_ yang pertama. Untuk mengerjakan _probe_, kubelet menjalankan perintah `cat /tmp/healthy`
|
||||||
|
pada Container tujuan. Jika perintah berhasil, kode 0 akan dikembalikan, dan kubelet menganggap
|
||||||
|
Container sedang dalam kondisi hidup (_alive_) dan sehat (_healthy_). Jika perintah mengembalikan
|
||||||
|
kode selain 0, maka kubelet akan mematikan Container dan mengulangnya.
|
||||||
|
|
||||||
|
Saat dimulai, Container akan menjalankan perintah berikut:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
/bin/sh -c "touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600"
|
||||||
|
```
|
||||||
|
|
||||||
|
Container memiliki berkas `/tmp/healthy` pada 30 detik pertama saat dijalankan.
|
||||||
|
Perintah `cat /tmp/healthy` mengembalikan kode sukses. Setelah 30 detik berlalu,
|
||||||
|
`cat /tmp/healthy` mengembalikan kode gagal.
|
||||||
|
|
||||||
|
Buat sebuah Pod:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl apply -f https://k8s.io/examples/pods/probe/exec-liveness.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Dalam 30 detik pertama, lihat _event_ dari Pod:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl describe pod liveness-exec
|
||||||
|
```
|
||||||
|
|
||||||
|
Keluaran dari perintah tersebut memperlihatkan bahwa belum ada _probe liveness_ yang gagal:
|
||||||
|
|
||||||
|
```
|
||||||
|
FirstSeen LastSeen Count From SubobjectPath Type Reason Message
|
||||||
|
--------- -------- ----- ---- ------------- -------- ------ -------
|
||||||
|
24s 24s 1 {default-scheduler } Normal Scheduled Successfully assigned liveness-exec to worker0
|
||||||
|
23s 23s 1 {kubelet worker0} spec.containers{liveness} Normal Pulling pulling image "k8s.gcr.io/busybox"
|
||||||
|
23s 23s 1 {kubelet worker0} spec.containers{liveness} Normal Pulled Successfully pulled image "k8s.gcr.io/busybox"
|
||||||
|
23s 23s 1 {kubelet worker0} spec.containers{liveness} Normal Created Created container with docker id 86849c15382e; Security:[seccomp=unconfined]
|
||||||
|
23s 23s 1 {kubelet worker0} spec.containers{liveness} Normal Started Started container with docker id 86849c15382e
|
||||||
|
```
|
||||||
|
|
||||||
|
Setelah 35 detik, lihat lagi _event_ Pod tersebut:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl describe pod liveness-exec
|
||||||
|
```
|
||||||
|
|
||||||
|
Baris terakhir dari keluaran tersebut memperlihatkan pesan bahwa _probe liveness_
|
||||||
|
mengalami kegagalan, dan Container telah dimatikan dan dibuat ulang.
|
||||||
|
|
||||||
|
```
|
||||||
|
FirstSeen LastSeen Count From SubobjectPath Type Reason Message
|
||||||
|
--------- -------- ----- ---- ------------- -------- ------ -------
|
||||||
|
37s 37s 1 {default-scheduler } Normal Scheduled Successfully assigned liveness-exec to worker0
|
||||||
|
36s 36s 1 {kubelet worker0} spec.containers{liveness} Normal Pulling pulling image "k8s.gcr.io/busybox"
|
||||||
|
36s 36s 1 {kubelet worker0} spec.containers{liveness} Normal Pulled Successfully pulled image "k8s.gcr.io/busybox"
|
||||||
|
36s 36s 1 {kubelet worker0} spec.containers{liveness} Normal Created Created container with docker id 86849c15382e; Security:[seccomp=unconfined]
|
||||||
|
36s 36s 1 {kubelet worker0} spec.containers{liveness} Normal Started Started container with docker id 86849c15382e
|
||||||
|
2s 2s 1 {kubelet worker0} spec.containers{liveness} Warning Unhealthy Liveness probe failed: cat: can't open '/tmp/healthy': No such file or directory
|
||||||
|
```
|
||||||
|
|
||||||
|
Tunggu 30 detik lagi, dan verifikasi bahwa Container telah diulang kembali:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl get pod liveness-exec
|
||||||
|
```
|
||||||
|
|
||||||
|
Keluaran perintah tersebut memperlihatkan bahwa jumlah `RESTARTS` meningkat:
|
||||||
|
|
||||||
|
```
|
||||||
|
NAME READY STATUS RESTARTS AGE
|
||||||
|
liveness-exec 1/1 Running 1 1m
|
||||||
|
```
|
||||||
|
|
||||||
|
## Mendefinisikan probe liveness dengan permintaan HTTP
|
||||||
|
|
||||||
|
Jenis kedua dari _probe liveness_ menggunakan sebuah permintaan GET HTTP. Berikut ini
|
||||||
|
berkas konfigurasi untuk Pod yang menjalankan Container dari image `k8s.gcr.io/liveness`.
|
||||||
|
|
||||||
|
{{< codenew file="pods/probe/http-liveness.yaml" >}}
|
||||||
|
|
||||||
|
Pada berkas konfigurasi tersebut, kamu dapat melihat Pod memiliki satu buah Container.
|
||||||
|
_Field_ `periodSeconds` menentukan bahwa kubelet harus mengerjakan _probe liveness_ setiap 3 detik.
|
||||||
|
_Field_ `initialDelaySeconds` memberitahu kubelet untuk menunggu 3 detik sebelum mengerjakan
|
||||||
|
_probe_ yang pertama. Untuk mengerjakan _probe_ tersebut, kubelet mengirimkan sebuah permintaan
|
||||||
|
GET HTTP ke server yang sedang berjalan di dalam Container dan mendengarkan (_listen_) pada porta 8080.
|
||||||
|
Jika _handler path_ `/healthz` yang dimiliki server mengembalikan kode sukses, kubelet menganggap
|
||||||
|
Container sedang dalam kondisi hidup dan sehat. Jika _handler_ mengembalikan kode gagal,
|
||||||
|
kubelet mematikan Container dan mengulangnya.
|
||||||
|
|
||||||
|
Kode yang lebih besar atau sama dengan 200 dan kurang dari 400 mengindikasikan kesuksesan.
|
||||||
|
Kode selain ini mengindikasikan kegagalan.
|
||||||
|
|
||||||
|
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).
|
||||||
|
|
||||||
|
Untuk 10 detik pertama setelah Container hidup, _handler_ `/healthz` mengembalikan
|
||||||
|
status 200. Setelah ini, _handler_ mengembalikan status 500.
|
||||||
|
|
||||||
|
```go
|
||||||
|
http.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
duration := time.Now().Sub(started)
|
||||||
|
if duration.Seconds() > 10 {
|
||||||
|
w.WriteHeader(500)
|
||||||
|
w.Write([]byte(fmt.Sprintf("error: %v", duration.Seconds())))
|
||||||
|
} else {
|
||||||
|
w.WriteHeader(200)
|
||||||
|
w.Write([]byte("ok"))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
kubelet mulai memeriksa kesehatan (_health check_) 3 detik setelah Container dimulai,
|
||||||
|
sehingga beberapa pemeriksaaan pertama akan berhasil. Namun setelah 10 detik,
|
||||||
|
pemeriksaan akan gagal, dan kubelet akan mematikan dan mengulang Container.
|
||||||
|
|
||||||
|
Untuk mencoba pemeriksaan _liveness_ HTTP, mari membuat sebuah Pod:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl apply -f https://k8s.io/examples/pods/probe/http-liveness.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Setelah 10 detik, lihat _event_ Pod untuk memverifikasi bahwa _probe liveness_
|
||||||
|
telah gagal dan Container telah diulang kembali:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl describe pod liveness-http
|
||||||
|
```
|
||||||
|
|
||||||
|
Untuk rilis sebelum v1.13 (termasuk v1.13), jika variabel lingkungan
|
||||||
|
`http_proxy` (atau `HTTP_PROXY`) telah diatur pada Node dimana Pod
|
||||||
|
berjalan, _probe liveness_ HTTP akan menggunakan proksi tersebut.
|
||||||
|
Untuk rilis setelah v1.13, pengaturan variabel lingkungan pada proksi HTTP lokal
|
||||||
|
tidak mempengaruhi _probe liveness) HTTP.
|
||||||
|
|
||||||
|
## Mendefinisikan probe liveness TCP
|
||||||
|
|
||||||
|
Jenis ketiga dari _probe liveness_ menggunakaan sebuah soket TCP. Dengan konfigurasi ini,
|
||||||
|
kubelet akan mencoba untuk membuka soket pada Container kamu dengan porta tertentu.
|
||||||
|
Jika koneksi dapat sukses terbentuk, maka Container dianggap dalam kondisi sehat.
|
||||||
|
Namun jika tidak berhasil terbentuk, maka Container dianggap gagal.
|
||||||
|
|
||||||
|
{{< codenew file="pods/probe/tcp-liveness-readiness.yaml" >}}
|
||||||
|
|
||||||
|
Seperti yang terlihat, konfigurasi untuk pemeriksaan TCP cukup mirip dengan
|
||||||
|
pemeriksaan HTTP. Contoh ini menggunakan _probe readiness_ dan _liveness_.
|
||||||
|
kubelet akan mengirimkan _probe readiness_ yang pertama, 5 detik setelah
|
||||||
|
Container mulai dijalankan. kubelet akan mencoba untuk terhubung dengan Container
|
||||||
|
`goproxy` pada porta 8080. Jika _probe_ berhasil, maka Pod akan ditandai menjadi
|
||||||
|
_siap_. kubelet akan lanjut mengerjakan pemeriksaan ini setiap 10 detik.
|
||||||
|
|
||||||
|
Selain _probe readiness_, _probe liveness_ juga termasuk di dalam konfigurasi.
|
||||||
|
kubelet akan menjalankan _probe liveness_ yang pertama, 15 detik setelah Container
|
||||||
|
mulai dijalankan. Sama seperti _probe readiness_, kubelet akan mencoba untuk
|
||||||
|
terhubung dengan Container `goproxy` pada porta 8080. Jika _probe liveness_ gagal,
|
||||||
|
maka Container akan diulang kembali.
|
||||||
|
|
||||||
|
Untuk mencoba pemeriksaan _liveness_ TCP, mari membuat sebuah Pod:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl apply -f https://k8s.io/examples/pods/probe/tcp-liveness-readiness.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Setelah 15 detik, lihat _event_ Pod untuk memverifikasi _probe liveness_ tersebut:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl describe pod goproxy
|
||||||
|
```
|
||||||
|
|
||||||
|
## Menggunakan sebuah porta dengan nama
|
||||||
|
|
||||||
|
Kamu dapat menggunakan
|
||||||
|
[ContainerPort](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#containerport-v1-core)
|
||||||
|
dengan nama untuk melakukan pemeriksaan _liveness_ HTTP atau TCP:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ports:
|
||||||
|
- name: liveness-port
|
||||||
|
containerPort: 8080
|
||||||
|
hostPort: 8080
|
||||||
|
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: liveness-port
|
||||||
|
```
|
||||||
|
|
||||||
|
## Melindungi Container yang lambat untuk dimulai dengan probe startup {#mendefinisikan-probe-startup}
|
||||||
|
|
||||||
|
Terkadang kamu harus berurusan dengan aplikasi peninggalan (_legacy_) yang
|
||||||
|
memerlukan waktu tambahan untuk mulai berjalan pada saat pertama kali diinisialisasi.
|
||||||
|
Pada kasus ini, cukup rumit untuk mengatur parameter _probe liveness_ tanpa
|
||||||
|
mengkompromikan respons yang cepat terhadap _deadlock_ yang memotivasi digunakannya
|
||||||
|
_probe_ tersebut. Triknya adalah untuk mengatur _probe startup_ dengan perintah yang sama,
|
||||||
|
pemeriksaan HTTP ataupun TCP, dengan `failureThreshold * periodSeconds` yang
|
||||||
|
mencukupi untuk kemungkinan waktu memulai yang terburuk.
|
||||||
|
|
||||||
|
Jadi, contoh sebelumnya menjadi:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ports:
|
||||||
|
- name: liveness-port
|
||||||
|
containerPort: 8080
|
||||||
|
hostPort: 8080
|
||||||
|
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: liveness-port
|
||||||
|
failureThreshold: 1
|
||||||
|
periodSeconds: 10
|
||||||
|
|
||||||
|
startupProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: liveness-port
|
||||||
|
failureThreshold: 30
|
||||||
|
periodSeconds: 10
|
||||||
|
```
|
||||||
|
|
||||||
|
Berkat _probe startup_, aplikasi akan memiliki paling lambat 5 menit (30 * 10 = 300 detik)
|
||||||
|
untuk selesai memulai.
|
||||||
|
Ketika _probe startup_ telah berhasil satu kali, maka _probe liveness_ akan
|
||||||
|
mengambil alih untuk menyediakan respons cepat terhadap _deadlock_ Container.
|
||||||
|
Jika _probe startup_ tidak pernah berhasil, maka Container akan dimatikan setelah
|
||||||
|
300 detik dan perilakunya akan bergantung pada `restartPolicy` yang dimiliki Pod.
|
||||||
|
|
||||||
|
## Mendefinisikan probe readiness
|
||||||
|
|
||||||
|
Terkadang aplikasi tidak dapat melayani lalu lintas jaringan (_traffic_) sementara.
|
||||||
|
Contohnya, aplikasi mungkin perlu untuk memuat data besar atau berkas konfigurasi
|
||||||
|
saat dimulai, atau aplikasi bergantung pada layanan eksternal setelah dimulai.
|
||||||
|
Pada kasus-kasus ini, kamu tidak ingin mematikan aplikasi, tetapi kamu tidak
|
||||||
|
ingin juga mengirimkan permintaan ke aplikasi tersebut. Kubernetes menyediakan
|
||||||
|
_probe readiness_ sebagai solusinya. Sebuah Pod dengan Container yang melaporkan
|
||||||
|
dirinya tidak siap, tidak akan menerima lalu lintas jaringan dari Kubernetes Service.
|
||||||
|
|
||||||
|
{{< note >}}
|
||||||
|
_Probe readiness_ dijalankan di dalam Container selama siklus hidupnya.
|
||||||
|
{{< /note >}}
|
||||||
|
|
||||||
|
_Probe readiness_ memiliki pengaturan yang mirip dengan _probe liveness_. Perbedaan
|
||||||
|
satu-satunya adalah kamu menggunakan _field_ `readinessProbe`, bukan _field_ `livenessProbe`.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
readinessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- cat
|
||||||
|
- /tmp/healthy
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 5
|
||||||
|
```
|
||||||
|
|
||||||
|
Pengaturan untuk _probe readiness_ untuk HTTP dan TCP juga sama persis dengan
|
||||||
|
pengaturan untuk _probe liveness_.
|
||||||
|
|
||||||
|
_Probe readiness_ dan _liveness_ dapat digunakan secara bersamaan untuk
|
||||||
|
Container yang sama. Apabila keduanya digunakan sekaligus, lalu lintas jaringan
|
||||||
|
tidak akan sampai ke Container yang belum siap, dan Container akan diulang kembali
|
||||||
|
(_restart_) saat mengalami kegagalan.
|
||||||
|
|
||||||
|
## Mengatur Probe
|
||||||
|
|
||||||
|
{{< comment >}}
|
||||||
|
Nantinya beberapa bagian dari bab ini dapat berpindah ke topik konsep.
|
||||||
|
{{< /comment >}}
|
||||||
|
|
||||||
|
[Probe](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#probe-v1-core) memiliki
|
||||||
|
beberapa _field_ yang dapat digunakan untuk mengendalikan pemeriksaan _liveness_ dan _readiness_
|
||||||
|
secara presisi.
|
||||||
|
|
||||||
|
* `initialDelaySeconds`: Durasi dalam detik setelah Container dimulai,
|
||||||
|
sebelum _probe liveness_ atau _readiness_ diinisiasi. Nilai bawaannya adalah 0 detik. Nilai minimalnya adalah 0.
|
||||||
|
* `periodSeconds`: Seberapa sering (dalam detik) _probe_ dijalankan. Nilai bawaannya adalah 10 detik.
|
||||||
|
Nilai minimalnya adalah 0.
|
||||||
|
* `timeoutSeconds`: Durasi dalam detik setelah _probe_ mengalami _timeout_. Nilai bawaannya adalah 1 detik.
|
||||||
|
Nilai minimalnya adalah 0.
|
||||||
|
* `successThreshold`: Jumlah minimal sukses yang berurutan untuk _probe_ dianggap berhasil
|
||||||
|
setelah mengalami kegagalan. Nilai bawaannya adalah 1. Nilanya harus 1 untuk _liveness_.
|
||||||
|
Nilai minimalnya adalah 1.
|
||||||
|
* `failureThreshold`: Ketika sebuah Pod dimulai dan _probe_ mengalami kegagalan, Kubernetes
|
||||||
|
akan mencoba beberapa kali sesuai nilai `failureThreshold` sebelum menyerah. Menyerah karena
|
||||||
|
kasus _probe liveness_ akan membuat Container diulang kembali. Untuk _probe readiness_, menyerah
|
||||||
|
akaan menandai Pod menjadi "tidak siap" (Unready). Nilai bawaannya adalah 3. Nilai minimalnya adalah 1.
|
||||||
|
|
||||||
|
[_Probe_ HTTP](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#httpgetaction-v1-core)
|
||||||
|
memiliki _field-field_ tambahan yang bisa diatur melalui `httpGet`:
|
||||||
|
|
||||||
|
* `host`: Nama dari host yang akan terhubung, nilai bawaannya adalah IP dari Pod. Kamu mungkin
|
||||||
|
juga ingin mengatur "Host" pada httpHeaders.
|
||||||
|
* `scheme`: Skema yang digunakan untuk terhubung pada host (HTTP atau HTTPS). Nilai bawaannya adalah HTTP.
|
||||||
|
* `path`: _Path_ untuk mengakses server HTTP.
|
||||||
|
* `httpHeaders`: _Header_ khusus yang diatur melalui permintaan. HTTP memperbolehkan _header_ yang berulang.
|
||||||
|
* `port`: Nama atau angka dari porta untuk mengakses Container. Angkanya harus ada di antara 1 sampai 65535.
|
||||||
|
|
||||||
|
Untuk sebuah _probe_ HTTP, kubelet mengirimkan permintaan HTTP untuk _path_ yang ditentukan
|
||||||
|
dan porta untuk mengerjakan pemeriksaan. kubelet mengirimkan _probe_ untuk alamat IP Pod,
|
||||||
|
kecuali saat alamat digantikan oleh _field_ opsional pada `httpGet`. Jika _field_ `scheme`
|
||||||
|
diatur menjadi `HTTPS`, maka kubelet mengirimkan permintaan HTTPS dan melewati langkah verifikasi
|
||||||
|
sertifikat. Pada skenario kebanyakan, kamu tidak menginginkan _field_ `host`.
|
||||||
|
Berikut satu skenario yang memerlukan `host`. Misalkan Container mendengarkan permintaan
|
||||||
|
melalui 127.0.0.1 dan _field_ `hostNetwork` pada Pod bernilai true. Kemudian `host`, melalui
|
||||||
|
`httpGet`, harus diatur menjadi 127.0.0.1. Jika Pod kamu bergantung pada host virtual, dimana
|
||||||
|
untuk kasus-kasus umum, kamu tidak perlu menggunakan `host`, tetapi perlu mengaatur _header_
|
||||||
|
`Host` pada `httpHeaders`.
|
||||||
|
|
||||||
|
Untuk _probe_ TCP, kubelet membuat koneksi _probe_ pada Node, tidak pada Pod, yang berarti bahwa
|
||||||
|
kamu tidak menggunakan nama Service di dalam parameter `host` karena kubelet tidak bisa
|
||||||
|
me-_resolve_-nya.
|
||||||
|
|
||||||
|
{{% /capture %}}
|
||||||
|
|
||||||
|
{{% capture whatsnext %}}
|
||||||
|
|
||||||
|
* Pelajari lebih lanjut tentang
|
||||||
|
[Probe Container](/id/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).
|
||||||
|
|
||||||
|
Kamu juga dapat membaca rujukan API untuk:
|
||||||
|
|
||||||
|
* [Pod](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#pod-v1-core)
|
||||||
|
* [Container](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#container-v1-core)
|
||||||
|
* [Probe](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#probe-v1-core)
|
||||||
|
|
||||||
|
{{% /capture %}}
|
Loading…
Reference in New Issue