DevOps Labdon
459 subscribers
24 photos
3 videos
2 files
690 links
👑 DevOps Labdon

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
kuik: container image caching system

🟢 خلاصه مقاله:
**kuik یک سیستم کش برای imageهای کانتینری است که با نگه‌داری و بازاستفاده از لایه‌های OCI سرعت pull و build را بالا می‌برد، تأخیر راه‌اندازی را کاهش می‌دهد و هزینه پهنای‌باند را کم می‌کند. این ابزار با deduplication، سیاست‌های پر/تخلیه کش، و invalidation مبتنی بر digest یکپارچگی محتوا را حفظ می‌کند و می‌تواند به‌صورت cache محلی، proxy رجیستری یا به‌شکل DaemonSet/sidecar در Kubernetes به‌کار رود. ادغام با Docker و سایر runtimeهای OCI، به‌همراه مشاهده‌پذیری و کنترل دسترسی، اتخاذ آن را در محیط‌های توسعه، CI/CD و تولید ساده و قابل اتکا می‌کند.

#containers #caching #DevOps #Kubernetes #Docker #OCI #CICD #performance

🟣لینک مقاله:
https://ku.bz/ryRQH7fxW


👑 @DevOps_Labdon
🔵 عنوان مقاله
Keel: Kubernetes Deployment Automation Engine

🟢 خلاصه مقاله:
** Keel یک Kubernetes Operator است که به‌صورت خودکار به‌روزرسانی‌های Helm، Deployment، DaemonSet و StatefulSet را اجرا می‌کند. با رصد نسخه‌های جدید ایمیج‌ها یا تغییرات Helm chart، به‌روزرسانی‌ها را به شکل Rolling و مطابق مکانیزم‌های بومی Kubernetes انجام می‌دهد و به سلامت سرویس‌ها و استراتژی‌های rollout احترام می‌گذارد. امکان تعریف سیاست‌ها برای کنترل نوع و نحوه به‌روزرسانی‌ها (مثل محدودکردن به نسخه‌های امن یا نیاز به تأیید) وجود دارد و Keel با گردش‌کارهای فعلی تیم‌ها سازگار است. نتیجه، کاهش کارهای تکراری، جلوگیری از ناهمخوانی پیکربندی و به‌روزرسانی ایمن و یکنواخت سرویس‌ها در مقیاس است.

#Kubernetes #Keel #Helm #DevOps #Automation #ContinuousDelivery #Containers

🟣لینک مقاله:
https://ku.bz/N-jRpJkrH


👑 @DevOps_Labdon
1
🔵 عنوان مقاله
Inside a Pod’s Birth: Veth Pairs, IPAM, and Routing with Kindnet CNI

🟢 خلاصه مقاله:
این مقاله روند ایجاد شبکه برای یک Pod در Kubernetes با استفاده از Kindnet به‌عنوان CNI را گام‌به‌گام توضیح می‌دهد. ابتدا با فراخوانی CNI توسط kubelet، افزونه Kindnet یک جفت veth می‌سازد؛ یک سر آن به فضای نام شبکه Pod منتقل و به‌عنوان eth0 تنظیم می‌شود و سر دیگر در میزبان می‌ماند و به پیکربندی شبکه گره متصل می‌شود. سپس IPAM یک آدرس IP از محدوده PodCIDR گره تخصیص می‌دهد، روی eth0 اعمال می‌شود و مسیر پیش‌فرض داخل Pod به دروازه میزبان تنظیم می‌گردد.

برای ارتباط در سطح کلاستر، Kindnet روی گره‌ها مسیرهایی نصب می‌کند: مسیرهای محلی برای Podهای همان گره و مسیرهای راه‌دور به PodCIDR گره‌های دیگر از طریق IP گره‌ها. در صورت نیاز، قوانین iptables برای hairpin و NAT نیز اعمال می‌شود تا دسترسی به بیرون و بازگشت ترافیک به‌درستی انجام شود. با حذف Pod، فراخوانی DEL همه تنظیمات را پاک می‌کند: veth حذف، IP آزاد و مسیرها جمع‌آوری می‌شوند؛ در نتیجه، مسیر داده‌ای ساده و کم‌هزینه بین Pod و شبکه میزبان ایجاد می‌شود.

