🔵 عنوان مقاله
How to Prevent Failures with Kubernetes Topology Spread Constraints
🟢 خلاصه مقاله:
این مقاله نشان میدهد چرا استفاده از Pod Topology Spread Constraints در زمان rolling updates میتواند باعث توزیع ناعادلانه پادها شود و در پایان استقرار، یک یا چند ناحیه بیشازحد شلوغ بماند. علت این است که Scheduler در هنگام جایگذاری پادهای جدید، پادهای قدیمی و جدید را با هم در نظر میگیرد؛ بنابراین پادهای تازه را به نواحی «فعلاً» کمتراکم میفرستد، اما با حذف تدریجی پادهای قدیمی، همان نواحی از نسخه جدید اشباع میشوند.
راهحل پیشنهادی استفاده از matchLabelKeys (برای نمونه با کلید pod-template-hash) است تا Scheduler هر نسل از پادها را فقط نسبت به همنسلهای خودش پخش کند. بدین ترتیب هر ReplicaSet بهطور مستقل متعادل میشود و چون نسل قبلی نیز از قبل متعادل بوده، مجموع پادها در طول و پس از rollout یکنواخت باقی میماند.
برای اجرای درست، از پشتیبانی Kubernetes v1.25+ نسبت به matchLabelKeys مطمئن شوید، topologyKey مناسب (مثلاً topology.kubernetes.io/zone) و maxSkew معقول انتخاب کنید و سیاست whenUnsatisfiable را بسته به نیاز سختگیرانه (DoNotSchedule) یا منعطف (ScheduleAnyway) تنظیم کنید.
#Kubernetes #PodTopologySpreadConstraints #TopologySpread #RollingUpdates #DevOps #SRE #HighAvailability #matchLabelKeys
🟣لینک مقاله:
https://ku.bz/RypzHZTrM
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
How to Prevent Failures with Kubernetes Topology Spread Constraints
🟢 خلاصه مقاله:
این مقاله نشان میدهد چرا استفاده از Pod Topology Spread Constraints در زمان rolling updates میتواند باعث توزیع ناعادلانه پادها شود و در پایان استقرار، یک یا چند ناحیه بیشازحد شلوغ بماند. علت این است که Scheduler در هنگام جایگذاری پادهای جدید، پادهای قدیمی و جدید را با هم در نظر میگیرد؛ بنابراین پادهای تازه را به نواحی «فعلاً» کمتراکم میفرستد، اما با حذف تدریجی پادهای قدیمی، همان نواحی از نسخه جدید اشباع میشوند.
راهحل پیشنهادی استفاده از matchLabelKeys (برای نمونه با کلید pod-template-hash) است تا Scheduler هر نسل از پادها را فقط نسبت به همنسلهای خودش پخش کند. بدین ترتیب هر ReplicaSet بهطور مستقل متعادل میشود و چون نسل قبلی نیز از قبل متعادل بوده، مجموع پادها در طول و پس از rollout یکنواخت باقی میماند.
برای اجرای درست، از پشتیبانی Kubernetes v1.25+ نسبت به matchLabelKeys مطمئن شوید، topologyKey مناسب (مثلاً topology.kubernetes.io/zone) و maxSkew معقول انتخاب کنید و سیاست whenUnsatisfiable را بسته به نیاز سختگیرانه (DoNotSchedule) یا منعطف (ScheduleAnyway) تنظیم کنید.
#Kubernetes #PodTopologySpreadConstraints #TopologySpread #RollingUpdates #DevOps #SRE #HighAvailability #matchLabelKeys
🟣لینک مقاله:
https://ku.bz/RypzHZTrM
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
Medium
How to Prevent Failures with Kubernetes Topology Spread Constraints
How to Prevent Failures with Kubernetes Topology Spread Constraints Introduction In modern cloud-native environments, ensuring high availability and fault tolerance for your applications is critical …