کار Policy working group در Kubernetes


در این گفتار به نقش و اهمیت working group در مدیریت سیاست‌ها در Kubernetes می‌پردازیم.

(توضیح: Policy Working Group مأموریت خود را تکمیل کرده و در حال حاضر فعال نیست. این متن دستاوردها و روند کار آن گروه را منعکس می‌کند.)

در دنیای پیچیده Kubernetes، سیاست‌ها نقش محوری در مدیریت و ایمن‌سازی کلاسترها دارند. ممکن است سوال پیش بیاید که این سیاست‌ها چگونه طراحی، اجرا و در اکوسیستم Kubernetes استاندارد می‌شوند. در ادامه مروری دوستانه و تخصصی روی کارهای Policy Working Group خواهیم داشت تا روندها و نتایجِ کارِ آن گروه را برای مهندسان DevOps و SRE روشن‌تر کنیم. 😊

Policy Working Group بر مأموریتی حساس متمرکز بود: طراحی یک معماری کلی برای سیاست‌ها که هم پیاده‌سازی‌های جاری را دربرگیرد و هم امکان رشد و استانداردسازی پیشنهادات آینده را فراهم کند. هدف گروه توسعه یک معماری سیاست واحد بود که هم برای توسعه‌دهندگان و هم برای کاربران نهایی مفید و قابل‌فهم باشد.

این گروه از روش‌های همکاری بین‌گروهی استفاده کرد تا شفافیت و ثبات را در دنیای پیچیده سیاست‌های Kubernetes افزایش دهد. با تمرکز هم‌زمان بر پیاده‌سازی‌های فعلی و پیشنهادهای آتی، تلاش کردند تا چشم‌انداز سیاست‌ها در Kubernetes همگن و پایدار باقی بماند هرچند فناوری رشد می‌کند.

در ادامه خلاصه‌ای از تجربه‌ها و دیدگاه‌هایی که از هم‌رییسان پیشین گروه به‌دست آمده آورده‌ شده تا برای کسانی که در حوزه DevOps/SRE کار می‌کنند، تصویر عملی‌تری از خروجی‌ها و چالش‌ها ارائه شود.

مقدمه — کمی درباره افراد درگیر

سلام و ممنون از وقتی که گذاشتید! در ادامه خلاصه‌ای از پیشینهٔ هم‌رییسان گروه به‌صورت کوتاه آورده شده است تا زمینهٔ تجربهٔ آن‌ها روشن شود.

Jim Bugwadia: یکی از بنیان‌گذاران و CEO شرکت Nirmata؛ کاری که Nirmata انجام می‌دهد خودکارسازی امنیت و compliance برای بارهای cloud-native است. از 2014 با Kubernetes کار می‌کنند و موتور policy را ابتدا در یک پلتفرم تجاری ساختند و بعد آن را به CNCF اهدا کردند (Kyverno). شرکت در Policy Working Group برای کمک به استانداردسازی مدیریت سیاست‌ها بود.

Andy Suderman: CTO شرکت Fairwinds و مشارکت‌کننده در پروژه‌های متن‌باز مرتبط با Kubernetes مثل Goldilocks، Pluto و Polaris. Polaris به‌عنوان یک policy engine مبتنی بر JSON-schema مسیر Fairwinds را به حوزه سیاست‌ها آغاز کرد و دلیل حضور او در گروه همین بود.

Poonam Lamba: Product Manager برای Google Kubernetes Engine (GKE)؛ از 2017 در فضای Kubernetes فعال بوده و روی محصولات policy و compliance برای GKE کار کرده است. در توسعه GKE CIS benchmarks و پروژه Gatekeeper مشارکت دارد و بیش از دو سال در Policy-WG فعال بوده و به‌عنوان co-chair هم خدمت کرده است.

پاسخ‌ها و نکات بعدی خلاصهٔ دیدگاه‌های این افراد است و بازتاب جمع‌بندی آن‌ها دربارهٔ کار گروه خواهد بود.

دربارهٔ Working Groups — تفاوت با SIG

Working Groupها برخلاف SIGها موقت و موضوعی هستند: برای حل مسائل مشخص، اغلب بین‌چند SIG و با تمرکز عرضی تشکیل می‌شوند و پس از رسیدن به هدف، منحل می‌گردند. آن‌ها معمولاً مالک کد یا مسئولیت بلندمدت روی یک بخش بزرگ از پروژه را بر عهده نمی‌گیرند. این ساختار به هماهنگی بین SIGها برای مسائل مقطعی و فرابخشی کمک می‌کند.

Policy WG عمدتاً با SIG Auth همکاری نزدیک داشت و در ادامه نیز با SIG Security تعامل داشت. سازوکار همکاری شامل ارائهٔ گزارش‌های دوره‌ای در جلسات SIGها و استفاده از کانال‌های مختلف جامعه برای اطمینان از همسویی کارهای WG با دیگر تلاش‌های اکوسیستم Kubernetes بود.

چرایی شکل‌گیری Policy WG