#Kubernetes #CNI #Kindnet #Networking #Containers #IPAM #veth #PodNetworking

🟣لینک مقاله:
https://ku.bz/qC-5078rY


👑 @DevOps_Labdon
🔵 عنوان مقاله
More devops than I bargained for

🟢 خلاصه مقاله:
یک مهاجرت «ساده» از x86 به ARM64 تبدیل شد به یک بحران تمام‌عیار DevOps. به‌محض ورود نودهای ARM64، مشکل‌ها از چند جهت فوران کرد: نبودن base imageهای arm64، وابستگی سرویس‌ها به باینری‌ها و پکیج‌های بومی، و CrashLoop به‌خاطر “exec format error”. با ساخت multi-arch image و manifest list و اصلاح CI بخشی حل شد، اما Helm chartها هنوز فرض‌های amd64 داشتند و باعث زمان‌بندی نادرست، ImagePullBackOff و ناسازگاری در sidecarها شدند. بدتر از همه، شبکه بود: در کلاستر dual-stack، IPv6 زیر بار می‌برید؛ MTU ناهماهنگ، تنظیمات CNI، iptables/nft و محدودیت‌های conntrack دست‌به‌دست هم دادند و ما را ساعت ۴ صبح پای tcpdump و تنظیم sysctl نشاندند. جمع‌بندی: تغییر معماری، به‌روزرسانی OS، دست‌کاری CNI و فعال‌سازی dual-stack را یک‌جا انجام ندهید؛ برای هرکدام پنجره تست و rollback جدا بگذارید، observability و ابزارهای eBPF اضافه کنید، Ingress و sidecarها را از نظر multi-arch راستی‌آزمایی کنید و پوشش تست multi-arch را در CI اجباری کنید.

#DevOps #Kubernetes #ARM64 #x86 #IPv6 #CNI #Containers #CloudNative

🟣لینک مقاله:
https://ku.bz/svxMcSqWJ


👑 @DevOps_Labdon
🔵 عنوان مقاله
Zarf: airgapped installation

🟢 خلاصه مقاله:
Zarf ابزاری برای نصب امن و قابل اتکا در محیط‌های بدون اتصال (air-gapped) است که با ساخت یک بسته قابل‌حمل شامل همه وابستگی‌ها—از جمله تصاویر کانتینری، نمودارهای Helm، مانیفست‌های Kubernetes، باینری‌ها و پیکربندی—استقرار را بدون نیاز به اینترنت ممکن می‌کند. این بسته‌ها نسخه‌قفل، دارای چک‌سام و قابل امضا هستند؛ روی سیستم متصل ساخته می‌شوند، با رسانه قابل‌حمل منتقل می‌گردند و در مقصد با چند فرمان نصب می‌شوند. Zarf می‌تواند پیش‌نیازهایی مانند رجیستری محلی و سرویس Git را راه‌اندازی کند و ارجاع تصاویر را به رجیستری داخلی بازنویسی کند. برای انطباق و شفافیت زنجیره تامین، امکان SBOM، امضا و رهگیری فراهم است و ادغام با CI به انتشارهای تکرارپذیر کمک می‌کند. این رویکرد برای شبکه‌های دولتی/دفاعی، صنعتی و سلامت مناسب است و نگهداری بارهای کاری Kubernetes را بدون تضعیف مرزهای امنیتی ساده می‌سازد.

#Zarf #AirGapped #OfflineDeployment #Kubernetes #DevSecOps #SupplyChainSecurity #Helm #Containers

🟣لینک مقاله:
https://ku.bz/DQTLs_qQ_


👑 @DevOps_Labdon
🔵 عنوان مقاله
Digging Deeper: How Pause containers skew your Kubernetes CPU/Memory Metrics

