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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
How Kubernetes Pod Priority and Preemption Work

🟢 خلاصه مقاله:
این مقاله仕 توضیح می‌دهد که چگونه Kubernetes با استفاده از PriorityClass برای هر Pod یک Priority عددی تعیین می‌کند و وقتی منابع کم است، با Preemption می‌تواند Podهای کم‌اهمیت‌تر را کنار بزند تا برای Podهای مهم‌تر جا باز شود. scheduler ابتدا Nodeهای ممکن را بررسی می‌کند و با شبیه‌سازی، کمترین مجموعه از Podهای با Priority پایین‌تر را برای حذف انتخاب می‌کند؛ هرگز به Podهایی با Priority برابر یا بالاتر دست نمی‌زند و در صورت امکان به PodDisruptionBudget هم احترام می‌گذارد. این فرایند فقط بر اساس resource requests تصمیم می‌گیرد و محدودیت‌هایی مثل Node affinity/anti-affinity، taints/tolerations و وابستگی‌های ذخیره‌سازی را دور نمی‌زند؛ اگر محدودیت‌ها برآورده نشوند، Preemption کمکی نمی‌کند. Priority مستقل از QoS است و می‌توان با preemptionPolicy: Never یک Pod را از کنارزدن دیگران معاف کرد. بهترین رویکرد، تعریف چند PriorityClass محدود و واضح برای تفکیک سرویس‌های حیاتی از کارهای دسته‌ای است؛ به‌همراه PDB و برنامه‌ریزی ظرفیت، این کار باعث می‌شود در شرایط فشار منابع، سرویس‌های کلیدی پایدار بمانند و سایر Podها به‌صورت کنترل‌شده تخلیه و بعداً دوباره زمان‌بندی شوند.

#Kubernetes #PodPriority #Preemption #PriorityClass #KubeScheduler #CloudNative #DevOps #SRE

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


👑 @DevOps_Labdon
🔵 عنوان مقاله
KubeFTP-Proxy Helm Chart

🟢 خلاصه مقاله:
**این چارت Helm با نام KubeFTP-Proxy از مخزن github.com/adrghph اجرای یک سرور FTP/FTPS در حالت passive را روی Kubernetes ساده می‌کند: یک vsftpd مستقر می‌کند، آن را با NodePort در دسترس می‌گذارد و پیکربندی HAProxy را برای مسیریابی درست پورت‌های passive در سراسر نودها به‌صورت خودکار می‌سازد. چالش اصلی FTP در Kubernetes جداسازی کانال کنترل از پورت‌های داده پویا (PASV) و مشکلات NAT/NodePort است؛ این چارت با جلوتر قراردادن HAProxy و نگاشت رنج پورت‌های passive، آدرس/پورت‌های قابل‌دسترسی به کلاینت می‌دهد تا اتصال داده در هر نودی برقرار شود. تنظیمات از طریق مقادیر Helm (مثل رنج پورت passive، آدرس/Hostname خارجی و NodePort) انجام می‌شود و برای سناریوهای کلود یا برمتال و حفظ گردش‌کارهای قدیمی FTP/FTPS مناسب است؛ در عین حال بهتر است رنج پورت‌ها محدود، دسترسی شبکه کنترل و FTPS فعال شود.

#Kubernetes #Helm #FTP #FTPS #vsftpd #HAProxy #NodePort #DevOps

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


👑 @DevOps_Labdon
🔵 عنوان مقاله
Troubleshooting packet drops in a Kubernetes-based observability platform

