کارخانهٔ محیط با Pulumi و vCluster روی EKS
خلاصهٔ کاملتر
نویسنده با اشاره به یه مطالعهٔ موردی AWS شروع میکنه که میگه Deloitte با کوچ کردن به مدل خوشهٔ مجازی روی Amazon EKS، راهاندازی محیطهای تست رو ۸۹٪ سریعتر کرده و حدود ۵۰۰ ساعت QA در سال صرفهجویی کرده؛ اونها دهها خوشهٔ جدا رو تو یه خوشهٔ میزبان با بیش از ۵۰ نمونهٔ vCluster ادغام کردن. این پست همون معماری رو با Pulumi پیاده میکنه.
مشکلی که قراره حل بشه «پراکندگی محیطها» و کندی راهاندازیه. مدل سنتی یعنی یه خوشهٔ کامل EKS برای هر توسعهدهنده یا feature branch، که هرچند ایزولهسازی خوبی میده ولی ساختنش ۱۵ دقیقه یا بیشتر طول میکشه و مدیریت دهها خوشه هم گرون و پردردسره. به گفتهٔ نویسنده چیزی که تیمهای پلتفرم لازم دارن یه مدل «multi-tenancy نرم»ـه که برای توسعهدهنده مثل خوشهٔ اختصاصی حس بشه ولی روی زیرساخت مشترک اجرا بشه.
معماری دو لایه داره: یه خوشهٔ میزبان که با EKS Auto Mode مدیریت میشه و پردازش و شبکه و استوریج رو فراهم میکنه، و محیطهای مستأجر که همون vClusterها هستن و بهصورت پاد داخل namespaceهای میزبان اجرا میشن. طبق معماری vCluster، یه کنترلپلین مجازی درخواستهای API رو هندل میکنه و یه syncer منابع مجازی رو به خوشهٔ میزبان نگاشت میکنه.
بخش جذاب اینه که هر مستأجر کنترلپلین خودش رو داره و میتونه CRD و namespace و RBAC خودش رو مدیریت کنه، در حالی که تیم پلتفرم با کوتا، NetworkPolicy، pod security و مرزهای IAM از میزبان و بقیهٔ مستأجرها محافظت میکنه. نویسنده تأکید میکنه قبل از نصب vCluster باید namespace و ResourceQuota ساخت تا یه مستأجر نتونه همهٔ منابع میزبان رو ببلعه.
تکهٔ زیر نشون میده چطور با Pulumi یه خوشهٔ EKS با Auto Mode فعال تعریف میشه؛ Auto Mode خودش provisioning و scaling و آپدیت نودها رو بر اساس نیاز پادها مدیریت میکنه:
const hostCluster = new eks.Cluster("host-cluster", {
name: clusterName,
authenticationMode: eks.AuthenticationMode.Api,
vpcId: vpc.vpcId,
publicSubnetIds: vpc.publicSubnetIds,
privateSubnetIds: vpc.privateSubnetIds,
autoMode: { enabled: true },
});خود vCluster هم با منبع Helm Release نصب میشه و بلوک values برای هر پروفایل مستأجر تنظیم میشه. نویسنده چند نکتهٔ عملیاتی هم میگه: kubeconfig تولیدشده باید مثل secret رفتار بشه و ممکنه موقع ساخت اولیه از آمادهشدن Helm عقب بمونه، RBAC پیشفرض تو خوشههای خیلی محدودشده شاید کافی نباشه، و EKS Auto Mode از AMIهای immutable و طول عمر ۲۱ روزهٔ نود استفاده میکنه پس باید replica و PodDisruptionBudget و استوریج پایدار رو برای تحمل اختلال تنظیم کرد.
نکات کلیدی:
- الگوی «کارخانهٔ محیط» دهها vCluster رو روی یه خوشهٔ میزبان مشترک بالا میآره
- به ادعای مطالعهٔ موردی AWS، Deloitte با این مدل ۸۹٪ سریعتر محیط میسازه
- EKS Auto Mode، provisioning و scaling نودها رو خودکار میکنه
- کوتا، RBAC و NetworkPolicy ایزولهسازی بین مستأجرها رو تضمین میکنن
- kubeconfig مجازی باید secret تلقی بشه و طول عمر ۲۱ روزهٔ نودها در طراحی لحاظ بشه