🟢 خلاصه مقاله:
این آموزش نشان می‌دهد چرا حضور pause containers که Kubernetes برای هر Pod می‌سازد می‌تواند متریک‌های CPU و Memory را منحرف کند و چطور با PromQL آن‌ها را از نتایج حذف کنیم. چون این کانتینرها در سری‌های kubelet/cAdvisor هم‌ردیف کانتینرهای کاری دیده می‌شوند، جمع‌زدن مصرف به ازای Pod یا Namespace باعث تورم مقادیر می‌شود. راه‌حل، فیلتر کردن سری‌ها با برچسب‌هاست؛ برای نمونه استفاده از container!="POD"، container!="" و در صورت نیاز image!~"pause". برای CPU می‌توان از rate روی container_cpu_usage_seconds_total و برای Memory از container_memory_working_set_bytes استفاده کرد و سپس با sum by بر اساس namespace و pod جمع زد. با مقایسه با node-level metrics و ابزارهایی مثل kubectl top می‌توان درستی فیلترها را سنجید. نتیجه، داشبوردهای دقیق‌تر، آلارم‌های سالم‌تر و برنامه‌ریزی ظرفیت هماهنگ با مصرف واقعی است.

#Kubernetes #PromQL #Monitoring #Metrics #Observability #Containers #DevOps #Grafana

🟣لینک مقاله:
https://ku.bz/w-3KDdMYk


👑 @DevOps_Labdon
🔵 عنوان مقاله
Zeropod: scale to zero

🟢 خلاصه مقاله:
** Zeropod ابزاری برای مقیاس‌پذیری تا صفر در محیط‌های کانتینری است که پس از گذشت مدت مشخص از آخرین اتصال TCP، وضعیت کانتینر را به‌صورت خودکار روی دیسک ذخیره می‌کند و سپس کانتینر را متوقف می‌سازد. با ورود ترافیک جدید، کانتینر از همان نقطه به‌سرعت بازیابی می‌شود و به‌جای راه‌اندازی سرد، با حداقل تأخیر ادامه کار می‌دهد. نتیجه، کاهش محسوس هزینه‌ها و مصرف منابع در زمان بی‌کاری و حفظ پاسخ‌گویی سرویس‌هاست. این رویکرد برای سرویس‌های با ترافیک مقطعی و محیط‌های توسعه بسیار مناسب است؛ تنها باید به تنظیم آستانه بیکاری، محل ذخیره اسنپ‌شات‌ها و مدیریت صحیح حالت و وابستگی‌های خارجی توجه کرد.

#ScaleToZero #Containers #Serverless #Checkpointing #CloudNative #DevOps #CostOptimization #TCP

🟣لینک مقاله:
https://ku.bz/4gcszQMbG


👑 @DevOps_Labdon
🔵 عنوان مقاله
Start Sidecar First: How To Avoid Snags

🟢 خلاصه مقاله:
این مطلب از kubernetes.io توضیح می‌دهد چرا شروع‌شدن Sidecar پیش از کانتینر اصلی مهم است و این‌که Kubernetes ترتیب شروع کانتینرها در یک Pod را تضمین نمی‌کند. برای جلوگیری از خطاهای شروع، پیشنهاد می‌شود از readiness برای مسدود کردن دریافت ترافیک تا وقتی Sidecar آماده است، از startupProbe برای دادن زمان کافی به فرایند راه‌اندازی و جلوگیری از ری‌استارت‌های زودهنگام، و از postStart برای علامت‌دادن آماده‌بودن (مثلاً از طریق فایل یا پورت محلی) استفاده شود. اگر اپلیکیشن باید قبل از آماده‌شدن Sidecar اصلاً جلو نرود، یک اسکریپت ساده در entrypoint کانتینر اصلی باید تا آماده‌شدن Sidecar صبر کند. ترکیب این روش‌ها عملاً ترتیب‌دهی مطمئن راه‌اندازی را فراهم می‌کند.

#Kubernetes #Sidecar #ReadinessProbe #StartupProbe #PostStart #Containers #DevOps #Reliability

🟣لینک مقاله:
https://ku.bz/QRqjJKQJt


👑 @DevOps_Labdon
1
🔵 عنوان مقاله
Kubernetes v1.33: Updates to Container Lifecycle

