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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
werf: full cycle CI/CD

🟢 خلاصه مقاله:
**werf یک ابزار CLI برای پیاده‌سازی full-cycle CICD روی Kubernetes است که کل چرخهٔ عمر اپلیکیشن کانتینری—از ساخت تا انتشار و استقرار ایمیج‌ها—را یکپارچه می‌کند. با کش خودکارِ بیلد، زمان اجرای pipeline کاهش می‌یابد و نتایج تکرارپذیر و سازگار در محیط‌های مختلف تضمین می‌شود. این رویکرد یک ابزار واحد برای توسعهٔ محلی و سیستم‌های CI فراهم می‌کند و پیچیدگی عملیات را پایین می‌آورد.

#werf #CICD #Kubernetes #DevOps #Containers #BuildCaching #CLI #ContinuousDelivery

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


👑 @DevOps_Labdon
1
🔵 عنوان مقاله
Kubernetes 1.33: Resizing Pods Without the Drama (Finally!)

🟢 خلاصه مقاله:
کوبرنیتس 1.33 روی حل یک درد قدیمی تمرکز دارد: تغییر CPU و Memory یک Pod بدون ری‌استارت و رول‌اوت‌های پرهزینه. در نسخه‌های قبلی، تنظیم request/limit معمولاً به بازسازی Pod یا تغییرات پیچیده در Deployment/StatefulSet ختم می‌شد که برای سرویس‌های حساس یا اپ‌های stateful دردسرساز بود. در این نسخه، امکان تغییر منابع به‌صورت in-place در سطح Pod بسیار روان‌تر شده است؛ kubelet تغییرات cgroup را روی نود اعمال می‌کند، حسابداری منابع و زمان‌بند با درخواست‌های جدید هماهنگ می‌شوند و محدودیت‌هایی مثل ResourceQuota و LimitRange همچنان رعایت می‌گردند. نتیجه این است که برای رایت‌سایزینگ واقعی، کمتر نیاز به رول‌اوت دارید، ریسک وقفه کاهش می‌یابد و هزینه‌ها بهتر کنترل می‌شود. با این حال، همه منابع یکسان قابل تغییر لحظه‌ای نیستند و کاهش تهاجمی Memory می‌تواند خطر OOM داشته باشد؛ بنابراین توصیه می‌شود تغییرات مرحله‌ای انجام شود و با مانیتورینگ دقیق همراه باشد. خلاصه اینکه 1.33 رایت‌سایزینگ را به یک عملیات کم‌دردسر و کاربردی تبدیل می‌کند و زمان تیم‌ها را از مدیریت رول‌اوت‌های غیرضروری به بهینه‌سازی عملکرد و هزینه روی بارهای واقعی منتقل می‌سازد.

#Kubernetes #Pods #DevOps #SRE #CloudNative #Autoscaling #ResourceManagement #Containers

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


👑 @DevOps_Labdon
🎉2
🔵 عنوان مقاله
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