داغترین روند در صنعت نرم افزار Kubernetes ، روشی جدید در مورد معماری آنلاین و استقرار برنامه ها است. در اوایل اینترنت ، سازمان ها برای اجرای وب سایت های مختلف مجبور به میزبانی وب سرورهای مجزا می شوند. سپس مدل مجازی سازی ارائه شد ، جایی که یک قطعه سخت افزار می تواند چندین سیستم عامل و استقرار را کنترل کند.

با Kubernetes ، وابستگی های معماری ساده شده است بنابراین یک کانتینر می تواند چندین برنامه را بدون نیاز به مدیریت سیستم عامل های مختلف یا سخت افزار مجازی اجرا کند. شرکت هایی در سراسر جهان از مزایای این رویکرد در محاسبات ابری دیدن می کنند ، به خصوص وقتی که تست و بهبود کیفیت نرم افزار آنها است.

اما خرابی ، قطع شدن و آسیب پذیری هنوز هم هستند ممکن است در یک محیط Kubernetes به دلیل پیچیدگی برنامه های کاربردی مبتنی بر میکروسرویس مدرن. آزمایش تضمین کیفیت عادی در جلب اشکالات و کمبودهای محصول فوق العاده است ، اما همیشه نمی تواند انواع حوادث را پیش بینی کند. این جایی است که مهندسی هرج و مرج می تواند ارزش واقعی را به ارمغان آورد ، زیرا قصد دارد در شناسایی موضوعات آینده تحریک آمیز باشد.

در این مقاله ، ما 5 راه برای شروع استفاده از آزمایش آشوب در یک محیط کوبننتز ارائه خواهیم داد.

1. معرفی شکست شبکه

در بیشتر موارد ، یک خوشه Kubernetes از طریق ارائه دهنده ابر که مرکز داده های خود را مدیریت می کند ، میزبان خواهد شد. این امر باعث می شود ظروف شما به شدت وابسته به یک شبکه پیچیده از زیرساخت ها باشد. شما می خواهید اطمینان حاصل کنید که اگر قطعه ای از تجهیزات شبکه از بین رفته و یا به صورت اشتباه تنظیم شود برنامه های شما می توانند به موقع بازیابی شوند.

برای راه اندازی آزمون هرج و مرج ، گره شبکه ای را شناسایی کنید که در محیط Kubernetes شما تغذیه می کند و سپس آن را خاموش کنید. آدرس IP خود را پایین بیاورید یا آن را تغییر دهید تا غیر قابل دستیابی شود. سپس صبر کنید و مطالعه کنید که ظروف و برنامه های شما چگونه واکنش نشان می دهند. با داده هایی که جمع آوری می کنید ، می توانید خط مشی شبکه را برای غلاف های Kubernetes خود ایجاد کنید که می تواند شامل مراحل برگشت در صورت خرابی شبکه باشد.

2. حداکثر منابع

یکی از مزایای بزرگ معماری کوبنتز ، جداسازی منابع است ، به این معنی که برنامه های کاربردی در یک کانتینر دارای قدرت محاسباتی هستند اما هنوز سطح عملکرد قابل پیش بینی دارند. با این حال ، اگر سخت افزار در پشت خوشه شروع به خراب شدن یا بازدید از حداکثر منابع کند ، این تغییر می کند.

برای این آزمایش هرج و مرج ، سرور فردی را شبیه سازی کنید که به سطح فرسودگی CPU ضربه زده و سپس برای یک دوره زمانی غیرقابل دسترسی باشد. ظرف شما ممکن است سعی کند مجدداً راه اندازی مجدد شود یا منابع خود را از مناطق دیگر بکشاند. هنگام تجزیه و تحلیل نتایج آزمون ، می تواند زمان بسیار خوبی برای تنظیم چک های بهداشتی Kubernetes باشد که می تواند در مورد خرابی منابع به شما هشدار دهد.

3. شبیه سازی ترافیک جهانی

یک اشتباهی که بسیاری از توسعه دهندگان نرم افزار مرتکب می شوند این است که همیشه برنامه های خود را با استفاده از ترافیک محلی و داخلی تست کنید. این واقع بینانه نیست؛ هنگامی که یک محصول به صورت زنده از طریق اینترنت انجام می شود ، در سراسر جهان با سرعت متفاوت اینترنت در دسترس افراد قرار می گیرد.

به همین دلیل ، هنگام اجرای تست بار در یک خوشه Kubernetes ، از طریق یک شبکه خصوصی مجازی (VPN) کار کنید. ) تا بتوانید برای هر آزمایش منطقه یا کشور را مشخص کنید و یک آدرس IP جدید از آن منطقه بدست آورید. در حالی که ارائه دهندگان مختلفی برای انتخاب وجود دارند ، از یک سرویس VPN بر اساس پروتکل OpenVPN استفاده کنید. OpenVPN برای پیاده سازی کاملاً ساده است و می توانید را در داخل یک Cluster Kubernetes اجرا کنید و اگر به درستی پیکربندی شود ، به شما امکان می دهد از طریق یک شبکه خصوصی به غلاف برسید.

