Skip to content

Commit e3c2662

Browse files
authored
Merge pull request #43604 from qassandrach/sidecar-container
[id] update about sidecar containers
2 parents 7e67660 + d7dcc4f commit e3c2662

File tree

3 files changed

+87
-0
lines changed

3 files changed

+87
-0
lines changed

content/id/docs/concepts/workloads/pods/init-containers.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,33 @@ Gunakan `activeDeadlineSeconds` pada Pod dan `livenessProbe` pada Container untu
242242

243243
Nama setiap Container aplikasi dan Init Container pada sebuah Pod haruslah unik; Kesalahan validasi akan terjadi jika ada Container atau Init Container yang memiliki nama yang sama.
244244

245+
### API untuk sidecar containers
246+
247+
{{< feature-state for_k8s_version="v1.28" state="alpha" >}}
248+
249+
Mulai dari Kubernetes 1.28 dalam mode alpha, terdapat fitur yang disebut `SidecarContainers` yang memungkinkan Anda untuk menentukan `restartPolicy` untuk kontainer init yang independen dari Pod dan kontainer init lainnya. [Probes] (/docs/concepts/workloads/pods/pod-lifecycle/#types-of-probe) juga dapat ditambahkan untuk mengendalikan siklus hidup mereka.
250+
251+
Jika sebuah kontainer init dibuat dengan `restartPolicy` yang diatur sebagai `Always`, maka kontainer ini akan mulai dan tetap berjalan selama seluruh masa hidup Pod, yang berguna untuk menjalankan layanan pendukung yang terpisah dari kontainer aplikasi utama.
252+
253+
Jika sebuah `readinessProbe` ditentukan untuk kontainer init ini, hasilnya akan digunakan untuk menentukan status siap dari Pod.
254+
255+
Karena kontainer-kontainer ini didefinisikan sebagai kontainer init, mereka mendapatkan manfaat dari urutan dan jaminan berurutan yang sama seperti kontainer init lainnya, yang memungkinkan mereka dicampur dengan kontainer init lainnya dalam aliran inisialisasi Pod yang kompleks.
256+
257+
Dibandingkan dengan kontainer init reguler, kontainer init tipe sidecar terus berjalan, dan kontainer init berikutnya dapat mulai menjalankan saat kubelet telah menetapkan status kontainer `started` menjadi benar untuk kontainer init tipe sidecar. Status tersebut menjadi benar karena ada proses yang berjalan dalam kontainer dan tidak ada probe awal yang ditentukan, atau sebagai hasil dari keberhasilan `startupProbe`.
258+
259+
Fitur ini dapat digunakan untuk mengimplementasikan pola kontainer sidecar dengan lebih tangguh, karena kubelet selalu akan me-restart kontainer sidecar jika kontainer tersebut gagal.
260+
261+
Berikut adalah contoh Deployment dengan dua kontainer, salah satunya adalah sidecar:
262+
263+
{{% code_sample language="yaml" file="application/deployment-sidecar.yaml" %}}
264+
265+
Fitur ini juga berguna untuk menjalankan Job dengan sidecar, karena kontainer sidecar tidak akan mencegah Job untuk menyelesaikan tugasnya setelah kontainer utama selesai.
266+
267+
Berikut adalah contoh sebuah Job dengan dua kontainer, salah satunya adalah sidecar:
268+
269+
{{% code_sample language="yaml" file="application/job/job-sidecar.yaml" %}}
270+
271+
245272
### Sumber Daya
246273

247274
Karena eksekusi Init Container yang berurutan, aturan-aturan untuk sumber daya berlaku sebagai berikut:
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: myapp
5+
labels:
6+
app: myapp
7+
spec:
8+
replicas: 1
9+
selector:
10+
matchLabels:
11+
app: myapp
12+
template:
13+
metadata:
14+
labels:
15+
app: myapp
16+
spec:
17+
containers:
18+
- name: myapp
19+
image: alpine:latest
20+
command: ['sh', '-c', 'while true; do echo "logging" >> /opt/logs.txt; sleep 1; done']
21+
volumeMounts:
22+
- name: data
23+
mountPath: /opt
24+
initContainers:
25+
- name: logshipper
26+
image: alpine:latest
27+
restartPolicy: Always
28+
command: ['sh', '-c', 'tail -F /opt/logs.txt']
29+
volumeMounts:
30+
- name: data
31+
mountPath: /opt
32+
volumes:
33+
- name: data
34+
emptyDir: {}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
apiVersion: batch/v1
2+
kind: Job
3+
metadata:
4+
name: myjob
5+
spec:
6+
template:
7+
spec:
8+
containers:
9+
- name: myjob
10+
image: alpine:latest
11+
command: ['sh', '-c', 'echo "logging" > /opt/logs.txt']
12+
volumeMounts:
13+
- name: data
14+
mountPath: /opt
15+
initContainers:
16+
- name: logshipper
17+
image: alpine:latest
18+
restartPolicy: Always
19+
command: ['sh', '-c', 'tail -F /opt/logs.txt']
20+
volumeMounts:
21+
- name: data
22+
mountPath: /opt
23+
restartPolicy: Never
24+
volumes:
25+
- name: data
26+
emptyDir: {}

0 commit comments

Comments
 (0)