GH GambleHub

سیاست های اجرایی مدیریت و محدودیت های زمان اجرا

سیاست های اجرایی و محدودیت های زمان اجرا

1) هدف

سیاست های زمان اجرا رفتار خدمات را قابل پیش بینی، ایمن و اقتصادی می کند: محدود کردن «همسایگان پر سر و صدا»، جلوگیری از نشت و گرمای بیش از حد، اطمینان از انطباق و نگهداری SLO ها هنگام افزایش بار.

اهداف کلیدی: جداسازی، تخصیص عادلانه منابع، تخریب کنترل شده، تکرارپذیری، حسابرسی.

2) محدوده

محاسبه و حافظه: CPU، RAM، GC مکث، محدودیت موضوع.
دیسک/ذخیره سازی: IOPS/توان، سهمیه، FS-سیاست (فقط خواندنی).
Сеть: خروج/ورود، شکل دادن به پهنای باند، سیاست های شبکه.
فرآیندها/سیستم خواستار: seccomp، قابلیت ها، ulimit.
ارکستراسیون: Kubernetes QoS، درخواست/محدودیت، اولویت ها، tains/affinity.
API/gateways: rate-limits، quotates، timeouts/retrays، circuit-breakers.
داده/ETL/جریان: همزمانی دسته ای/جریان، بودجه تاخیر مصرف کننده.
امنیت: AppArmor/SELinux، بی ریشه، اسرار/کوفیگی.
سیاست به عنوان کد: OPA/دروازه بان، Kyverno، Conftest.

3) اصول اساسی

Fail-safe به طور پیش فرض: بهتر است درخواست های غیر ضروری را رها کنید تا رها کنید.
بودجه محور: زمان بندی/بازپرداخت متناسب با بودجه زمان درخواست و بودجه خطای SLO.
شعاع انفجار کوچک: جداسازی فضای نام/استخر/میزبان/شارد.
اعلان و حسابرسی: تمام محدودیت ها - در کد/مخزن + تغییر ورود به سیستم.
عدالت چند مستاجر: هیچ مستاجر/تیم نمی تواند کل خوشه را بیرون بکشد.

4) محاسبات و حافظه

4. 1 کوبرنتیز и گروه v2

درخواست ها/محدودیت ها: درخواست ها سهم CPU/حافظه را تضمین می کنند. محدودیت ها شامل خفه کردن/OOM قاتل است.
کلاسهای QoS: Guaranteed/Burstable/BestEffort - گردش کارهای بحرانی را در Guaranteable/Burstable نگه دارید.
CPU: "پردازنده مرکزی. سهام، پردازنده. حداکثر (دریچه گاز)، CPuset برای پینینگ.
حافظه: حافظه. حداکثر، حافظه. مبادله کنید. حداکثر '(معمولا مبادله کردن) oom_score_adj برای اولویت.

4. 2 الگو

Headroom 20-30٪ در گره، ضد وابستگی برای تکثیر.
محدودیت های GC: JVM '-Xmx' <k8s محدودیت حافظه ؛ برو: «GOMEMLIMIT» ؛ گره: «--max-old-space-size».
ulimit: 'nofile'، 'nproc'، 'fsize' - بر اساس مشخصات سرویس.

5) دیسک و ذخیره سازی

IOPS/سهمیه توان در پی وی سی/خوشه ذخیره سازی ؛ ورود/جداسازی داده ها.
فقط خواندنی ریشه FS, tmpfs برای فایل های موقت, محدودیت اندازه '/tmp '.
FS-watchdog: هشدار برای پر کردن حجم و رشد inode.

6) شبکه و ترافیک

NetworkPolicy (ورود/خروج) - اعتماد صفر شرق به غرب.
محدودیتهای پهنای باند: tc/سیاست خروج، QoS/DSCP برای جریانهای بحرانی.
کنترل کننده خروج: لیست دامنه ها/زیر شبکه های مجاز، DNS حسابرسی.
سیاست های mTLS + TLS - رمزگذاری و نسخه پروتکل اجباری.

7) ایمنی فرآیند

