
آموزش کوبرنتیس Kubernetes برای برنامه نویسان: استقرار کد (Deployment) در کوبرنتیس Kubernetes
آموزش استقرار کد (Deployment) در کوبرنتیس Kubernetes یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، آموزش کوبرنتیس Kubernetes برای برنامه نویسان: استقرار کد (Deployment) در کوبرنتیس Kubernetes است که با نام اصلی Kubernetes for Developers - Deploying Your Code از شرکت Pluralsight منتشر شده است.
کوبرنتیس چیست؟
کوبرنتیس یک پلتفرم portable و extensible و open source برای مدیریت کردن سرویس ها و workload های containerize شده می باشد. با استفاده از کوبرنتیس می توانید به روشی کاملاً declarative روال پیکربندی و خودکار سازی و یا همان automation مربوط به container ها را ساده تر کنید. سرویس های کوبرنتیس میتوانند در سناریوهای مختلف به مدیریت کردن container های اپلیکیشن مورد نظر شما کمک کنند. کوبرنتیس دارای یک اکوسیستم کاملاً پویا و در حال رشد است و ابزارها و سرویس های مختلفی را در اختیار شما قرار می دهد.

کلمه کوبرنتیس در واقع از زبان یونانی و به معنی سُکان دار کشتی و یا کسی که یک دستگاه را مدیریت می کند، نامگذاری شده است. علاوه بر این از عبارت کوتاه شده K8s برای کوبرنتیس استفاده می شود تا از نوشتن کلمه کمی طولانی Kubernetes جلوگیری شود. عدد ۸ جایگزین تعداد کاراکترهای بین حرف اول و حرف آخر کلمه Kubernetes می باشد. شرکت گوگل در سال ۲۰۱۴ پروژه کوبرنتیس را به صورت open-source ایجاد کرد. درواقع کوبرنتیس نتیجه بیش از ۱۵ سال تجربه گوگل در اجرا کردن workload های مربوط به production در scale بسیار بالا می باشد.
Deployment در Kubernetes چگونه کار می کند؟
در Kubernetes، Deployment یکی از منابع مهم برای مدیریت اجرای برنامه های Containerized است. با استفاده از Deployment می توان وضعیت مورد انتظار برنامه، مانند تعداد نسخه های در حال اجرا و نسخه مورد استفاده از Image را تعریف کرد. Kubernetes سپس تلاش می کند وضعیت واقعی را با این تعریف هماهنگ نگه دارد. این روش به توسعه دهندگان اجازه می دهد اجرای برنامه را به شکلی declarative مدیریت کنند و به جای کنترل دستی هر نمونه، وضعیت کلی سرویس را مشخص نمایند.
آشنایی با Deployment برای توسعه دهندگانی اهمیت دارد که می خواهند برنامه های خود را در محیط های مبتنی بر Kubernetes مستقر کنند و نسخه های مختلف آن ها را مدیریت نمایند. تغییر نسخه برنامه یا تنظیمات Deployment می تواند باعث ایجاد تغییر در Pod های تحت مدیریت آن شود. درک این فرایند به شما کمک می کند رفتار برنامه هنگام استقرار نسخه جدید را بهتر پیش بینی کنید و با مفاهیم پایه مدیریت چرخه عمر برنامه در Kubernetes آشنا شوید.
Rolling Update، Canary و Blue-Green Deployment در Kubernetes
هنگام انتشار نسخه جدید یک برنامه، نحوه انتقال از نسخه قبلی به نسخه جدید اهمیت زیادی دارد. Rolling Update امکان جایگزینی تدریجی نمونه های در حال اجرا را فراهم می کند تا تغییر نسخه به صورت مرحله ای انجام شود. این روش در بسیاری از سناریوها از جایگزینی هم زمان تمام نمونه ها جلوگیری می کند، هرچند نتیجه نهایی به تنظیمات Deployment و آمادگی برنامه برای اجرای نسخه جدید نیز وابسته است.