🟢 خلاصه مقاله:
** این نسخه از Kubernetes v1.33 دو به‌روزرسانی مهم در چرخه عمر container ارائه می‌دهد: نخست، Sleep اکنون به‌طور پیش‌فرض از مدت‌زمان صفر ثانیه پشتیبانی می‌کند تا بتوان همان الگوها را بدون تأخیر واقعی استفاده کرد و فقط در صورت نیاز تأخیر را تنظیم کرد. دوم، می‌توان signal خاموش‌سازی را مستقیماً در Pod مشخص کرد (مثلاً SIGTERM یا SIGINT) و دیگر لازم نیست برای تغییر STOPSIGNAL، image را دوباره ساخت. نتیجه، ساده‌تر شدن تمپلیت‌ها و CI/CD، خاموش‌سازی gracefulتر، و کاهش نیاز به بازسازی image است.

#Kubernetes #K8s #Containers #DevOps #Pod #Lifecycle #SIGTERM #CloudNative

🟣لینک مقاله:
https://ku.bz/GkJ9S8P0Z


👑 @DevOps_Labdon
🔵 عنوان مقاله
Metrics Server and HPA in Kubernetes

🟢 خلاصه مقاله:
** این آموزش نشان می‌دهد چگونه با استفاده از Metrics Server برای جمع‌آوری معیارهای CPU و حافظه و ابزار Horizontal Pod Autoscaler (HPA) در Kubernetes، مقیاس‌گذاری خودکار Deploymentها را پیاده‌سازی کنید. ابتدا Metrics Server را نصب و با kubectl top صحت جریان معیارها را بررسی می‌کنید، سپس برای Deployment هدف، یک HPA با حداقل/حداکثر Replica و اهدافی مثل متوسط استفاده CPU تعریف می‌شود. با اعمال بار، HPA تعداد Podها را برای رسیدن به هدف افزایش و در زمان کاهش بار آن را کاهش می‌دهد. آموزش بر تنظیم requests/limits، انتخاب بازه مناسب Replica و آگاهی از محدودیت‌های Metrics Server تأکید دارد؛ و برای نیازهای پیشرفته به معیارهای سفارشی، استفاده از Custom Metrics API و ابزارهایی مانند Prometheus Adapter را پیشنهاد می‌کند.

#Kubernetes #HPA #MetricsServer #Autoscaling #CloudNative #DevOps #Containers

🟣لینک مقاله:
https://ku.bz/1gP5Vft7g


👑 @DevOps_Labdon
🔵 عنوان مقاله
Nelm – Helm 3 Replacement and Kubernetes Deployment Engine

🟢 خلاصه مقاله:
این مقاله ابزار جدیدی به نام Nelm را معرفی می‌کند که به‌عنوان جایگزینی برای Helm 3 و یک موتور استقرار برای Kubernetes مطرح شده است. هدف Nelm ساده‌سازی بسته‌بندی، قالب‌دهی و استقرار سرویس‌ها بر بستر Kubernetes است، به‌طوری که هم قدرت و هم سادگی در کنار هم حفظ شوند.

در این معرفی، بر استقرارهای اعلامی، قابلیت بازتولید، تشخیص drift و بازگشت ایمن (rollback) تأکید می‌شود. Nelm تلاش می‌کند چرخه انتقال بین محیط‌ها (از توسعه تا تولید) را استاندارد و قابل اطمینان کند و همراه با سیاست‌های کنترلی و امنیتی، الزامات سازمانی را بدون کندکردن تحویل برآورده سازد.

از نظر تجربه توسعه‌دهنده، مقاله می‌گوید Nelm با الهام از الگوهای آشنا در Helm 3، مشکلاتی مانند شکنندگی templating و مدیریت values را هدف قرار داده و روی اعتبارسنجی ورودی‌ها، مدیریت وابستگی‌ها و ماژول‌های قابل‌استفاده‌مجدد تمرکز دارد. همچنین هم‌نشینی با جریان‌های GitOps و CI/CD، پشتیبانی از رجیستری‌های OCI و مدیریت امن secrets از محورهای کلیدی است.

