CodeBlanks Logo Icon CodeBlanks

Birleştirme - üretim

Tüm kaynakları apply ederek üretim uygulamasını dağıtırsın.

Birleştirme: üretim dağıtımı

Son adımda chart üretime tek komutla dağıtılır ve dağıtım uçtan uca doğrulanır. Güvenli bir CI adımı şunları yapar: chart'ı denetler, farkı gösterir, --atomic ile yükseltir (başarısızsa geri alır) ve dış adresi sınar:

helm lint ./magaza -f values-prod.yaml
helm upgrade --install magaza ./magaza -n magaza -f values-prod.yaml \
  --set image.tag=$GIT_SHA --atomic --timeout 10m
kubectl get all,ing,hpa,pvc -n magaza
curl -fsS https://magaza.example.com/api/saglik

Geri alma planı

Her üretim dağıtımının bir geri alma yolu olmalıdır. Helm revizyonları uygulama sürümünü geri getirir; ama veritabanı göçleri geri alınamayabilir; bu yüzden göçler geriye uyumlu (önce sütun ekle, sonra kullan, en son eskisini kaldır) yazılır:

helm history magaza -n magaza
REVISION  STATUS      APP VERSION   DESCRIPTION
11        superseded  1.4.2         Upgrade complete
12        deployed    1.5.0         Upgrade complete
helm rollback magaza 11 -n magaza --wait

Uygulama Üretime dağıt

Dört komut yaz: ./magaza'yı values-prod.yaml ile denetle; magaza release'ini magaza namespace'inde, yoksa kurarak, values-prod.yaml, --set image.tag=$GIT_SHA, --atomic ve --timeout 10m ile yükselt; magaza'daki all,ing,hpa,pvc nesnelerini listele; curl -fsS https://magaza.example.com/api/saglik ile sına.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
helm lint ./magaza -f values-prod.yaml
helm upgrade --install magaza ./magaza -n magaza -f values-prod.yaml --set image.tag=$GIT_SHA --atomic --timeout 10m
kubectl get all,ing,hpa,pvc -n magaza
curl -fsS https://magaza.example.com/api/saglik

Beklenen çıktı

1 chart(s) linted, 0 chart(s) failed
Release "magaza" has been upgraded. Happy Helming!
NAME                       READY   STATUS    RESTARTS   AGE
pod/api-6b5c4d3e2-abcde    1/1     Running   0          1m
pod/db-0                   1/1     Running   0          3d
{"durum":"ok","surum":"9f3c2a1"}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 image.tag için neden Git commit özeti (GIT_SHA) kullanılır?

  • latest ile aynı olduğu için
  • Helm zorunlu tuttuğu için
  • Her dağıtım hangi kod sürümünün çalıştığını kesin gösterir ve geri alınabilir Doğru cevap
  • Daha kısa olduğu için

Açıklama: Değişmez etiketler tekrarlanabilir dağıtımın temelidir.

2 Başarısız yükseltmeyi otomatik geri al.

Soru
helm upgrade --install magaza ./magaza -n magaza -f values-prod.yaml ____ --timeout 10m
Cevap
helm upgrade --install magaza ./magaza -n magaza -f values-prod.yaml --atomic --timeout 10m

Açıklama: --atomic, başarısızlıkta önceki revizyona döner.

3 Eşleştir.

Kavram Anlamı
helm lint Önce denetle
--atomic Başarısızsa geri al
GIT_SHA etiketi Kesin sürüm
curl -fsS Dış sınama

İleri seviye bölümündeki tüm dersler