Seccomp (syscalls allowlist)، پروفایل AppArmor/SELinux.
قابلیت های لینوکس را رها کنید (حداقل بگذارید)، 'runAsNonRoot'، 'readOnlyRootFilesystem'.
ظروف بدون ریشه، تصاویر و گواهینامه های امضا شده.
اسرار فقط از طریق Vault/KMS، نشانه های TMP با TTL کوتاه.

8) سیاست های زمان: زمان بندی، عقب نشینی، بودجه

بودجه اتمام وقت: مجموع تمام هاپ ≤ SLA پایان به پایان.
Retrai با عقب نشینی + jitter، حداکثر تلاش در کلاس خطا.
قطع کننده مدار: با خطای ٪/timeout p95 بالای آستانه → خرابی های سریع باز می شود.
Bulkheads: جداگانه اتصال استخر/صف برای مسیرهای بحرانی.
پس فشار: محدود کردن تولید کنندگان به تاخیر انداختن مصرف کنندگان.

9) محدودیت نرخ، سهمیه و اولویت

الگوریتم: نشانه/سطل نشت، GCRA ؛ محلی + توزیع شده (Redis/Envoy/Global).
دانه بندی: کلید API/کاربر/سازمان/منطقه/نقطه پایانی.
شیب اولویت: «پرداخت/مجوز» جریان - طلا، تجزیه و تحلیل - برنز.
سهمیه در روز/ماه, «پشت سر هم» و «پایدار» محدودیت; 429 + تکرار پس از.

10) ارکستراسیون و برنامه ریز

PriorityClass: حفاظت از غلاف P1 از جابجایی.
PodDisruptionBudget: محدودیت های خرابی در به روز رسانی.
Tains/Tolerations، (ضد) وابستگی - بارهای کاری جداسازی.
RuntimeClass: gVisor/Firecracker/Wasm برای جعبه های ماسه ای.
خودکار افقی/عمودی با آستانه گارد و حداکثر کپی.

11) سیاست های داده/ETL/جریان

همزمانی در هر کار/موضوع، حداکثر اندازه دسته ای، فاصله بازرسی.
بودجه تاخیر مصرف کننده: هشدار/بحرانی ؛ DLQ و محدودیت بازپرداخت.
SLA تازه برای فروشگاه ها، مکث کارهای سنگین در قله ترافیک رانندگی.

12) سیاست به عنوان کد و کنترل پذیرش

OPA Gatekeeper/Kyverno: هیچ غلاف بدون درخواست/محدودیت، هیچ 'readOnlyRootFilesystem'، با 'hostNetwork'، ': آخرین'.
تست برای چک های Helm/K8s/Terraform قبل از تعهد.
سیاست های جهش: خودکار اضافه کردن sidecar (mTLS)، حاشیه نویسی، seccompProfile.

مثال کیورنو - ممنوعیت کانتینر بدون محدودیت:
yaml apiVersion: kyverno. io/v1 kind: ClusterPolicy metadata:
name: require-resources spec:
validationFailureAction: Enforce rules:
- name: check-limits match:
resources:
kinds: ["Pod"]
validate:
message: "We need resources. requests/limits for CPU and memory"
pattern:
spec:
containers:
- resources:
requests:
cpu: "?"
memory: "?"
limits:
cpu: "?"
memory: "?"
مثال OPA (Rego) - مدت زمان ≤ 800 ms:
rego package policy. timeout

deny[msg] {
input. kind == "ServiceConfig"
input. timeout_ms> 800 msg: = sprintf ("timeout% dms exceeds budget 800ms," [input. timeout_ms])
}

13) معیارهای مشاهده و انطباق

انطباق%: درصد پدها با درخواستها/محدودیتها/برچسبهای صحیح.
وضعیت امنیتی: سهم غلاف با seccomp/AppArmor/rootless.
نرخ محدود ضربه٪، ریخته٪، دریچه گاز٪، 429 سهم.
p95 timeouts/retraces، مدت زمان مدار باز.
OOM کشتن/اخراج، ثانیه دریچه گاز CPU.
خروج از شبکه حوادث را انکار کرد، خروج از allowlist misses.

14) چک لیست

