Bir dağıtım kullanarak uygulamayı dağıttıktan sonra ve ardından replika kümesinde uygulama sürümünü değiştirdikten sonra ne olur?
sobes.tech yapay zeka
AI'dan gelen yanıt
Deployment kaynağında uygulama sürümünü değiştirdikten sonra, bu Deployment ile ilişkili ReplicaSet güncellenecektir. Deployment, yeni konteyner imajı sürümüyle yeni bir ReplicaSet oluşturacaktır. Eski ReplicaSet kademeli olarak küçültülürken, yeni ReplicaSet yukarı doğru ölçeklenir. Bu süreç, varsayılan olarak otomatik gerçekleşen rolling update (kademeli güncelleme) olarak adlandırılır.
Özel adımlar:
- Kullanıcı veya CI/CD sistemi Deployment'ı günceller.
- Deployment, yeni imaj sürümünü içeren bir spec ile yeni bir ReplicaSet oluşturur.
- Yeni ReplicaSet, yeni sürümle podlar oluşturmaya başlar.
- Yeni podların bir kısmı
Readydurumuna geçtikçe, Deployment eski ReplicaSet'i aşağı doğru ölçeklendirir ve eski sürümdeki podları kaldırır. - Tüm podlar yeni ReplicaSet'in kontrolü altına alınana kadar süreç devam eder.
- Eski ReplicaSet kalır, ancak istenen replikas sayısı 0 olur.
Bu, uygulama güncellemesi sırasında sıfır kesinti süresi sağlar (yeterli kaynaklar ve podların düzgün hazır olması koşuluyla) ve Deployment tekrar güncellenerek kolayca önceki sürüme dönmeyi mümkün kılar.
Deployment YAML güncelleme örneği:
# Güncellenmiş Deployment YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25% # İstenen sayının üzerinde oluşturulabilecek maksimum pod sayısı
maxUnavailable: 25% # Güncelleme sırasında erişilemez olabilecek maksimum pod sayısı
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: my-registry/my-app:v1.1.0 # Değiştirilen imaj sürümü
ports:
- containerPort: 80
ReplicaSet'i manuel olarak değiştirmek şiddetle önerilmez ve öngörülemeyen davranışlara yol açabilir, çünkü Deployment, ReplicaSet'in durumunu istenen duruma uygun hale getirmeye çalışırken değişikliklerinizi üzerine yazar. Uygulama ile ilgili tüm yönetilen değişiklikler, Deployment kaynağı aracılığıyla yapılmalıdır.