Veritabanı Geçişi için pre-upgrade Job
Bir Job'ın dağıtımdan önce çalışması için açıklama ekleyin.
Veritabanı Geçişi için pre-upgrade Job, CoddyKit'te ücretsiz bir Helm Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Helm Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Helm Academy kursu toplamda 4 dersten oluşur.
Gerçek Bir Kullanım Örneği
Yeni uygulama kodu kullanıma alınmadan önce veritabanı şemanızın çoğu zaman geçirilmesi gerekir. Bir pre-upgrade kancası, bu geçişi güvenli biçimde çalıştırmak için ideal yerdir.
Dağıtımdan Önce Neden Çalıştırılır
Bunu pre-upgrade olarak çalıştırmak, yeni pod'lar başlamadan önce şemanın hazır olmasını sağlar. Yeni kod, eski ve uyuşmayan bir veritabanıyla hiçbir zaman iletişim kurmaz.
"helm.sh/hook": pre-upgradeBir İşle Başlayın
Geçiş bir kez çalışır ve sonra çıkar; bu nedenle onu bir Kubernetes İşi olarak modelleyin. Helm, yükseltmeye devam etmeden önce İşin tamamlanmasını bekler.
apiVersion: batch/v1
kind: Job
metadata:
name: db-migrateKanca Açıklamasını Ekleyin
İşin meta verilerinde onu kanca olarak işaretleyin. helm.sh/hook açıklamasının pre-upgrade olarak ayarlanması, bu sıradan İşi kancaya dönüştürür.
metadata:
annotations:
"helm.sh/hook": pre-upgradeGeçiş Komutunu Çalıştırın
İşin kapsayıcısı geçiş aracınızı çalıştırır. Şema değişikliklerinin olması gereken yere uygulanması için onu uygulamanın kullandığı aynı veritabanına yönlendirin.
spec:
containers:
- name: migrate
image: myapp:1.4
command: ["./migrate", "up"]Başarısızlıkta Yeniden Başlatmayın
İşin restartPolicy değerini Never veya OnFailure olarak ayarlayın. Sonsuza kadar döngüye giren bir geçiş, yükseltmenizi engeller ve Helm'in ilerlemesine asla izin vermez.
spec:
template:
spec:
restartPolicy: NeverGörüntü Etiketini Şablonlayın
Etiketini şablonlayarak geçiş aracını uygulamayla senkronize tutun. Sürümlerin eşleşmesi için dağıtımın okuduğu aynı .Values.image.tag değerini yeniden kullanın.
image: "myapp:{{ .Values.image.tag }}"Helm Tamamlanana Kadar Bekletir
Bu bir pre-upgrade kancası olduğundan Helm, İş başarı bildiriminde bulunana kadar yükseltmeyi duraklatır. Geçiş başarısız olursa dağıtım gerçekleşmez. 🛑
Başarıdan Sonra Temizleyin
Aksi hâlde eski geçiş İşleri birikir. Kancayı bir hook-delete-policy ile eşleştirerek başarılı bir İşin ad alanını karmaşıklaştırmak yerine kaldırılmasını sağlayın.
"helm.sh/hook-delete-policy": hook-succeededBenzersiz Adlar Yardımcı Olur
Kanca İşleri oluşturulduktan sonra değiştirilemez; bu nedenle sabit bir ad, sonraki yükseltmede çakışabilir. Ada .Release.Revision eklemek her çalıştırmanın ayrı olmasını sağlar.
name: db-migrate-{{ .Release.Revision }}Kuru Çalıştırmayla Test Edin
Gerçek bir yükseltmeden önce kancanın doğru göründüğünü doğrulamak için chart'ı işleyin. dry-run, kümeye dokunmadan Helm'in oluşturacağı İş bildirimini gösterir.
helm upgrade myapp ./mychart --dry-runHızlı Kontrol
Bir şema geçişinin, yükseltme sırasında yeni uygulama pod'ları başlamadan önce çalışması gerekiyor.
Özet
Bir geçişi pre-upgrade İşi olarak modellediniz, restartPolicy değerini Never olarak ayarladınız ve yeni kodu dağıtmadan önce Helm'in başarıya ulaşılana kadar beklemesini sağladınız. 🗄️
Sıkça Sorulan Sorular
“Veritabanı Geçişi için pre-upgrade Job” dersi ücretsiz mi?
Evet — “Veritabanı Geçişi için pre-upgrade Job” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Helm Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Helm Academy kursu toplamda 4 dersten oluşur.
“Veritabanı Geçişi için pre-upgrade Job” dersinde ne öğreneceğim?
Bir Job'ın dağıtımdan önce çalışması için açıklama ekleyin. Helm Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Helm Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Helm Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Veritabanı Geçişi için pre-upgrade Job” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Helm Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Helm Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Hook'lar Nedir ve Ne Zaman Çalışırlar
- Veritabanı Geçişi için pre-upgrade Job
- Hook Ağırlıkları ve Sıralama
- Hook Silme İlkeleri