🟢 خلاصه مقاله:
این مطالعه موردی نشان می‌دهد تیم SRE در Kapital Bank چگونه افت‌های مقطعی بسته‌ها و افزایش تاخیر را در یک پلتفرم مشاهده‌پذیری مبتنی بر Kubernetes که به لایه Memcached متکی بود، ریشه‌یابی کرد. با آنکه شاخص‌های سطح اپلیکیشن عادی به‌نظر می‌رسید، بررسی عمیق‌تر مسیر شبکه در سطح کرنل و شمارنده‌های گره‌ها و پادها، فشار لحظه‌ای ترافیک و اشباع صف‌ها را آشکار کرد. تیم با آزمایش‌های کنترل‌شده و تنظیم محتاطانه پارامترهای کرنل—از جمله عمق صف‌ها و اندازه بافرها—پارامترها را با الگوی ترافیک Memcached روی Kubernetes هم‌تراز کرد و در نتیجه، افت بسته‌ها کاهش یافت و پایداری و تاخیر انتها‌به‌انتها بهبود پیدا کرد. این روایت در medium.com یک روش عملی برای عیب‌یابی مسائل شبکه‌ای در سطح کرنل در محیط‌های کانتینری ارائه می‌دهد: مشاهد‌ه‌پذیری لایه‌به‌لایه، اعتبارسنجی فرضیات، و تیونینگ مبتنی بر شواهد.

#Kubernetes #SRE #Memcached #Observability #Networking #KernelTuning #PacketLoss #DevOps

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


👑 @DevOps_Labdon
1
🔵 عنوان مقاله
A practical guide to error handling in Go (10 minute read)

🟢 خلاصه مقاله:
** این مقاله یک راهنمای عملی ۱۰ دقیقه‌ای برای مدیریت خطا در Go است که نشان می‌دهد این زبان از طراحی مینیمال مبتنی بر بازگرداندن و بررسی error شروع کرده و به مرور با الگوهایی مثل افزودن کانتکست و استفاده از errors.Is و errors.As غنی‌تر شده است. چالش مهم، نبود ردیابی داخلی برای دیدن مسیر انتشار خطا است؛ ابزارهای Datadog یعنی Error Tracking و Orchestrion این شکاف را با ارائه دید شفاف از محل بروز خطا و نحوه انتشار آن در کد پوشش می‌دهند و عیب‌یابی را سریع‌تر و دقیق‌تر می‌کنند. جمع‌بندی: به‌کارگیری الگوهای idiomatic در Go در کنار این ابزارها، خطاها را از پیام‌های کوتاه به روایتی قابل پیگیری از رخداد تا رفع تبدیل می‌کند.

#Go #Golang #ErrorHandling #Datadog #ErrorTracking #Orchestrion #Tracing #Observability

🟣لینک مقاله:
https://www.datadoghq.com/blog/go-error-handling/?utm_source=tldrdevops


👑 @DevOps_Labdon
🔵 عنوان مقاله
Help us test OpenTofu 1.11.0-beta1 (4 minute read)

🟢 خلاصه مقاله:
**نسخه بتای OpenTofu 1.11.0 با شناسه 1.11.0-beta1 منتشر شده و از جامعه برای آزمایش دعوت می‌کند. این نسخه ویژگی‌های deprecation ماژول‌ها را پایدار می‌کند تا هشدارها و مسیرهای مهاجرت روشن‌تری فراهم شود و همزمان بهبودهایی در کارایی ارائه می‌دهد. توصیه می‌شود آن را در محیط‌های غیرتولیدی امتحان کنید، از تنظیمات پشتیبان بگیرید و بازخورد خود را برای کمک به نهایی‌سازی نسخه 1.11.0 ارسال کنید.

#OpenTofu #IaC #DevOps #BetaRelease #Performance #ModuleDeprecation #Testing

🟣لینک مقاله:
https://opentofu.org/blog/help-us-test-opentofu-1-11-0-beta1/?utm_source=tldrdevops


👑 @DevOps_Labdon
🔵 عنوان مقاله
Kubernetes pod scheduling: balancing cost and resilience