Kubernetes یک سیستم پیکربندی بسیار اعلامی (declarative)، خرد (fine-grained) و قابل‌گسترش است. یک manifest می‌تواند بخش‌های متفاوتی داشته باشد که برای ذینفعان مختلف (توسعه‌دهندگان، تیم امنیت، عملیات و غیره) اهمیت متفاوتی دارد. از این‌رو لازم است سیاست‌هایی وجود داشته باشد که نحوهٔ استفاده، محدودیت‌ها و رعایت الزامات را در سطحی هماهنگ مشخص کنند. Policy WG برای تحقیق و تلاش در جهت استانداردسازی تعریف سیاست‌ها و آرشیواژه‌های مرتبط شکل گرفت تا این پیچیدگی‌ها به شکل قابل‌فهم و عملیاتی مدیریت شوند.

نمونه‌ای از کارهای گروه

از جمله پروژه‌ها و خروجی‌هایی که گروه روی آن‌ها کار کرد می‌توان به موارد زیر اشاره کرد:
– نگارش یک Kubernetes Enhancement Proposal (KEP) برای Policy Reports API تا نحوهٔ تولید و مصرف گزارش‌های سیاست در اکوسیستم استاندارد شود.
– اجرای یک نظرسنجی CNCF برای درک بهتر شیوه‌های استفاده از سیاست‌ها در فضای Kubernetes.
– تهیه یک راهنما (paper) برای کمک به رسیدن به PCI-DSS compliance برای کانتینرها.
– تدوین یک مقاله دربارهٔ مزایای «shift security left» — یعنی آوردن بخشی از امنیت به مراحل ابتدایی توسعه/پایپلاین تا مزایای عملیاتی و امنیتی بدست آید.

اهداف کلیدی و دستاوردها

چارتر Policy WG بر استانداردسازی مدیریت سیاست‌ها و آموزش جامعه در مورد بهترین الگوها متمرکز بود. از دستاوردهای مهم می‌توان به به‌روزرسانی مستندات Kubernetes در بخش Policies، تولید چند whitepaper (مثل Kubernetes Policy Management و Kubernetes GRC) و ایجاد Policy Reports API اشاره کرد که استانداردی برای گزارش‌دهی بین ابزارهای مختلف فراهم کرد. ابزارهای محبوبی مانند Falco، Trivy، Kyverno، kube-bench و دیگران از Policy Reports API پشتیبانی می‌کنند. یکی از اهداف بزرگ، ارتقاء Policy Reports API به سطح SIG یا یافتن یک جایگاه ثابت برای آن بود.

علاوه بر این، با نزدیک شدن ValidatingAdmissionPolicy و MutatingAdmissionPolicy به مرحلهٔ GA، WG نقش راهنمایی و آموزش دربارهٔ trade-offها و الگوهای مناسب استفاده از این APIهای داخلی و راهکارهای CNCF مثل OPA/Gatekeeper و Kyverno را بر عهده داشت.

چالش‌ها

در مسیر کار چند چالش عمده وجود داشت:
– کمبود زمان برای مشارکت منظم: اعضا اغلب مسئولیت‌های شغلی دیگری داشتند و سخت است که زمان ثابت و منظم برای فعالیت در WG اختصاص داده شود.
– مدل تصمیم‌گیری مبتنی بر هم‌گرایی (consensus): این مدل صدای همه را شنوا می‌کند اما گاهی منجر به کندی در تصمیم‌گیری می‌شود.
– اختلاف نظر: وجود دیدگاه‌های متفاوت طبیعی است و نیاز به مدیریت محترمانهٔ اختلافات دارد.
– ورود افراد جدید: تازه‌واردها بدون حضور منظم در جلسات ممکن است دچار عدم‌تماس با زمینهٔ بحث‌ها شده و مشارکت مؤثر برایشان دشوار شود.

نحوهٔ مواجهه با چالش‌ها و درس‌های آموخته‌شده

هیچ راه‌حل ساده‌ای وجود ندارد، اما برخی رویکردها مفید بودند: افزایش تعداد مشارکت‌کنندگان و Maintainerها کمک زیادی می‌کند؛ جامعهٔ CNCF عموماً پذیرای تازه‌واردان است و تشویق می‌کنیم هر کسی که تردید دارد، در جلسات WG یا SIG شرکت کند و ابتدا گوش دهد. شرکت در چند جلسه معمولاً برای درک بحث‌ها لازم است، پس از چند جلسه احساس غریبی نکنید و مستندات را مرور کنید تا به‌سرعت وارد کار شوید.
در مواجهه با اختلاف نظر، رعایت core values جامعهٔ CNCF و احترام متقابل مهم بود. تیم تلاش کرد تصمیم‌گیری‌ها را زمان‌بندی (timebox) کند و مسؤولیت‌ها را مشخص نماید تا حرکت رو به جلو حفظ شود. این سازوکارها به حفظ پویایی و پیشرفت پروژه‌ها کمک کرد. 🚀

جمع‌بندی و دعوت به مشارکت

Policy Working Group مأموریت خود را تحقق بخشید و اکنون غیرفعال است، اما خروجی‌های آن — از جمله Policy Reports API، مقالات راهنما و مستندات به‌روز — همچنان در دسترس جامعه هستند و می‌توانند برای تیم‌های DevOps/SRE مفید باشند. اگر شما درگیر سیاست‌گذاری، امنیت یا کنترل پیکربندی در Kubernetes هستید، پیشنهاد می‌کنم این آثار را مطالعه کنید و در SIGها یا WGهای مرتبط مشارکت کنید؛ حضور فعال در این فضاها بهترین مسیر برای تأثیرگذاری برِ آیندهٔ استانداردها و ابزارها است. 🙌