Table of Contents
برنامه های مدرن نیاز به مقیاس پذیری، انعطاف پذیری و سرعت تکرار معماری Microservices با استفاده از برنامه های تکlithic به خدمات کوچک، مستقل قابل استقرار، خدمات Azure Kubernetes (AKS) فراهم می کند یک محیط کاملا مدیریت Kubernetes که گسترش، مقیاس، و مدیریت عملیاتی میکروسرویس های کوچک، این مقاله ارائه می دهد بهترین راهنمای جامع و پوشش در مورد ملاحظات امنیتی، و پوشش دادن ملاحظات عملیاتی، و پوشش می دهد.
چرا AKS برای Microservices؟
اجرای میکروسرویس ها در Kubernetes یک تناسب طبیعی است و AKS بیشتر از سربار مدیریت خوشه را شامل می شود. AKS به طور عمیقی با اکوسیستم Azure ادغام می شود، ارائه نظارت داخلی از طریق Azure Monitor، مدیریت هویت با Azure Active Directory و شبکه از طریق Azure Network مدیریت شده Kubernets نیاز به حفظ هواپیماهای کنترل، به طور خودکار ارتقاء، و توسعه قوی برای شرکت های دولتی را کاهش می دهد.
اجرای Microservices در AKS
1- محدود کردن خدمات شما
هر میکروسرویس باید به عنوان یک تصویر container بسته بندی شود.از Dockerfiles برای تعریف وابستگی ها و پیکربندی های زمان اجرا استفاده کنید. Multi-stage به نگه داشتن تصاویر کوچک و امن کمک می کند. تصاویر خود را در Azure Container Registry (ACR) برای دسترسی سریع و امن از خوشه AKS خود ذخیره کنید. ACR با AKS ادغام شده است برای تأیید هویت، حذف نیاز به مدیریت اسرار دستی.
۲- ایجاد و درک خوشه AKS
شما می توانید یک خوشه AKS را از طریق Azure، پورتال Azure یا زیرساخت به عنوان ابزار کد مانند Terraform. کلید تنظیمات شامل اندازه گره (CPU / memory)، تعداد گره، مناطق در دسترس برای دسترسی بالا و پلاگین شبکه (Azure CNI یا kubenet) برای میکروسرویس های تولید، Azure برای عملکرد بهتر شبکه و ادغام با ویژگی های اتصال اتوماتیک به منابع خودکار.
۳- ایجاد کانتینر با Kubernetes Manifests یا Helm Charts
برای استقرار های ساده، Kubernetes (فایل هایYAML) تعریف Deployments، Services، ConfigMaps و Secrets. برای اکوسیستم های میکروسرویس های پیچیده، نمودار Helm ارائه می دهد قالب بندی، نصب مجدد مجدد، تک Helm نمودار می تواند چندین سرویس مرتبط با پارامترهای قابل پیکربندی، ساخت محیط خاص استقرار سازگار با استفاده از او برای مدیریت هر سرویس چرخه عمر، از جمله ارتقاء و ارتقاء.
۴- پیکربندی شبکه و کشف خدمات
Microservices نیاز به ارتباطات قابل اعتماد دارند. Kubernetes Services (CimmerIP، NodePort، LoadBalancer) دارای نقاط پایانی پایدار هستند.استفاده از خوشه ای برای ارتباطات داخلی.برای دسترسی خارجی، پیاده سازی یک کنترل کننده مهاجم مانند NGINX یا Azure Application Gateway Ingress Controller با Azure DNS برای نام دامنه سفارشی.
۵- مدیریت پیکربندی و اسرار
پیکربندی جداگانه از کد با استفاده از ConfigMaps و اسرار.برای داده های حساس مانند رمزهای عبور پایگاه داده و کلیدهای API، استفاده از Azure Key Vault و درایور فروشگاه اسرار برای تزریق اسرار به طور مستقیم به داخل پدها.این اجتناب از ذخیره اسرار در فایل های YAML و فعال سازی خودکار چرخش.
مدیریت Microservices در AKS
مقیاس پذیری
Kubernetes چندین مکانیسم مقیاسی را ارائه می دهد.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.د.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.د.د.د.ک.ک.ک.ک.ک.ک.ک.ک.ک.د.د.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک
نظارت و حفظ
مدیریت موثر نیاز به دید زمان واقعی دارد. فعال کردن Azure Monitor برای Containerها برای جمع آوری معیارها، logs و بینش در مورد سلامت خوشه.برای نظارت دقیق سطح برنامه، استقرار پروتو و Grafana.us معیارهای از pods و گره ها را جمع آوری می کند؛ Grafana داشبوردها را تجسم می کند.از Azure Log Analytics برای جمع آوری logs از تمام میکروسرویس های ساختاری (به عنوان مثال JSON) استفاده می کند.
به روز رسانی و Rollouts
استفاده از به روز رسانی های نورد برای استقرار نسخه های جدید با صفر خرابی. Kubernetes Deployment استراتژی (به روز رسانی یا Rebuild) کنترل سرعت به روز رسانی برای الگوهای پیشرفته استقرار، پیاده سازی آزادهای کنسروی یا استقرار های آبی سبز. اعزام منابع کوچک از ترافیک به نسخه جدید، اجازه می دهد اعتبار واقعی جهان قبل از ابزارهای رول کامل و یا ابزار Argoout در طول استفاده از منابع خودکار و همیشه منابع را برای جلوگیری از ارسال منابع و ارسال منابع.
امنیت امنیتی
امنیت باید در هر لایه ای اعمال شود. یکپارچه سازی Azure Active Directory (Azure AD) با AKS برای Kubernetes RBAC، اعطای مجوزهای ریز دانه ای به توسعه دهندگان و اپراتورهای.استفاده از سیاست Azure برای اجرای قوانین انطباق (به عنوان مثال، عدم اجازه دادن به ظروف ممتاز)
خطوط لوله CI/CD برای Microservices در AKS
خطوط لوله خودکار برای چابکی میکروسرویس ها ضروری هستند.استفاده از Azure DevOps یا GitHub Actions برای ساخت، آزمایش و استقرار هر سرویس به طور مستقل. A معمولی خط لوله: (1) ساخت تصویر container با تست های واحد و یکپارچه سازی؛ (2) تصویر حرکت خودکار به ACR؛ (3) اسکن امنیتی؛ (4) Deploy to a environment with Helm; Smoke Test; ارتقاء تولید یا به روز رسانی ابزار پردازش خودکار مانند اصلاح حالت CDito یا بازیابی مجدد.
برای محیط هایی با بسیاری از میکروسرویس ها، یک رویکرد مونوپورپو یا چند-ترپو را با توجه به ساختار تیم و آزاد کردن کادرها در نظر بگیرید.از خط لوله های جداگانه برای هر سرویس برای فعال کردن استقرار های مستقل استفاده کنید.
ساختار خط لوله (Azure DevOps)
- مرحله ساخت: تست های اجرا، ساخت تصویر Docker، فشار به ACR.
- [[۱] [۱۰] [۱۰] [۱۰] [۱] [۱۰] [۱]] [۱۰] [۱] [۱۰] [۱]] از هلم و Azure CLI برای ارتقاء خدمات در فضای نامdev استفاده کنید.
- آزمون های استنتاج: تست های API را در برابر محیط dev اجرا می کند.
- دروازه ی پرودال: دستی یا چک های کیفیت خودکار قبل از تولید.
- برای اثبات: رولینگ به روز رسانی با بررسی های بهداشتی؛ بازگشت خودکار به شکست.
بهینه سازی هزینه و مدیریت منابع
Microservices در AKS می تواند هزینه های قابل توجهی را ایجاد کند اگر به دقت مدیریت نشود. Set سهمیه منابع منابع در هر فضای نام برای جلوگیری از یک تیم از مصرف منابع خوشه ای.استفاده از Azure Spot VM برای دسته یا کار سخت افزاری خطا در یک گره های اندازه مناسب: استفاده از استخر های کوچکتر برای بارهای کاری و گره های بزرگتر برای خدمات حافظه فشرده.
بهترین روش ها برای تولید Microservices در AKS
- طراحی برای بی دولتی: حالت ذخیره در پایگاه های داده خارجی یا خدمات مدیریت شده (Azure Cosmos DB، Azure SQL یا Redis cache) از ذخیره سازی محلی برای داده های حیاتی اجتناب می کند.
- بررسی سلامت: تعامل و آمادگی برای هر ظرف برای اطمینان از Kubernetes می تواند شکست ها و ترافیک مسیر را به درستی تشخیص دهد.
- استفاده از بودجه اختلال نعوظ: [FLT 1] محافظت از خدمات انتقادی از پایان در طول اختلال های داوطلبانه (تحریم، ارتقاء).
- زیرساختAdopt به عنوان کد: [FLT 1] از Terraform یا Bicep برای ارائه خوشه های AKS، استخر های گره و منابع Azure مرتبط استفاده کنید.این سازگاری در محیط ها را تضمین می کند.
- محیط های حاشیه ای: از فضاهای نام متمایز (dev، prod) استفاده کنید و سیاست های شبکه و RBAC را برای جدا کردن محیط ها اعمال کنید.
- نسخه های Kubernetes را به روز رسانی کنید: AKS به روز رسانی پچ را خودکار می کند، اما شما باید برای ارتقاء نسخه های کوچک برنامه ریزی کنید.استفاده از یک رویکرد مرحله ای: ارتقاء dev اول، سپس تولید.
- بازگشت و بازیابی فاجعه: از Velero برای پشتیبان گیری از منابع Kubernetes و حجم مداوم استفاده کنید.
منابع خارجی
در این باره به آیات قرآن کریم اشاره می کند که در قرآن کریم آمده است: «وَاَمَاْمَاْمَاْمَاَ الْمَهَاَمَاَهَهَاْمَاَاْمَهُوا مَمَهُواَهُوا مَمَهُوا مَهُوا مَهُوا مَهُوا مَمَهُوا مَهُوا مَهُمْمْمْمَهُوا مَهُوا مَهُمَا مَا مَا مَمْمْمْمْمْمَهُوا مَهُوا مَهُمَاَاَهُوا مَاَاَاَاَاَاَاَاَهُوا مَاَاَاَاَاَاَهُوا مَهُوا مَنَنَاَنَنَنَاَاَنَاَاَنَنَاَاَا
نتیجه گیری
استقرار و مدیریت میکروسرویس ها در سرویس Azure Kubernetes نیاز به برنامه ریزی دقیق در معماری، استقرار، نظارت، امنیت و اتوماسیون دارد. AKS پیچیدگی هواپیماهای کنترل Kubernetes را انتزاعی می کند و با اکوسیستم Azure ادغام می شود، اجازه می دهد تیم ها بر ارائه ویژگی های زیر تمرکز کنند - نگهداری، استقرار Helm، تنظیمات خودکار، و قابلیت اطمینان مداوم - می تواند به طور مداوم و توسعه پایدار و توسعه پایدار کمک کند.