Operations and Ac.Ac.Management Extraction Policy and Runtim
מדיניות ביצוע והגבלות זמן ריצה
1) מטרה
מדיניות זמן הריצה הופכת את התנהגות השירותים לבלתי צפויה, בטוחה וחסכונית: להגביל ”שכנים רועשים”, למנוע דליפות והתחממות יתר, להבטיח ציות ושמירה של SLOS כאשר העומס גדל.
מטרות מפתח: בידוד, הקצאה משוונית של משאבים, השפלה מבוקרת, רבייה, ביקורת.
2) היקף
מחשוב וזיכרון: CPU, RAM, GC pauses, חוט גבול.
דיסק/אחסון: IOPS/breadput, מכסות, fs-policy (קריאה בלבד).
יציאה/כניסה, עיצוב רוחב פס, מדיניות רשת.
תהליכים/שיחות מערכת: seccomp, יכולות, ulimit.
תזמור: Kubernetes QOS, בקשות/מגבלות, סדרי עדיפויות, מגזעים/זיקה.
הגבלת קצב, מכסות, פסקי זמן/מגשים, מפרי מעגל.
Data/ETL/Streams: catch/stream concurrency, security lag.
אבטחה: Apparmor/SELinux, ללא שורשים, סודות/קופיגי.
מדיניות: OPA/שומר הסף, Kyverno, Confest.
3) עקרונות בסיסיים
אל-כשל כברירת מחדל: עדיף לבטל בקשות מיותרות מאשר לרדת.
מונע תקציב: פסקי זמן/מגשים מתאימים לתקציב זמן בקשה ותקציב שגיאות SLO.
רדיוס פיצוץ קטן: שם/בריכה/מארח/שברי בידוד.
הצהרה & שמיעה: כל ההגבלות - בקוד/מאגר + רישום שינוי.
הגינות מרובת דיירים: אין דייר/צוות יכול ”למצוץ” את כל האשכול.
4) מחשוב וזיכרון
4. 1 Kubernetes condition group v2
בקשות/גבולות: בקשות מבטיחות את חלקו של מעבד/זיכרון; גבולות כוללים חנק/רוצח או-אום.
כיתות QOS: מובטחת/Burstable/Bustbestable/Extreme - לשמור על זרימות עבודה קריטיות ב/Burstable מובטח.
מעבד: "cpu. מניות ", cpu. מקס (מצערת), CPuset להצמיד.
זיכרון: "זיכרון. מקס ”, זיכרון”. החלפה. מקס (בדרך כלל להחליף) oom_score_adj בעדיפות.
4. 2 תבניות
חדר ראש 20-30% על צומת, אנטי זיקה לשכפול.
גבולות GC: JVM '-Xmx' <K8s גבול זיכרון; ללכת: ”GOMEMIT”; צומת: ”- max-ישן-מרחב-גודל”.
יולימיט: ”nofile”, ”nproc”, ”fsize” - על ידי פרופיל שירות.
5) דיסק ואחסון
מכסות IOPS/דרך מכסה על PVC/אשכול אחסון; הפרדת רישום/נתונים.
Root FS בלבד, tmpfs לקבצים זמניים, הגודל מוגבל '/tmp '.
כלב שמירה FS: התראות למילוי נפח וצמיחת אינודה.
6) רשת ותנועה
מדיניות ניירות ערך (כניסה/יציאה) - אפס אמון מזרח-מערב.
גבולות רוחב פס: tc/egress-policy, QOS/DSCP עבור זרימות קריטיות.
בקר יציאה: רשימת התחומים המותרים/תת רשתות, ביקורת DNS.
מדיניות MTLS + TLS - הצפנה וגרסת פרוטוקול כפוי.
7) בטיחות תהליכים
Seccomp (syscalles allowist), פרופילי ApparMor/SELinux.
Drop Linux יכולות (להשאיר מינימום), "RunASnonRoot", "Readulary Rush Filesystem'.
מכולות ללא שורשים, תמונות חתומות ותצהירים.
סודות בלבד באמצעות כספת/KMS, tmp-אסימונים עם TTL קצר.
8) מדיניות זמן: פסקי זמן, נסיגות, תקציבים
תקציב טיים-אאוט: סכום כל הטיפות, SLA, מקצה לקצה.
רטריי עם גיבוי + jitter, ניסיונות מקסימליים בשיעור שגיאה.
מפסק מעגל: פתוח עם שגיאה %/timeout p95 מעל סף = כשלים מהירים.
מחיצות: חיבור נפרד בריכות/תורים לנתיבים קריטיים.
תרגיל גב: מגביל יצרנים לצרכנים.
9) מגבלות קצב, מכסות ועדיפות
אלגוריתמים: דלי מסומן/דולף, GCRA; מבוזר באופן מקומי (Redis/Envoy/Global).
גרנולריות: API key/user/organization/region/endpoint.
גרדיאנטים בעדיפות עליונה: ”תשלום/אישור” זורם - זהב, אנליטיקה - ברונזה.
מכסות ליום/חודש, ”פרץ” ו ”מתמשך” גבולות; 429 + Retry-After.
10) תזמור ומתכנן
מחלקה : הגנה על תרמילי P1 מפני העברה.
תקציב PodGoond: גבולות זמן השבתה על עדכונים.
Tains/Tolerations, (אנטי) Affinity - עומס עבודה מבודד.
Runtime Class: GVisor/Firecracker/Wasm עבור ארגזי חול.
אופקית/אנכית עם סף שמירה והעתקים מקסימליים.
11) מדיניות נתונים/ETL/זרם
קונקורנסי לכל עבודה/נושא, גודל אצווה מקסימלי, מרווח נקודת ביקורת.
תקציבי פיגור צרכני: אזהרה/קריטי; מגבלת DLQ ומגש מחדש.
רעננות SLA עבור חנויות, הפסקה של עבודות כבדות בפסגות של תנועה מיומנת.
12) מדיניות כקוד ובקרת כניסה
OPA שומר שער/Kyverno: אין תרמילים ללא בקשות/מגבלות, אין "Readersory Recording Filesystem', עם" hostNetwork "," עדכני ".
קונספט לבדיקות Helm/K8s/Terraform מראש.
מדיניות מוטציה: הוספה אוטומטית של סיד (mTLS), אנוטציות, seccomProfile.
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: "?"
דוגמה לאופ "א (רגו) - פסקי זמן המונים 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 פסקי זמן/חוזר, משך פתוח מעגל.
מחסלים/פינוי, שניות מצערת מעבד.
היציאה מהרשת הכחישה אירועים, רשימת היציאה מפספסת.
14) רשימות בדיקה
לפני שמניחים את השירות
[ ] בקשות/גבולות נכתבים; QOS/Burstable
[ ] פסקי זמן ומגשים חוזרים מתאימים לסלאבים מקצה לקצה
[ ] מפסק/מחיצה מופעלת לתלות חיצונית
מדיניות [ ] Networknetworks (כניסה/יציאה)
[ ] Seccomp/Apparmor, יכולות ירידה, לא שורש, קריאה בלבד FS
[ ] מגבלות קצב ומכסות על שער API/שירות
[ ] PDB/עדיפות/זיקה צוין; סימון אוטומטי מוגדר
חודשי
[ ] יוצאי דופן מדיניות ביקורת (TTL)
[ ] סקירת תקציבי זמן/שגיאות
[ ] מבחן תרגיל אש: סככה/תרמיל גב/מפסק מעגל חשמלי
[ ] סודות/תעודות מסתובבות
15) אנטי דפוסים
ללא בקשות/גבולות: ”פרץ” אוכל את השכנים.
נסיגה גלובלית ללא לחץ: סערה בהתמכרויות.
פסקי זמן אינסופיים: ”תלייה” קשרים ותשישות של בריכות.
”האחרון” ותגים מוחלשים: זמן ריצה בלתי צפוי בונה.
יציאה פתוחה: הדלפות ותלויות לא מנוהלות.
עדכונים הורסים את כל הבריכה.
16) ספרי משחק קטנים
א. מצערת מעבד% בשירות תשלומים
1. בדוק גבולות/בקשות ופרופיל נתיבים חמים.
2. להעלות בקשות באופן זמני, להפעיל אוטוסקלה על ידי Latency P95.
3. אפשר הגבלות/תעריפים במזומן-בחזרה, להפחית את המורכבות של שאילתות.
4. לאחר תיקון: denormalization/indices, תיקון של גבולות.
B. 429 גדילה ותלונות API
1. דו "ח על המפתחות/ארגונים פי רץ לתוך המכסה.
2. הזן מכסות היררכיות (per- org _ per-key), העלאת פרץ עבור זהב.
3. תקשורת והדרכה על גיבוי; אפשר הגבלה הסתגלותית.
בי. מיסה הורגת
1. להפחית את הקונקורנסי, לאפשר הגבלת ערימה ופרופיל.
2. חישוב מחדש של XMX/GOMEMLIMIT לשימושי שיא אמיתיים.
3. להכשיר מחדש את 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"
כניסה לנגינקס - פסקי זמן והגבלות:
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) השורה התחתונה
מדיניות ההוצאה להורג היא ”מעקה” עבור הרציף: הם אינם מפריעים לנהיגה מהירה, הם אינם מאפשרים נפילה. אילוצים הצהרתיים, אכיפה אוטומטית, מדדים טובים ודיסציפלינות חריגות הופכים ניצול כאוטי למערכת ניתנת לניהול וצפוי - עם עלויות מבוקרות