Docker & Kubernetes
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.
Örnek çözümü göster
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
Kendini test et
-
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
- Daha kısa olduğu için
Cevabı göster
Her dağıtım hangi kod sürümünün çalıştığını kesin gösterir ve geri alınabilir — Değişmez etiketler tekrarlanabilir dağıtımın temelidir.
-
Başarısız yükseltmeyi otomatik geri al.
helm upgrade --install magaza ./magaza -n magaza -f values-prod.yaml ____ --timeout 10m
Cevabı göster
helm upgrade --install magaza ./magaza -n magaza -f values-prod.yaml --atomic --timeout 10m
-
Eşleştir.
- helm lint
- Önce denetle
- --atomic
- Başarısızsa geri al
- GIT_SHA etiketi
- Kesin sürüm
- curl -fsS
- Dış sınama
Sıradaki ders: Meydan okuma - Ingress