قبل از ارائه خدمات

  • درخواست ها/محدودیت ها نوشته شده است ؛ QoS ≥ قابل انفجار
  • زمان بندی و بازپرداخت مناسب SLA های پایان به پایان است
  • مدار شکن/دیوار برای وابستگی های خارجی فعال است
  • NetworkPolicy (ورود/خروج) и mTLS
  • Seccomp/AppArmor، قابلیت های قطره، غیر ریشه، فقط خواندنی FS
  • نرخ محدودیت و سهمیه در API دروازه/سرویس
  • PDB/اولویت/وابستگی مشخص شده است ؛ خودکار مقیاس پیکربندی شده است

ماهانه

  • استثنائات سیاست حسابرسی (TTL)
  • زمان بررسی/بودجه خطا
  • آزمون آتش سوزی: ریخته/فشار پشتی/مدار شکن
  • چرخش اسرار/گواهینامه ها

15) ضد الگوهای

بدون درخواست/محدودیت: «پشت سر هم» می خورد تا همسایگان → سقوط آبشار.

عقب نشینی جهانی بدون Jitter: طوفان در اعتیاد

وقفه های نامحدود: اتصالات «حلق آویز» و خستگی استخرها.
': آخرین' و برچسب های mutable: ساخت زمان اجرا غیر قابل پیش بینی.
خروج باز: نشت و وابستگی های مدیریت نشده.
بدون PDB: به روز رسانی دست کشیدن از کل استخر.

16) کتاب های مینی

A. دریچه گاز CPU٪ در پرداخت خدمات

1. محدودیت ها/درخواست ها و مسیرهای داغ پروفایل را بررسی کنید.
2. به طور موقت درخواست ها را افزایش دهید، autoscale را با تاخیر p95 روشن کنید.
3. فعال کردن محدودیت/نرخ نقدی تماس، کاهش پیچیدگی نمایش داده شد.
4. پس از اصلاح: غیر طبیعی/شاخص ها، تجدید نظر در محدودیت ها.

B. رشد 429 و شکایات API

1. گزارش در کلید/سازمان → به سهمیه زد.
2. مقادیر سلسله مراتبی (per- org → per -key) را وارد کنید، پشت سر هم برای طلا را افزایش دهید.
3. ارتباطات و راهنمایی در عقب نشینی ؛ محدود کردن تطبیقی را فعال کنید.

ب. جرم OOM می کشد

1. کاهش همزمانی، فعال کردن حد هیپ و profiling.
2. محاسبه مجدد Xmx/GOMEMLIMIT برای واقعی اوج استفاده.
3. Retrain GC/استخر، اضافه کردن مبادله کردن و هشدار نرم حد.

17) نمونه پیکربندی

ظرف K8s با تنظیمات امن (قطعه):
yaml securityContext:
runAsNonRoot: true allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities:
drop: ["ALL"]
محدودیت نرخ نماینده (قطعه مفهومی):
yaml rate_limit_policy:
actions:
- request_headers:
header_name: "x-api-key"
descriptor_key: "api_key"
ورود Nginx - محدودیت ها و محدودیت ها:
yaml nginx. ingress. kubernetes. io/proxy-connect-timeout: "2s"
nginx. ingress. kubernetes. io/proxy-read-timeout: "1s"
nginx. ingress. kubernetes. io/limit-rps: "50"

18) ادغام با تغییر و مدیریت حوادث

هر گونه آرامش سیاست از طریق RFC/CAB و استثنا موقت با TTL است.
حوادث نقض سیاست → به روز رسانی پس از مرگ و قانون.
داشبورد انطباق به تقویم انتشار متصل است.

19) خط پایین

سیاست های اجرایی یک «نرده» برای پلت فرم هستند: آنها با رانندگی سریع دخالت نمی کنند، آنها اجازه نمی دهند سقوط کنند. محدودیت های اعلامی، اجرای خودکار، معیارهای خوب و نظم و انضباط استثنا، بهره برداری هرج و مرج را به یک سیستم قابل کنترل و قابل پیش بینی تبدیل می کند - با هزینه های کنترل شده و SLO های پایدار.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.