روش های Canary و Blue-Green نیز رویکردهای دیگری برای انتشار نسخه های جدید هستند. در Canary Deployment، نسخه جدید ابتدا برای بخشی محدود از ترافیک یا کاربران در دسترس قرار می گیرد تا رفتار آن ارزیابی شود. در Blue-Green Deployment، دو محیط مجزا برای نسخه فعلی و نسخه جدید در نظر گرفته می شوند و انتقال ترافیک میان آن ها انجام می شود. در این آموزش با تفاوت این روش ها آشنا می شوید و می توانید کاربرد هر رویکرد را در فرایند استقرار برنامه های مبتنی بر Kubernetes بهتر درک کنید.
اجرای Job و CronJob برای پردازش های زمان بندی شده در Kubernetes
همه برنامه ها به صورت یک سرویس دائماً در حال اجرا فعالیت نمی کنند. برخی وظایف باید یک بار انجام شوند و پس از تکمیل به پایان برسند؛ برای مثال، پردازش یک مجموعه داده یا اجرای یک عملیات نگهداری. در Kubernetes، Job برای مدیریت چنین وظایفی استفاده می شود و وضعیت اجرای آن را تا زمان تکمیل یا شکست پیگیری می کند. این قابلیت به توسعه دهندگان کمک می کند پردازش های مستقل را در کنار برنامه های اصلی خود مدیریت کنند.
CronJob امکان زمان بندی اجرای Job ها را بر اساس یک برنامه زمانی مشخص فراهم می کند. برای مثال، می توان اجرای یک وظیفه تکراری را در فاصله های زمانی معین تعریف کرد، بدون اینکه لازم باشد یک فرایند زمان بندی مستقل درون برنامه پیاده سازی شود. آشنایی با Job و CronJob به شما کمک می کند تفاوت میان سرویس های دائمی و پردازش های زمان بندی شده را بهتر درک کنید و برای اجرای وظایف پس زمینه در محیط Kubernetes راهکار مناسبی انتخاب نمایید.
عیب یابی و پایش برنامه های مستقرشده در Kubernetes
پس از استقرار برنامه در Kubernetes، بررسی وضعیت اجرای آن برای شناسایی و رفع مشکلات احتمالی اهمیت دارد. ممکن است یک Pod به درستی اجرا نشود، Container با خطا متوقف شود یا برنامه نتواند به منابع موردنیاز خود دسترسی پیدا کند. در چنین شرایطی، بررسی وضعیت منابع و اطلاعات مربوط به اجرای برنامه به توسعه دهندگان کمک می کند علت مشکل را محدودتر کنند و میان خطاهای مربوط به برنامه و مسائل مربوط به محیط اجرا تمایز بگذارند.
Monitoring و Troubleshooting بخش مهمی از مدیریت برنامه های مستقرشده هستند، زیرا انتشار موفق یک نسخه به معنای عملکرد صحیح آن در تمام شرایط نیست. بررسی وضعیت Deployment ها، رخدادها و گزارش های اجرایی می تواند اطلاعات مفیدی درباره رفتار سیستم ارائه دهد. این دوره برای توسعه دهندگانی مناسب است که با مفاهیم پایه Kubernetes آشنا هستند و می خواهند مهارت خود را در استقرار نسخه های جدید، اجرای پردازش های زمان بندی شده و بررسی مشکلات عملیاتی برنامه ها گسترش دهند.
سرفصل مطالب آموزش ویدئویی کوبرنتیس Kubernetes برای برنامه نویسان: استقرار کد (Deployment) در کوبرنتیس Kubernetes
فصل اول: مقدمه دوره آموزشی- مقدمه دوره آموزشی
- مقدمه و پیش نیازها و نمونه کد
- مقدمه
- بررسی اجمالی Deployment ها در کوبرنتیس
- ایجاد یک Deployment
- استفاده از Deployment ها ها بصورت عملی
- گزینه های مختلف مربوط به Deployment ها
- جمع بندی
- مقدمه
- بررسی Deployment های Rolling Update
- ایجاد یک Deployment از نوع Rolling Update
- کار کردن با Deployment های Rolling Update بصورت عملی
- انجام Roll Back بر روی Deployment ها
- کار با Roll Back بر روی Deployment ها بصورت عملی
- جمع بندی
- مقدمه
- بررسی Canary Deployment
- ایجاد کردن یک Canary Deployment
- کار با Canary Deployment ها بصورت عملی
- جمع بندی
- مقدمه
- درک کردن Blue-Green Deployment ها
- ایجاد یک Blue-Green Deployment
- کار کردن با Blue-Green Deployment ها بصورت عملی: بررسی Blue-Green Deployment
- کار کردن با Blue-Green Deployment بصورت عملی: بررسی Green Deployment
- جمع بندی
- مقدمه
- بررسی Job ها
- بررسی CronJob ها
- ایجاد کردن یک Job و یک CronJob
- کار با Job ها بصورت عملی
- کا رکردن با CronJob ها بصورت عملی
- جمع بندی
- مقدمه
- بررسی اجمالی تکنیک های Monitoring و Troubleshooting
- کار کردن عملی با Web UI Dashboard
- معرفی Metrics Server و kube-state-metricsو Prometheus بصورت عملی
- کار کردن عملی با Grafana
- تکنیک های Troubleshooting با kubectl
- کار با تکنیک های Troubleshooting بصورت عملی
- جمع بندی
- جمع بندی







