محدودیت های گسترش توپولوژی Pod – انجمن DEV

محدودیت های گسترش توپولوژی Pod
محدودیت های گسترش توپولوژی Pod – مستعار topologySpreadConstraints یک زمینه از Pod.spec است
این به شما امکان میدهد تعریف کنید که Pods چگونه باید در دامنههای توپولوژیکی مختلف، مانند مناطق یا گرهها، برای دستیابی به دسترسی بهتر، تحمل خطا و استفاده از منابع پخش شوند.
ویژگی های اصلی
-
توپولوژی کلید: رشته ای است که یک کلید برچسب گره را نشان می دهد. Kubernetes از این کلید برای شناسایی و گروه بندی گره ها در حوزه های توپولوژیکی استفاده می کند.
-
ارزش های مشترک:
kubernetes.io/hostname
|topology.kubernetes.io/region
-
ارزش های مشترک:
-
maxSkew: حداکثر تفاوت را در تعداد Pods در دامنه های توپولوژیکی مشخص می کند. چوله کمتر توزیع یکنواخت تری را تضمین می کند.
-
labelSelector: برای یافتن Pods منطبق استفاده می شود. پادهایی که با این انتخابگر برچسب مطابقت دارند برای تعیین تعداد Pods در حوزه توپولوژی مربوطه شمارش می شوند.
-
وقتی راضی نیست: نشان می دهد که اگر یک Pod محدودیت گسترش را برآورده نمی کند چگونه با آن برخورد کنیم.
- برنامهریزی نکنید (پیشفرض) به زمانبندی میگوید که آن را زمانبندی نکند.
- زمانبندی به هر حال به زمانبند میگوید که همچنان آن را برنامهریزی کند و در عین حال گرههایی را که انحراف را به حداقل میرسانند، اولویتبندی کند.
مزایای استفاده از TSC
-
بهبود تحمل خطا: با پخش کردن Pods در مناطق یا گرهها، تأثیر شکست در یک دامنه به حداقل میرسد.
-
استفاده بهتر از منابع: توزیع یکنواخت بارهای کاری را تضمین می کند و از اضافه بار دامنه های خاص جلوگیری می کند.
-
برنامه ریزی قابل تنظیم: نحوه توزیع بارهای کاری بر اساس الزامات برنامه را دقیق تنظیم کنید.
مثال
مشخصات زیر گسترش غلاف ها را در گره های مبتنی بر kubernetes.io/hostname ترجیح می دهد.
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app: hello-world
مرجع
https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/