Birleştirme - üretim
- Docker & Kubernetes kursu
- İleri seviye
- Ders 65/70
- 5 dk
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/saglikGeri 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 --waitUygulama Ü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
# buraya yazÖrnek çözüm
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/saglikBeklenen çı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.
helm upgrade --install magaza ./magaza -n magaza -f values-prod.yaml ____ --timeout 10m
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 |