🟢 خلاصه مقاله:
این مقاله از CAST AI نشان می‌دهد چگونه با تنظیم سیاست‌های زمان‌بندی در Kubernetes می‌توان هزینه را کاهش داد و در عین حال تاب‌آوری را حفظ کرد. با استفاده از anti-affinity از هم‌مکانی replicaها روی یک node یا zone جلوگیری می‌شود تا شعاع خرابی کم شود، اما سخت‌گیری بیش از حد می‌تواند به fragmentation و افزایش بی‌مورد ظرفیت منجر شود؛ بنابراین ترکیب قوانین الزامی و ترجیحی پیشنهاد می‌شود. spread constraints نیز برای پخش یکنواخت podها میان nodeها/zoneها و کاهش نقاط داغ به‌کار می‌رود، ولی اگر خیلی سخت تنظیم شوند ممکن است مقیاس‌گستری ناخواسته ایجاد کنند؛ تنظیم دقیق پارامترها راه‌حل است. در نهایت، affinity weights امکان می‌دهد بار را به ظرفیت ارزان‌تر هدایت کنید و مسیرهای جایگزین برای پایداری داشته باشید. جمع‌بندی مقاله: با پایش پیوسته و هم‌افزایی این سیاست‌ها، می‌توان بین هزینه و تاب‌آوری توازن مؤثری ساخت.

#Kubernetes
#PodScheduling
#CostOptimization
#Resilience
#AntiAffinity
#TopologySpreadConstraints
#NodeAffinity

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


👑 @DevOps_Labdon
🔵 عنوان مقاله
kubectl-explore

🟢 خلاصه مقاله:
**kubectl-explore یک ابزار تعاملی بر پایه fuzzy finder است که تجربه کار با kubectl explain را سریع‌تر و قابل جست‌وجوتر می‌کند. به‌جای اجرای پرس‌وجوهای تکی، می‌توانید بین Group/Version/Kind، فیلدها و زیر‌فیلدها جست‌وجوی فازی انجام دهید، پیش‌نمایش توضیحات را همان‌جا ببینید و بین انواع مرتبط جابه‌جا شوید؛ همه داخل ترمینال و فقط با کیبورد. این کار کشف و یادگیری API در Kubernetes—به‌ویژه برای CRDها و بررسی فیلدهای مانيفست—را ساده‌تر می‌کند و با استفاده از همان منبع مستندات kubectl explain برای منابع هسته و (در صورت در دسترس بودن) CRDها عمل می‌کند.

#Kubernetes #kubectl #DevOps #CLI #FuzzyFinder #CRD #DeveloperExperience #Productivity

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


👑 @DevOps_Labdon
🔵 عنوان مقاله
PVC-Autoresizer: Dynamic Volume Expansion

🟢 خلاصه مقاله:
PVC-Autoresizer یک کنترلر در Kubernetes است که با پایش مصرف دیسک، اندازه PVC را به‌صورت خودکار و مرحله‌ای افزایش می‌دهد تا از پر شدن ناگهانی حجم و توقف سرویس جلوگیری شود. این ابزار بر اساس آستانه‌های قابل‌پیکربندی عمل می‌کند، تنها وقتی StorageClass و درایور CSI از گسترش پشتیبانی کنند اقدام می‌کند، و برای هر PVC/Namespace امکان سیاست‌های جداگانه (حداکثر اندازه، گام رشد، و Backoff) را فراهم می‌سازد. با فایل‌سیستم‌ها و درایورهای سازگار، گسترش اغلب آنلاین و بدون downtime انجام می‌شود؛ در غیر این صورت می‌تواند نیاز به راه‌اندازی مجدد کنترل‌شده را اعلام کند. موارد استفاده رایج شامل دیتابیس‌ها و بارهای Stateful با رشد غیرقابل‌پیش‌بینی است. محدودیت مهم این است که کوچک‌سازی معمولاً ممکن نیست و نیاز به allowVolumeExpansion و پشتیبانی CSI وجود دارد. نتیجه: خودکارسازی، پیشگیری از رخدادهای کمبود فضا، و کاهش کار عملیاتی در مدیریت ذخیره‌سازی.

#Kubernetes #PVC #PersistentVolume #CSI #DevOps #CloudNative #StatefulWorkloads #StorageAutomation

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


👑 @DevOps_Labdon