Skip to content

Commit c0612ae

Browse files
antoooksk8s-ci-robot
authored andcommitted
Translate "Garbage Collection" page to Bahasa Indonesia (#14513)
* add pod preset page for language/id * fix formatting * fix typos and wording * fix formatting and add few missed lines * fix note formatting * add Garbage Collection page in Bahasa Indonesia and minor fix on Pod Preset page * remove replication.yaml * add controllers/replicaset.yaml to example * fix formatting error * change dependent to dependen and fix note translation * delete trailing space in heading
1 parent 02d963d commit c0612ae

File tree

4 files changed

+157
-1
lines changed

4 files changed

+157
-1
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: "Controllers"
3+
weight: 20
4+
---
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
---
2+
title: Garbage Collection
3+
content_template: templates/concept
4+
weight: 60
5+
---
6+
7+
{{% capture overview %}}
8+
9+
Peran dari _garbage collector_ Kubernetes adalah untuk menghapus objek tertentu yang sebelumnya mempunyai pemilik, tetapi tidak lagi mempunyai pemilik.
10+
11+
{{% /capture %}}
12+
13+
{{% capture body %}}
14+
15+
## Pemilik dan dependen
16+
17+
Beberapa objek Kubernetes adalah pemilik dari objek lainnya. Sebagai contoh, sebuah ReplicaSet adalah pemilik dari sekumpulan Pod. Objek-objek yang dimiliki disebut *dependen* dari objek pemilik. Setiap objek dependen memiliki sebuah kolom `metadata.ownerReferences` yang menunjuk ke objek pemilik.
18+
19+
Terkadang, Kubernetes menentukan nilai dari `ownerReference` secara otomatis. Sebagai contoh, ketika kamu membuat sebuah ReplicaSet, Kubernetes secara otomatis akan menentukan tiap kolom `ownerReference` dari tiap Pod di dalam ReplicaSet. Pada versi 1.8, Kubernetes secara otomatis menentukan nilai dari `ownerReference` untuk objek yang diciptakan atau diadopsi oleh ReplicationController, ReplicaSet, StatefulSet, DaemonSet, Deployment, Job dan CronJob.
20+
21+
Kamu juga bisa menspesifikasikan hubungan antara pemilik dan dependen dengan cara menentukan kolom `ownerReference` secara manual.
22+
23+
Berikut adalah berkas untuk sebuah ReplicaSet yang memiliki tiga Pod:
24+
25+
{{< codenew file="controllers/replicaset.yaml" >}}
26+
27+
Jika anda membuat ReplicaSet tersebut dan kemudian melihat metadata Pod, kamu akan melihat kolom OwnerReferences:
28+
29+
```shell
30+
kubectl apply -f https://k8s.io/examples/controllers/replicaset.yaml
31+
kubectl get pods --output=yaml
32+
```
33+
34+
Keluaran menunjukkan bahwa pemilik Pod adalah sebuah ReplicaSet bernama `my-repset`:
35+
36+
```shell
37+
apiVersion: v1
38+
kind: Pod
39+
metadata:
40+
...
41+
ownerReferences:
42+
- apiVersion: apps/v1
43+
controller: true
44+
blockOwnerDeletion: true
45+
kind: ReplicaSet
46+
name: my-repset
47+
uid: d9607e19-f88f-11e6-a518-42010a800195
48+
...
49+
```
50+
{{< note >}}
51+
Referensi pemilik lintas _namespace_ tidak diperbolehkan oleh desain. Artinya:
52+
1) Dependen dengan cakupan _namespace_ hanya bisa menspesifikasikan pemilik jika berada di _namespace_ yang sama, dan pemilik memiliki cakupan kluster.
53+
2) Dependen dengan cakupan kluster hanya bisa menspesifikasikan pemilik yang memiliki cakupan kluster, tetapi tidak berlaku untuk pemilik yang memiliki cakupan kluster.
54+
{{< /note >}}
55+
56+
## Mengontrol bagaimana _garbage collector_ menghapus dependen
57+
58+
Ketika kamu menghapus sebuah objek, kamu bisa menspesifikasi apakah dependen objek tersebut juga dihapus secara otomatis. Menghapus dependen secara otomatis disebut _cascading deletion_. _Cascading deletion_ memiliki dua mode: _background_ dan _foreground_.
59+
60+
61+
62+
### Foreground cascading deletion
63+
64+
Pada *foreground cascading deletion*, pertama objek utama akan memasuki keadaan "_deletion in progress_". Pada saat keadaan "_deletion in progress_", kondisi-kondisi berikut bernilai benar:
65+
66+
* Objek masih terlihat via REST API
67+
* `deletionTimestamp` objek telah ditentukan
68+
* `metadata.finalizers` objek memiliki nilai `foregroundDeletion`.
69+
70+
Ketika dalam keadaan "_deletion in progress_", _garbage collector_ menghapus dependen dari objek. Ketika _garbage collector_ telah menghapus semua "_blocking_" dependen (objek dengan `ownerReference.blockOwnerDeleteion=true`), _garbage collector_ menghapus objek pemilik.
71+
72+
Jika kolom `ownerReferences` sebuah objek ditentukan oleh sebuah _controller_ (seperti Deployment atau Replicaset), `blockOwnerDeletion` akan ditentukan secara otomatis dan kamu tidak perlu memodifikasi kolom ini secara manual.
73+
74+
### Background cascading deletion
75+
76+
Pada *background cascading deletion*, Kubernetes segera menghapus objek pemilik dan _garbage collector_ kemudian menghapus dependen pada _background_.
77+
78+
### Mengatur kebijakan _cascading deletion_
79+
80+
Untuk mengatur kebijakan _cascading deletion_, tambahkan kolom `propagationPolicy` pada argumen `deleteOptions` ketika menghapus sebuah Object. Nilai yang dapat digunakan adalah "Orphan", "Foreground", atau "Background".
81+
82+
Sebelum Kubernetes 1.9, kebijakan _default_ dari _garbage collection_ untuk banyak _resource controller_ adalah **orphan**. Ini meliputi ReplicationController, ReplicaSet, StatefulSet, DaemonSet, dan Deployment. Untuk jenis pada kelompok versi `extensions/v1beta1`, `apps/v1beta1`, dan `apps/v1beta2`, kecuali kamu menspesifikasikan dengan cara lain, objek dependen adalah _orphan_ secara _default_. Pada Kubernetes 1.9, untuk semua jenis pada kelompok versi `apps/v1`, objek dependen dihapus secara _default_.
83+
84+
Berikut sebuah contoh yang menghapus dependen di _background_:
85+
86+
```shell
87+
kubectl proxy --port=8080
88+
curl -X DELETE localhost:8080/apis/apps/v1/namespaces/default/replicasets/my-repset \
89+
-d '{"kind":"DeleteOptions","apiVersion":"v1","propagationPolicy":"Background"}' \
90+
-H "Content-Type: application/json"
91+
```
92+
93+
Berikut adalah sebuah contoh yang mengapus dependen di _foreground_:
94+
95+
```shell
96+
kubectl proxy --port=8080
97+
curl -X DELETE localhost:8080/apis/apps/v1/namespaces/default/replicasets/my-repset \
98+
-d '{"kind":"DeleteOptions","apiVersion":"v1","propagationPolicy":"Foreground"}' \
99+
-H "Content-Type: application/json"
100+
```
101+
102+
Berikut adalah contoh _orphan_ yang dependen:
103+
104+
```shell
105+
kubectl proxy --port=8080
106+
curl -X DELETE localhost:8080/apis/apps/v1/namespaces/default/replicasets/my-repset \
107+
-d '{"kind":"DeleteOptions","apiVersion":"v1","propagationPolicy":"Orphan"}' \
108+
-H "Content-Type: application/json"
109+
```
110+
111+
kubectl juga mendukung _cascading deletion_. Untuk menghapus dependen secara otomatis dengan menggunakan kubectl, Ubah nilai `--cascade` menjadi _true_. Untuk _orphan_ yang dependen, ubah nilai `--cascade` menjadi _false_. Nilai _default_ untuk `--cascade` adalah _true_.
112+
113+
Berikut adalah contoh yang membuat dependen ReplicaSet menjadi _orphan_:
114+
115+
```shell
116+
kubectl delete replicaset my-repset --cascade=false
117+
```
118+
119+
### Catatan tambahan untuk Deployment
120+
121+
Sebelum versi 1.7, ketika menggunakan _cascading delete_ dengan Deployment, kamu *harus* menggunakan `propagationPolicy: Foreground` untuk menghapus tidak hanya ReplicaSet yang telah diciptakan, tetapi juga Pod yang mereka miliki. Jika tipe _propagationPolicy_ tidak digunakan, hanya ReplicaSet yag akan dihapus, dan Pod akan menjadi _orphan_. Lihat [kubeadm/#149](https://github.com/kubernetes/kubeadm/issues/149#issuecomment-284766613) untuk informasi lebih lanjut.
122+
123+
## Isu yang diketahui
124+
125+
Ditemukan pada [#26120](https://github.com/kubernetes/kubernetes/issues/26120)
126+
127+
{{% /capture %}}
128+
129+
{{% capture whatsnext %}}
130+
131+
[Dokumen Desain 1](https://git.k8s.io/community/contributors/design-proposals/api-machinery/garbage-collection.md)
132+
133+
[Dokumen Desain 2](https://git.k8s.io/community/contributors/design-proposals/api-machinery/synchronous-garbage-collection.md)
134+
135+
{{% /capture %}}

‎content/id/docs/concepts/workloads/pods/podpreset.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Kubernetes menyediakan sebuah _admission controller_ (`PodPreset`) dimana, ketik
3232
Tiap Pod akan bisa dipasangkan oleh nol atau lebih PodPreset; dan tiap PodPreset bisa diterapkan ke nol atau lebih Pod. Ketika sebuah PodPreset diterapkan ke satu atau lebih Pod, Kubernetes memodifikasi Pod Spec. Untuk perubahan terhadap `Env`,`EnvFrom`, dan `VolumeMount`, Kubernetes memodifikasi spesifikasi kontainer untuk semua kontainer di dalam Pod; Untuk perubahan terhadap `Volume`, Kubernetes memodifikasi Pod Spec.
3333

3434
{{< note >}}
35-
Catatan: Sebuah Pod Preset mampu memodifikasi kolom `.spec.containers` pada sebuah Pod Spec jika sesuai. Tidak ada definisi resource dari Pod Preset yang akan diterapkan kepada kolom `initContainer`.
35+
Sebuah Pod Preset mampu memodifikasi kolom `.spec.containers` pada sebuah Pod Spec jika sesuai. Tidak ada definisi resource dari Pod Preset yang akan diterapkan kepada kolom `initContainer`.
3636
{{< /note >}}
3737

3838
### Menonaktifkan Pod Preset untuk sebuah Pod Spesifik
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
apiVersion: apps/v1
2+
kind: ReplicaSet
3+
metadata:
4+
name: my-repset
5+
spec:
6+
replicas: 3
7+
selector:
8+
matchLabels:
9+
pod-is-for: garbage-collection-example
10+
template:
11+
metadata:
12+
labels:
13+
pod-is-for: garbage-collection-example
14+
spec:
15+
containers:
16+
- name: nginx
17+
image: nginx

0 commit comments

Comments
 (0)