0Pricing
Helm Academy · Pelajaran

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-upgrade

Mulai 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-migrate

Tambahkan 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-upgrade

Jalankan 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: Never

Buat 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-succeeded

Nama 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-run

Pemeriksaan 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

  1. Apa itu Hook dan Kapan Dijalankan
  2. Job Migrasi DB pre-upgrade
  3. Bobot dan Urutan Hook
  4. Kebijakan Penghapusan Hook
← Kembali ke Helm Academy