0Pricing
DevOps Bootcamp · Pelajaran

Init Container dan Urutan Startup

Pelajari cara init container menjalankan tugas penyiapan sebelum container aplikasi utama dimulai, serta cara init container mengatur urutan di dalam Pod.

Init Container dan Urutan Startup adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa Itu Kontainer Init?

Kontainer init adalah kontainer khusus yang berjalan hingga selesai sebelum kontainer aplikasi utama dalam sebuah Pod dimulai. Pod dapat memiliki satu atau beberapa kontainer init.

Kontainer ini sangat cocok untuk tugas penyiapan satu kali: menunggu dependensi, menyalin konfigurasi, atau menjalankan migrasi basis data.

Perbedaannya dengan Kontainer Aplikasi

Kontainer init selalu berjalan hingga selesai dan harus berhasil sebelum kontainer init berikutnya dimulai. Sebaliknya, kontainer aplikasi berjalan terus-menerus.

  • Kontainer init berjalan secara berurutan, satu per satu
  • Kontainer aplikasi berjalan secara paralel
  • Jika kontainer init gagal, Pod memulainya lagi (sesuai restartPolicy)

Spesifikasi Dasar Kontainer Init

Kontainer init berada di bawah spec.initContainers, yang sejajar dengan spec.containers.

apiVersion: v1
kind: Pod
metadata:
  name: app-with-init
spec:
  initContainers:
  - name: wait-for-db
    image: busybox:1.36
    command: ['sh', '-c', 'echo waiting; sleep 5']
  containers:
  - name: app
    image: nginx:1.27

Mengapa Urutan Penting

Kubernetes menjamin urutannya: setiap kontainer init harus selesai dengan berhasil sebelum kontainer utama mulai.

Dengan demikian, Anda dapat menyatakan dependensi secara deklaratif, alih-alih menanamkan perulangan percobaan ulang ke dalam citra aplikasi.

Menunggu Layanan

Pola yang umum adalah menahan proses mulai hingga Layanan yang menjadi dependensi memberikan respons.

initContainers:
- name: wait-for-api
  image: busybox:1.36
  command:
  - sh
  - -c
  - 'until nslookup api-service; do echo waiting; sleep 2; done'

Beberapa Kontainer Init

Anda dapat merangkai beberapa kontainer init. Kontainer tersebut berjalan sesuai urutan yang tercantum, dan masing-masing harus selesai sepenuhnya sebelum kontainer berikutnya dimulai.

initContainers:
- name: step-1-fetch-config
  image: busybox:1.36
  command: ['sh', '-c', 'echo fetching config']
- name: step-2-migrate
  image: busybox:1.36
  command: ['sh', '-c', 'echo running migration']

Berbagi Data dengan emptyDir

Kontainer init sering menyiapkan berkas untuk kontainer aplikasi menggunakan volume emptyDir bersama.

volumes:
- name: shared
  emptyDir: {}
initContainers:
- name: setup
  image: busybox:1.36
  command: ['sh', '-c', 'echo hello > /work/index.html']
  volumeMounts:
  - name: shared
    mountPath: /work

Memeriksa Status Init

Saat kontainer init berjalan, Pod menampilkan status seperti Init:0/2. Gunakan kubectl untuk mengikuti kemajuannya.

kubectl get pod app-with-init
kubectl logs app-with-init -c wait-for-db
kubectl describe pod app-with-init

Aturan Penggunaan Sumber Daya

Karena kontainer init berjalan secara berurutan, Kubernetes menggunakan permintaan atau batas sumber daya yang tertinggi di antara kontainer tersebut (bukan jumlahnya) saat menjadwalkan, lalu membandingkannya dengan kebutuhan kontainer aplikasi.

Kasus Penggunaan Umum

  • Menunggu hingga basis data atau API eksternal dapat dijangkau
  • Menjalankan migrasi skema sebelum aplikasi dimulai
  • Membuat atau mengunduh berkas konfigurasi
  • Mengatur izin berkas pada volume yang dipasang
  • Mendaftarkan Pod ke registri layanan

Perilaku Saat Gagal

Jika kontainer init gagal dan restartPolicy Pod adalah Always atau OnFailure, Kubernetes akan terus mencobanya kembali hingga berhasil. Kontainer utama tidak akan dimulai sebelum itu.

Pemeriksaan Singkat

Uji pemahaman Anda tentang urutan kontainer init.

Rangkuman

Anda telah mempelajari bahwa kontainer init berjalan secara berurutan hingga selesai sebelum kontainer aplikasi dimulai. Kontainer ini menegakkan urutan mulai, menyiapkan data bersama melalui volume, dan menangani penyiapan satu kali seperti migrasi atau pemeriksaan dependensi.

Selanjutnya, Anda dapat menggabungkan kontainer init dengan kontainer samping untuk membentuk pola mulai Pod yang lebih kaya.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Init Container dan Urutan Startup” gratis?

Ya — teks lengkap “Init Container dan Urutan Startup” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Init Container dan Urutan Startup”?

Pelajari cara init container menjalankan tugas penyiapan sebelum container aplikasi utama dimulai, serta cara init container mengatur urutan di dalam Pod. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Init Container dan Urutan Startup” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pod: Unit Terkecil
  2. Siklus Hidup dan Status Pod
  3. Pod Multi-Container (Sidecar)
  4. Init Container dan Urutan Startup
← Kembali ke DevOps Bootcamp