Job Migrasi DB pre-upgrade
Anotasikan Job agar berjalan sebelum peluncuran.
Job Migrasi DB pre-upgrade adalah pelajaran Helm Academy gratis di CoddyKit. Ini adalah pelajaran 2 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 Helm Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Helm Academy mencakup 4 pelajaran total.
Contoh Kasus Nyata
Sebelum kode aplikasi baru diluncurkan, skema database Anda sering kali perlu dimigrasikan. Hook pre-upgrade adalah tempat yang tepat untuk menjalankan migrasi tersebut dengan aman.
Mengapa Sebelum Peluncuran
Menjalankannya sebagai pre-upgrade berarti skema sudah siap sebelum pod baru dimulai. Kode baru tidak pernah berkomunikasi dengan database lama yang tidak cocok.
"helm.sh/hook": pre-upgradeMulai dengan Job
Migrasi berjalan sekali lalu berhenti, jadi modelkan migrasi sebagai Job Kubernetes. Helm akan menunggu Job selesai sebelum melanjutkan peningkatan versi.
apiVersion: batch/v1
kind: Job
metadata:
name: db-migrateTambahkan Anotasi Hook
Tandai Job sebagai hook di metadatanya. Anotasi helm.sh/hook yang disetel ke pre-upgrade mengubah Job biasa ini menjadi hook.
metadata:
annotations:
"helm.sh/hook": pre-upgradeJalankan Perintah Migrasi
Kontainer Job menjalankan alat migrasi Anda. Arahkan alat tersebut ke database yang sama dengan yang digunakan aplikasi agar perubahan skema diterapkan di tempat yang semestinya.
spec:
containers:
- name: migrate
image: myapp:1.4
command: ["./migrate", "up"]Jangan Pernah Memulai Ulang saat Gagal
Setel restartPolicy Job ke Never atau OnFailure. Migrasi yang berjalan tanpa henti akan memblokir peningkatan versi dan tidak pernah membiarkan Helm melanjutkan.
spec:
template:
spec:
restartPolicy: NeverBuat Tag Citra sebagai Template
Jaga agar migrator tetap selaras dengan aplikasi dengan membuat tag-nya sebagai templat. Gunakan kembali .Values.image.tag yang dibaca deployment agar versinya cocok.
image: "myapp:{{ .Values.image.tag }}"Helm Memblokir hingga Selesai
Karena merupakan hook pre-upgrade, Helm menjeda peningkatan versi hingga Job melaporkan keberhasilan. Jika migrasi gagal, peluncuran tidak akan terjadi. 🛑
Bersihkan Setelah Berhasil
Jika tidak, Job migrasi lama akan menumpuk. Pasangkan hook dengan hook-delete-policy agar Job yang berhasil dihapus, bukan memenuhi namespace.
"helm.sh/hook-delete-policy": hook-succeededNama Unik Membantu
Job hook tidak dapat diubah setelah dibuat, sehingga nama tetap dapat bertabrakan pada peningkatan versi berikutnya. Menyertakan .Release.Revision dalam nama membuat setiap proses tetap berbeda.
name: db-migrate-{{ .Release.Revision }}Uji dengan Dry Run
Sebelum peningkatan versi sungguhan, render chart untuk memastikan hook terlihat benar. dry-run menampilkan manifest Job yang akan dibuat Helm tanpa menyentuh klaster.
helm upgrade myapp ./mychart --dry-runPemeriksaan Singkat
Anda perlu menjalankan migrasi skema sebelum pod aplikasi baru dimulai selama peningkatan versi.
Ringkasan
Anda memodelkan migrasi sebagai Job pre-upgrade, menyetel restartPolicy ke Never, dan membiarkan Helm memblokir proses hingga migrasi berhasil sebelum meluncurkan kode baru. 🗄️
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Job Migrasi DB pre-upgrade” gratis?
Ya — teks lengkap “Job Migrasi DB pre-upgrade” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Helm Academy, upgrade ke CoddyKit PRO. Kursus Helm Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Job Migrasi DB pre-upgrade”?
Anotasikan Job agar berjalan sebelum peluncuran. Kamu berlatih Helm Academy 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 Helm Academy?
Tidak diperlukan pengalaman sebelumnya. Helm Academy 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 2 dari 4.
Berapa lama pelajaran “Job Migrasi DB pre-upgrade” 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 Helm Academy ini?
Ya. Setiap pelajaran Helm Academy 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
- Apa itu Hook dan Kapan Dijalankan
- Job Migrasi DB pre-upgrade
- Bobot dan Urutan Hook
- Kebijakan Penghapusan Hook