بازگرداندن Kubernetes Deployment: Rolling Updates و Rollout Undos

Summarize this content to 400 words in Persian Lang
مقدمه
Kubernetes شیوه استقرار و مدیریت برنامهها را متحول کرده است و تیمها را قادر میسازد تا دسترسی و قابلیت اطمینان بالایی را حفظ کنند. در میان بسیاری از ویژگی های آن، استقرار Kubernetes به عنوان یک مکانیسم قوی برای مدیریت نسخه برنامه برجسته است. در این مقاله، مفاهیم به روز رسانی و بازگشت، اهمیت آنها و اجرای عملی را بررسی خواهیم کرد. شما یاد خواهید گرفت که چگونه از آپتایم برنامه در طول تغییرات اطمینان حاصل کنید و در صورت بروز مشکل به حالت های پایدار برگردید.
این راهنما شامل موارد زیر است:
درک استقرارها
انجام به روز رسانی های متحرک
اجرای عقبگردها به طور موثر
1. درک استقرار Kubernetes
الف استقرار Kubernetes کنترل کننده ای است که چرخه عمر برنامه شما را مدیریت می کند. این تضمین می کند که وضعیت مورد نظر برنامه شما با وضعیت فعلی مطابقت دارد و استقرارها را قابل اعتماد و تکرارپذیر می کند.
مفاهیم کلیدی:
ماکت ها: تعداد نمونههای غلاف یکسانی که در هر زمان اجرا میشوند.
دولت مورد نظر: پیکربندی تعریف شده در مانیفست استقرار.
قالب پاد: طرحی برای ایجاد غلاف، از جمله مشخصات کانتینر و متغیرهای محیطی.
ویژگی های Deployments:
مقیاس بندی: به طور یکپارچه کپی ها را برای مطابقت با تقاضا افزایش یا کاهش دهید.
خود درمانی: به طور خودکار غلاف های خراب را جایگزین کنید.
کنترل نسخه: تاریخچه ای از نسخه های برنامه را برای برگشت نگه دارید.
مانیفست نمونه:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
– name: my-app-container
image: my-app:v1.0
ports:
– containerPort: 80
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
در مانیفست بالا، Kubernetes سه غلاف از را تضمین می کند my-app با استفاده از نسخه تصویر مشخص شده در حال اجرا هستند v1.0.
2. پیاده سازی به روز رسانی های چرخشی
الف به روز رسانی چرخان به شما این امکان را می دهد تا با جایگزینی تدریجی غلاف های قدیمی با موارد جدید، یک برنامه را بدون زمان خرابی به روز کنید.
پارامترهای کلیدی:
maxUnavailable: حداکثر تعداد پادهایی که در طول بهروزرسانی در دسترس نیستند (پیشفرض: 25%).
maxSurge: حداکثر تعداد پادهای اضافی که میتوانند در طول بهروزرسانی اجرا شوند (پیشفرض: 25%).
استقرار مثال با استراتژی بهروزرسانی رولینگ:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
– name: my-app-container
image: my-app:v1.0
ports:
– containerPort: 80
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
در این پیکربندی:
Kubernetes تضمین می کند که تنها یک پاد در یک زمان در دسترس نیست (maxUnavailable: 1).
می تواند در طول فرآیند به روز رسانی یک غلاف اضافی ایجاد کند (maxSurge: 1).
3. انجام یک به روز رسانی چرخشی
برای به روز رسانی برنامه با نسخه جدید تصویر:
گام به گام:
تصویر استقرار را به روز کنید:
kubectl set image deployment/my-app my-app-container=my-app:v1.1
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
نظارت بر پیشرفت به روز رسانی:
kubectl rollout status deployment/my-app
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
به روز رسانی را تأیید کنید: مطمئن شوید که پادها نسخه جدید را اجرا می کنند:
kubectl get pods -l app=my-app
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
Kubernetes بهصورت تدریجی غلافها را بهروزرسانی میکند و حداقل زمان خرابی را تضمین میکند.
4. Rollout Undo و Rollback Strategy
اگر بعد از بهروزرسانی مشکلی پیش آمد، میتوانید با استفاده از a به حالت پایدار قبلی برگردید عقبگرد.
انجام یک واگرد انتشار:
Undo Deployment:
kubectl rollout undo deployment/my-app
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مشاهده تاریخچه عرضه:
kubectl rollout history deployment/my-app
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مثال خروجی:
REVISION CHANGE-CAUSE
1 Initial deploy
2 Updated image to v1.1
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
بازگشت به یک ویرایش خاص:
kubectl rollout undo deployment/my-app –to-revision=1
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مثال عملی:
فرض کنید v1.1 یک باگ معرفی می کند بازگشت به v1.0 ثبات برنامه را تضمین می کند:
kubectl rollout undo deployment/my-app
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این دستور برنامه را به نسخه قبلی بازیابی می کند (v1.0).
5. بهترین روش ها برای بازگشت
تست کامل: تأیید تغییرات در محیط های صحنه سازی.
نسخه سازی: از نسخهسازی معنایی برای تصاویر ظرف استفاده کنید (مثلاً my-app:v1.0، my-app:v1.1).
حاشیه نویسی ها: برای وضوح، ابرداده را به استقرارها اضافه کنید:
metadata:
annotations:
change-cause: “Updated image to v1.1 for bug fix”
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
نظارت: از ابزارهایی مانند Prometheus و Grafana برای ردیابی معیارها و شناسایی مشکلات استفاده کنید.
6. تکنیک های عقبگرد پیشرفته
استقرار قناری:
ابتدا به روز رسانی را برای زیرمجموعه کوچکی از کاربران اجرا کنید. به عنوان مثال:
replicas: 5
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0
maxSurge: 2
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این امر پذیرش تدریجی با نظارت را قبل از عرضه کامل تضمین می کند.
استقرارهای سبز-آبی:
دو محیط (آبی: پایدار، سبز: به روز) را حفظ کنید. فقط پس از تأیید، ترافیک را به محیط سبز تغییر دهید.
استراتژی
خرابی
پیچیدگی بازگشت
به روز رسانی رولینگ
حداقل
متوسط
آبی-سبز
هیچ کدام
کم
7. عیب یابی مشکلات بازگشت
رویدادهای پاد را بررسی کنید:
kubectl describe pods
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مشاهده گزارشها:
kubectl logs
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
استقرار مانیتور:
kubectl get pods –watch
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مسائل رایج:
غلاف گیر کرده است Pending یا CrashLoopBackOff.
انتخابگرها در مانیفست استقرار پیکربندی اشتباهی دارند.
نتیجه گیری
تسلط بر به روز رسانی های چرخشی و بازگشت به عقب در Kubernetes در دسترس بودن و پایداری بالا را برای برنامه های شما تضمین می کند. با پیروی از تکنیک ها و بهترین شیوه های ذکر شده در این راهنما، می توانید با اطمینان استقرارها را مدیریت کرده و خطرات را کاهش دهید.
فراخوان برای اقدام
تجربیات خود را در مورد بهروزرسانیها و بازگردانیها در نظرات زیر به اشتراک بگذارید.
اسناد رسمی Kubernetes را کاوش کنید و استراتژیهای استقرار را در خوشه خود تمرین کنید.
مقدمه
Kubernetes شیوه استقرار و مدیریت برنامهها را متحول کرده است و تیمها را قادر میسازد تا دسترسی و قابلیت اطمینان بالایی را حفظ کنند. در میان بسیاری از ویژگی های آن، استقرار Kubernetes به عنوان یک مکانیسم قوی برای مدیریت نسخه برنامه برجسته است. در این مقاله، مفاهیم به روز رسانی و بازگشت، اهمیت آنها و اجرای عملی را بررسی خواهیم کرد. شما یاد خواهید گرفت که چگونه از آپتایم برنامه در طول تغییرات اطمینان حاصل کنید و در صورت بروز مشکل به حالت های پایدار برگردید.
این راهنما شامل موارد زیر است:
- درک استقرارها
- انجام به روز رسانی های متحرک
- اجرای عقبگردها به طور موثر
1. درک استقرار Kubernetes
الف استقرار Kubernetes کنترل کننده ای است که چرخه عمر برنامه شما را مدیریت می کند. این تضمین می کند که وضعیت مورد نظر برنامه شما با وضعیت فعلی مطابقت دارد و استقرارها را قابل اعتماد و تکرارپذیر می کند.
مفاهیم کلیدی:
- ماکت ها: تعداد نمونههای غلاف یکسانی که در هر زمان اجرا میشوند.
- دولت مورد نظر: پیکربندی تعریف شده در مانیفست استقرار.
- قالب پاد: طرحی برای ایجاد غلاف، از جمله مشخصات کانتینر و متغیرهای محیطی.
ویژگی های Deployments:
- مقیاس بندی: به طور یکپارچه کپی ها را برای مطابقت با تقاضا افزایش یا کاهش دهید.
- خود درمانی: به طور خودکار غلاف های خراب را جایگزین کنید.
- کنترل نسخه: تاریخچه ای از نسخه های برنامه را برای برگشت نگه دارید.
مانیفست نمونه:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: my-app:v1.0
ports:
- containerPort: 80
در مانیفست بالا، Kubernetes سه غلاف از را تضمین می کند my-app
با استفاده از نسخه تصویر مشخص شده در حال اجرا هستند v1.0
.
2. پیاده سازی به روز رسانی های چرخشی
الف به روز رسانی چرخان به شما این امکان را می دهد تا با جایگزینی تدریجی غلاف های قدیمی با موارد جدید، یک برنامه را بدون زمان خرابی به روز کنید.
پارامترهای کلیدی:
-
maxUnavailable
: حداکثر تعداد پادهایی که در طول بهروزرسانی در دسترس نیستند (پیشفرض: 25%). -
maxSurge
: حداکثر تعداد پادهای اضافی که میتوانند در طول بهروزرسانی اجرا شوند (پیشفرض: 25%).
استقرار مثال با استراتژی بهروزرسانی رولینگ:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: my-app:v1.0
ports:
- containerPort: 80
در این پیکربندی:
- Kubernetes تضمین می کند که تنها یک پاد در یک زمان در دسترس نیست (
maxUnavailable: 1
). - می تواند در طول فرآیند به روز رسانی یک غلاف اضافی ایجاد کند (
maxSurge: 1
).
3. انجام یک به روز رسانی چرخشی
برای به روز رسانی برنامه با نسخه جدید تصویر:
گام به گام:
- تصویر استقرار را به روز کنید:
kubectl set image deployment/my-app my-app-container=my-app:v1.1
- نظارت بر پیشرفت به روز رسانی:
kubectl rollout status deployment/my-app
- به روز رسانی را تأیید کنید: مطمئن شوید که پادها نسخه جدید را اجرا می کنند:
kubectl get pods -l app=my-app
Kubernetes بهصورت تدریجی غلافها را بهروزرسانی میکند و حداقل زمان خرابی را تضمین میکند.
4. Rollout Undo و Rollback Strategy
اگر بعد از بهروزرسانی مشکلی پیش آمد، میتوانید با استفاده از a به حالت پایدار قبلی برگردید عقبگرد.
انجام یک واگرد انتشار:
- Undo Deployment:
kubectl rollout undo deployment/my-app
- مشاهده تاریخچه عرضه:
kubectl rollout history deployment/my-app
مثال خروجی:
REVISION CHANGE-CAUSE
1 Initial deploy
2 Updated image to v1.1
- بازگشت به یک ویرایش خاص:
kubectl rollout undo deployment/my-app --to-revision=1
مثال عملی:
فرض کنید v1.1
یک باگ معرفی می کند بازگشت به v1.0
ثبات برنامه را تضمین می کند:
kubectl rollout undo deployment/my-app
این دستور برنامه را به نسخه قبلی بازیابی می کند (v1.0
).
5. بهترین روش ها برای بازگشت
- تست کامل: تأیید تغییرات در محیط های صحنه سازی.
-
نسخه سازی: از نسخهسازی معنایی برای تصاویر ظرف استفاده کنید (مثلاً
my-app:v1.0
،my-app:v1.1
). - حاشیه نویسی ها: برای وضوح، ابرداده را به استقرارها اضافه کنید:
metadata:
annotations:
change-cause: "Updated image to v1.1 for bug fix"
- نظارت: از ابزارهایی مانند Prometheus و Grafana برای ردیابی معیارها و شناسایی مشکلات استفاده کنید.
6. تکنیک های عقبگرد پیشرفته
استقرار قناری:
ابتدا به روز رسانی را برای زیرمجموعه کوچکی از کاربران اجرا کنید. به عنوان مثال:
replicas: 5
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0
maxSurge: 2
این امر پذیرش تدریجی با نظارت را قبل از عرضه کامل تضمین می کند.
استقرارهای سبز-آبی:
دو محیط (آبی: پایدار، سبز: به روز) را حفظ کنید. فقط پس از تأیید، ترافیک را به محیط سبز تغییر دهید.
استراتژی | خرابی | پیچیدگی بازگشت |
---|---|---|
به روز رسانی رولینگ | حداقل | متوسط |
آبی-سبز | هیچ کدام | کم |
7. عیب یابی مشکلات بازگشت
- رویدادهای پاد را بررسی کنید:
kubectl describe pods
- مشاهده گزارشها:
kubectl logs
- استقرار مانیتور:
kubectl get pods --watch
مسائل رایج:
- غلاف گیر کرده است
Pending
یاCrashLoopBackOff
. - انتخابگرها در مانیفست استقرار پیکربندی اشتباهی دارند.
نتیجه گیری
تسلط بر به روز رسانی های چرخشی و بازگشت به عقب در Kubernetes در دسترس بودن و پایداری بالا را برای برنامه های شما تضمین می کند. با پیروی از تکنیک ها و بهترین شیوه های ذکر شده در این راهنما، می توانید با اطمینان استقرارها را مدیریت کرده و خطرات را کاهش دهید.
فراخوان برای اقدام
- تجربیات خود را در مورد بهروزرسانیها و بازگردانیها در نظرات زیر به اشتراک بگذارید.
- اسناد رسمی Kubernetes را کاوش کنید و استراتژیهای استقرار را در خوشه خود تمرین کنید.