از آنجا به دنبال ارائه دهنده ای باشید که سرورهایی را در آن داشته باشد. بسیاری از کشورهای مختلف این به شما امکان می دهد تا عملکرد در سراسر جهان را ردیابی کنید و ببینید آیا می خواهید پیکربندی Kubernetes خود را در چندین مرکز داده تکرار کنید. با نصب VPN ، فرآیند تعریف آدرسهای IP مختلف دشوار نیست.

از VPN ها نیز می توانید برای ] برای افزایش امنیت از محیط خوشه دار خود استفاده کنید. عناصر پیکربندی برای Kubernetes باید به یک گروه خاص از کاربران و آدرس های IP قفل شوند و این شانس را برای یک هکر کاهش می دهد تا بتواند در سیستم های شما نفوذ کند و حمله ای را انجام دهد.

4. Block DNS

هر درخواست وب با استفاده از سرویس نام دامنه (DNS) ، که وظیفه ترجمه نام های میزبان را به آدرس های IP دارد ، از طریق اینترنت هدایت می شود. در سطح سازمانی ، یک کانتینر Kubernetes باید بتواند مرحله نهایی ترافیک DNS را انجام دهد ، زیرا درخواست های ورودی و خروجی را تحمل می کند.

شبیه سازی یک شکست DNS داخلی می تواند یک آزمایش آشوب با ارزش باشد ، زیرا این موضوع به شما نشان می دهد که کوبننتس چگونه است. خوشه در شرایطی که جستجوی DNS در دسترس نباشد ، واکنش نشان می دهد. ممکن است افت ناگهانی در ترافیک ورودی مشاهده شود و غلافهای جدید Kubernetes ممکن است در راه اندازی نتوانند. به عنوان غذای آماده ، شما می خواهید ورود به سیستم DNS را به محیط خود اضافه کنید تا در آینده به اشکال زدایی کمک کند.

5. ذخیره سازی اضافه بار

یک ظرف Kubernetes به طور کلی به مجموعه ای از دیسک های سخت افزاری محلی و دستگاههای ذخیره سازی شبکه متکی است. برنامه های داخل کانتینر بطور خودکار دارای تعادل بار هستند و حافظه محلی را به اشتراک می گذارند ، اما یک خرابی درایو منفرد می تواند با استفاده از همان مجموعه سخت افزاری ، مشکلاتی را برای کل خوشه ایجاد کند.

برای شبیه سازی ذخیره سازی اضافه بار در یک آزمایش هرج و مرج ، سعی کنید از ابزاری استفاده کنید که تأخیر درایو را برای ذخیره محلی اضافه کنید تا خوشه فکر کند حافظه غیرقابل اعتماد است. این ممکن است نیاز به اضافه کردن حجم پویا فراهم آوردن به محیط Kubernetes شما باشد تا یک کانتینر بصورت خودکار در صورت بروز حادثه می تواند فضای ذخیره بیشتری را درخواست کند.

همچنین آزمایش عملکرد افزایشی در ذخیره سازی در صورت عملکرد خود بسیار مهم است. Kubernetes در چندین منطقه جهانی خوشه دارد. در صورت بروز یک فاجعه طبیعی یا قطع عمده ابر ، موازنه بار شما باید به طور خودکار از طریق میزبان کار برکنار مجدداً مورد استفاده قرار گیرد تا تأثیر آن برای کاربران خارجی حداقل باشد.

Final Thoughts

در آغوش گرفتن از مدل معماری کوبنتز می تواند برنده بزرگی برای تیم های نرم افزاری در هر اندازه. روند استقرار و ادغام شما را بسیار ساده تر می کند ، اگرچه نمی توانید پیچیدگی محیط را که در لایه زیر آن نشسته است فراموش کنید. Kubernetes به گونه ای طراحی شده است که می تواند به برخی مسائل واکنش نشان دهد ، اما شما نمی توانید همه چیز را پیش بینی کنید.

اصول مهندسی آشوب توسعه دهندگان را ترغیب می کند تا تغییرات غیرمنتظره را در یک محیط معرفی کنند و ببینند سیستم چگونه واکنش نشان می دهد. اجرای این نوع آزمایشات با Kubernetes راهی عالی برای درک نقاط ضعف شبکه شما و کشف روشهای جدید برای پیکربندی خوشه برای حداکثر عملکرد است. با تنظیم درست ، خرابی می تواند چیزی از گذشته باشد.