Gopher Academy
3.84K subscribers
931 photos
42 videos
280 files
2.17K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
Kubernetes CPU Limits and Go

🟢 خلاصه مقاله:
به‌روزرسانی این مقاله توضیح می‌دهد که چرا runtime زبان Go به‌طور پیش‌فرض از محدودیت‌های CPU در Kubernetes خبر ندارد و چگونه همین موضوع می‌تواند به oversubscription و در نتیجه throttling و جهش‌های تاخیری منجر شود. راه‌حل عملی، هم‌راستاکردن GOMAXPROCS با سهم واقعی CPU کانتینر (براساس cgroups) است؛ یا با تنظیم متغیر محیطی GOMAXPROCS یا با استفاده از کتابخانه go.uber.org/automaxprocs تا runtime با ظرفیت واقعی زمان‌بندی کند. از نظر عملیاتی، برای سرویس‌های حساس به تاخیر بهتر است از limit سخت CPU پرهیز کرده و به request به‌همراه HPA اتکا کنید؛ در صورت اجبار به limit، سقف را طوری بگذارید که throttling حداقلی باشد و در صورت نیاز از CPU pinning و QoS مناسب بهره بگیرید. ارزیابی این تنظیمات با سنجه‌هایی مانند container_cpu_cfs_throttled_seconds_total و توزیع تاخیر و نیز متریک‌های runtime در Go، تصویر دقیقی از تاثیر بهینه‌سازی‌ها ارائه می‌کند.

#Kubernetes #Go #GOMAXPROCS #cgroups #CPUThrottling #ContainerPerformance #DevOps #SRE

🟣لینک مقاله:
https://golangweekly.com/link/174644/web


👑 @gopher_academy
1
🔵 عنوان مقاله
Terminating Elegantly: A Guide to Graceful Shutdowns

🟢 خلاصه مقاله:
ترک شایسته در سرویس‌ها یعنی برنامه بتواند با دریافت SIGTERM، بدون از دست دادن داده یا خراب کردن وضعیت، درخواست‌های جاری را تمام کند و منابع را درست آزاد کند. در این ارائه، Alex Pliutau با تمرکز بر Go در Kubernetes، چرخه کامل خاتمه را توضیح می‌دهد: از دریافت سیگنال و قطع‌کردن ترافیک تا ضرب‌الاجل SIGKILL.

نکته‌های کلیدی شامل این‌هاست: استفاده از signal.NotifyContext و context برای لغو هماهنگ، مدیریت goroutineها با sync.WaitGroup، فراخوانی http.Server.Shutdown یا معادل gRPC برای تخلیه امن اتصال‌ها، و توقف گرفتن کار جدید در Workerها درحالی‌که کارهای درحال اجرا به‌صورت زمان‌دار تمام می‌شوند. در Kubernetes باید readiness زودتر غیرفعال شود تا Pod از مسیر ترافیک خارج شود، از preStop برای تأخیر یا Drain سفارشی کمک بگیرید، و terminationGracePeriodSeconds را درست تنظیم کنید. پایش و آزمون نیز ضروری است: لاگ شروع/پایان Shutdown، سنجه‌هایی مثل تعداد درخواست‌های درحال پردازش و زمان خاتمه، و تست SIGTERM تحت بار. رعایت این الگوهای ساده، خاتمه‌ای قابل اعتماد و بدون اختلال در Go روی Kubernetes فراهم می‌کند.

#Go #Kubernetes #GracefulShutdown #CloudNative #Microservices #DevOps #Reliability #ProductionOps

🟣لینک مقاله:
https://golangweekly.com/link/175363/web


👑 @gopher_academy
Forwarded from DevOps Labdon
One of the best practical YouTube Channels to learn DevOps Tools and Skills.
یکی از بهترین کانال‌هایی که بصورت عملی ابزارهای DevOps رو بصورت ملموس و خیلی کوتاه و مختصر و مفید توضیح و آموزش میده

#DevOps #Terraform #Helm #Kubernetes #AWS #GCP #Azure

https://www.youtube.com/@AntonPutra
Forwarded from DevOps Labdon
🔵 عنوان مقاله
Exposing Kubernetes Services Without Cloud LoadBalancers: A Practical Guide

🟢 خلاصه مقاله:
این راهنما برای محیط‌های bare‑metal و air‑gapped که به LoadBalancerهای ابری دسترسی ندارند، روشی عملی برای اکسپوز کردن سرویس‌های Kubernetes ارائه می‌دهد. با ترکیب MetalLB و NGINX Ingress، ابتدا MetalLB یک IP پایدار به Serviceهای نوع LoadBalancer اختصاص می‌دهد، سپس NGINX Ingress ترافیک را بر اساس host و path به سرویس‌های داخلی مسیردهی می‌کند. نتیجه، یک نقطه ورودی واحد با IP ثابت، مدیریت ساده‌تر DNS و عدم نیاز به باز کردن پورت‌های متعدد است. آموزش شامل نصب و پیکربندی MetalLB (L2 یا BGP)، استقرار NGINX Ingress، تعریف Ingressها، و نکاتی درباره TLS، پایداری، و عیب‌یابی است؛ و نشان می‌دهد چرا این الگو نسبت به NodePort یا hostNetwork تمیزتر و مقیاس‌پذیرتر بوده و تجربه‌ای مشابه فضای ابری را بدون وابستگی به آن فراهم می‌کند.

#Kubernetes #MetalLB #NGINXIngress #BareMetal #AirGapped #DevOps #Ingress #LoadBalancer

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


👑 @DevOps_Labdon