در مجموع، Nelm به‌عنوان مسیری عملی برای تیم‌هایی معرفی می‌شود که می‌خواهند از پیچیدگی‌ها و بار شناختی استقرارهای Kubernetes بکاهند، در عین حال با اکوسیستم موجود سازگار بمانند و مهاجرتی قابل‌مدیریت از Helm 3 داشته باشند.

#Kubernetes #Helm #DevOps #GitOps #CloudNative #Containers #InfrastructureAsCode

🟣لینک مقاله:
https://ku.bz/YTzSDVJdl


👑 @DevOps_Labdon
👍1
🔵 عنوان مقاله
Mastering Kubernetes Security: A Deep Dive into SecurityContext

🟢 خلاصه مقاله:
**این مقاله توضیح می‌دهد که چرا SecurityContext در Kubernetes کلید سخت‌سازی بارهای کاری است و چگونه با تنظیم هویت کاربری و گروه، قابلیت‌های Linux، ویژگی‌های فایل‌سیستم و پروفایل‌های سخت‌سازی هسته، سطح حمله را کاهش می‌دهد. تفاوت سطح PodSecurityContext و SecurityContext در سطح کانتینر و الگوی درست استفاده از پیش‌فرض‌های محدودکننده در سطح پاد و اعمال استثنا فقط برای کانتینرهای لازم بررسی می‌شود. بهترین‌عمل‌ها شامل runAsNonRoot و runAsUser مشخص، readOnlyRootFilesystem، allowPrivilegeEscalation=false، منع privileged، حذف همه capabilities و افزودن حداقل‌های لازم، استفاده از seccomp با RuntimeDefault یا پروفایل سفارشی، و بهره‌گیری از SELinux و AppArmor است. برای حاکمیت، استفاده از PodSecurityAdmission با سطح restricted و اجرای سیاست‌ها با OPA Gatekeeper یا Kyverno توصیه می‌شود و ادغام این کنترل‌ها در CI/CD و قالب‌های Helm برای پیشگیری از خطاها اهمیت دارد. همچنین به دام‌های رایج مانند فرض غیرریشه بودن تصاویر، تفاوت‌های محیطی (OS و runtime)، و ارث‌بری تنظیمات در sidecar و initContainer اشاره می‌شود. در نهایت، برخورد «امنیت به‌عنوان کد» و پایش مداوم برای حفظ حداقل دسترسی و دفاع چندلایه توصیه شده است.

#Kubernetes #Security #SecurityContext #DevSecOps #Containers #CloudNative #BestPractices #PolicyAsCode

🟣لینک مقاله:
https://ku.bz/nJ8Zkh6x9


👑 @DevOps_Labdon
🔵 عنوان مقاله
Kompose

🟢 خلاصه مقاله:
Kompose یک ابزار متن‌باز برای تبدیل سریع فایل‌های docker-compose.yml به منابع Kubernetes است. با دستوراتی مثل kompose convert و kompose up می‌توانید از روی پیکربندی موجود، Manifestهای آمادهٔ Deployment، Service، Ingress، PersistentVolumeClaim، ConfigMap و Secret بسازید یا مستقیم روی کلاستر اعمال کنید. این ابزار برای مهاجرت از Docker Compose به Kubernetes، نمونه‌سازی و یادگیری نگاشت مفاهیم Compose به سازه‌های Kubernetes بسیار کاربردی است. بااین‌حال همهٔ کلیدهای Compose معادل مستقیم ندارند و برخی موارد مثل شبکه‌های پیچیده، وابستگی‌ها یا جزئیات Volume ممکن است نیازمند ویرایش دستی باشند. همچنین لازم است پیشاپیش Imageها را بسازید و در Registry قرار دهید. Kompose روی Linux، macOS و Windows اجرا می‌شود و در کنار kubectl به شما کمک می‌کند سریع‌تر به استقرار قابل اجرا برسید، سپس بنا به نیاز امنیت، مقیاس‌پذیری و مشاهده‌پذیری را بهینه کنید.

#Kompose #Kubernetes #Docker #DockerCompose #DevOps #Containers #CloudNative #Migration

🟣لینک مقاله:
https://ku.bz/qThb7hDwd


👑 @DevOps_Labdon
👍1