Επιχειρησιακές και → πολιτικές εκτέλεσης διαχείρισης και περιορισμοί χρόνου λειτουργίας
Πολιτικές εκτέλεσης και περιορισμοί χρόνου λειτουργίας
1) Σκοπός
Οι πολιτικές runtime καθιστούν τη συμπεριφορά των υπηρεσιών προβλέψιμη, ασφαλή και οικονομική: περιορίζουν τους «θορυβώδεις γείτονες», αποτρέπουν τις διαρροές και την υπερθέρμανση, εξασφαλίζουν τη συμμόρφωση και τη διατήρηση των SLO όταν αυξάνεται το φορτίο.
Βασικοί στόχοι: απομόνωση, δίκαιη κατανομή των πόρων, ελεγχόμενη υποβάθμιση, αναπαραγωγιμότητα, λογιστικός έλεγχος.
2) Πεδίο εφαρμογής
Υπολογισμός και μνήμη: CPU, RAM, GC παύσεις, όρια νημάτων.
Δίσκος/αποθήκευση: IOPS/διακίνηση, ποσοστώσεις, fs-πολιτικές (μόνο ανάγνωση).
: έξοδος/είσοδος, διαμόρφωση εύρους ζώνης, πολιτικές δικτύου.
Διαδικασίες/κλήσεις συστήματος: seccop, ικανότητες, ulimit.
Ενορχήστρωση: Kubernetes QoS, αιτήματα/όρια, προτεραιότητες, ουρές/συγγένεια.
API/πύλες: όρια ταχύτητας, ποσοστώσεις, χρονοδιαγράμματα/retrays, διακόπτες κυκλώματος.
Δεδομένα/ETL/ροές: συγκυρία παρτίδας/ροής, προϋπολογισμοί υστέρησης καταναλωτή.
Ασφάλεια: AppArmor/SELinux, χωρίς ρίζες, μυστικά/kofigi.
Κωδικός πολιτικής: OPA/Gatekeeper, Kyverno, Conftest.
3) Βασικές αρχές
Εξ ορισμού ασφαλής: είναι προτιμότερο να αποσύρονται τα περιττά αιτήματα παρά να πέφτουν.
Με γνώμονα τον προϋπολογισμό: τα χρονοδιαγράμματα/Retrays εντάσσονται στον προϋπολογισμό του χρόνου υποβολής αιτήσεων και στον προϋπολογισμό σφάλματος SLO.
Μικρή ακτίνα έκρηξης: χώρος ονομάτων/δεξαμενή/ξενιστής/απομόνωση θραύσματος.
Δηλωτικός και ελεγκτικός χαρακτήρας: όλοι οι περιορισμοί - σε κωδικό/αποθετήριο + καταγραφή μεταβολών.
Δικαιοσύνη πολλών ενοικιαστών: κανένας ενοικιαστής/ομάδα δεν μπορεί να «ρουφήξει» ολόκληρο το σύμπλεγμα.
4) Υπολογισμός και μνήμη
4. 1 Kubernetes и cgroup v2
αιτήσεις/όρια: οι αιτήσεις εγγυώνται το μερίδιο της ΚΜΕ/μνήμης· τα όρια περιλαμβάνουν στραγγαλισμό/δολοφόνο OOM.
Κατηγορίες QoS: Εγγυημένη/εκρηκτική/BestStridge - διατήρηση κρίσιμων ροών εργασίας σε εγγυημένη/εκρηκτική.
CPU: 'cpu. μετοχές «,» cpu. max '(γκάζι), CPuset για καρφίτσα.
Μνήμη: 'μνήμη. max ',' μνήμη. ανταλλαγή. max '(συνήθως swap off) oom_score_adj για προτεραιότητα.
4. 2 Μοτίβα
Headroom 20-30% σε κόμβο, αντι-συγγένεια για αλληλεπικάλυψη.
Όρια GC: JVM '-Xmx' <k8s όριο μνήμης, Go: 'GOMEMLIMIT', Κόμβος: '- max-old-space-size'.
ulimit: 'nofile', 'nproc', 'fsize' - ανά προφίλ υπηρεσίας.
5) Δίσκος και αποθήκευση
IOPS/Ποσοστώσεις διακίνησης για την αποθήκευση PVC/διασποράς· Διαχωρισμός καταγραφής/δεδομένων.
Μόνο ανάγνωσης FS, tmpfs για προσωρινά αρχεία, όριο μεγέθους '/tmp '.
FS-watchdog: ειδοποιήσεις για την πλήρωση όγκου και την ανάπτυξη εισροών.
6) Δίκτυο και κυκλοφορία
NetworkPolicy (είσοδος/έξοδος) - μηδενική εμπιστοσύνη Ανατολής-Δύσης.
Όρια εύρους ζώνης: tc/πολιτικές εξόδου, QoS/DSCP για κρίσιμες ροές.
Ελεγκτής εξόδου: κατάλογος επιτρεπόμενων πεδίων/υποδίκτυων, DNS ελέγχου.
mTLS + πολιτικές TLS - κρυπτογράφηση και αναγκαστική έκδοση πρωτοκόλλου.
7) Ασφάλεια των διαδικασιών
Seccomp (επιτρεπόμενα syscalls), προφίλ AppArmor/SELinux.
Drop Linux δυνατότητες (αφήστε το ελάχιστο), 'runAnonRoot', 'readOnLongRootFilesystem'.
Δοχεία χωρίς ρίζα, υπογεγραμμένες εικόνες και βεβαιώσεις.
Μυστικά μόνο μέσω Vault/KMS, tmp-tokens με σύντομο TTL.
8) Χρονικές πολιτικές: χρονοδιαγράμματα, υποχωρήσεις, προϋπολογισμοί
Timeout προϋπολογισμός: άθροισμα του συνόλου του λυκίσκου ≤ SLA από το τέλος έως το τέλος.
Retrai με backoff + jitter, μέγιστες προσπάθειες στην κατηγορία σφαλμάτων.
Διακόπτης κυκλώματος: άνοιγμα με σφάλμα %/timeout p95 πάνω από το κατώφλι → γρήγορες αστοχίες.
Διαφράγματα: χωριστές δεξαμενές σύνδεσης/ουρές αναμονής για κρίσιμες διαδρομές.
Backpressure: περιορισμός των παραγωγών σε καθυστερημένους καταναλωτές.
9) Όρια, ποσοστώσεις και προτεραιότητα
Αλγόριθμοι: μαρκαδόρος/κουβάς διαρροής, GCRA. τοπικό + κατανεμημένο (Redis/απεσταλμένος/παγκόσμιος).
Κοκκία: πλήκτρο API/χρήστης/οργάνωση/περιοχή/τελικό σημείο.
Κλίσεις προτεραιότητας: ροές «πληρωμής/αδειοδότησης» - χρυσός, αναλυτική - χαλκός.
Ποσοστώσεις ανά ημέρα/μήνα, «διάρρηξη» και «διατήρηση» των ορίων· 429 + Retry-After.
10) Ενορχήστρωση και σχεδιαστής
Κλάση: προστασία του λοβού P1 από μετατόπιση.
Προϋπολογισμός PodDislicationBudget: downtime bunds on updates.
Tains/Ανοχές, (κατά) Συγγένεια - Φόρτος εργασίας απομόνωσης.
RuntimeClass: gVisor/Firecracker/Wasm για αμμοκιβώτια.
Οριζόντια/κατακόρυφη αυτόματη κλιμάκωση με κατώφλια φύλαξης και max-replicas.
11) Πολιτικές δεδομένων/ETL/Stream
Νόμισμα ανά θέση εργασίας/θέμα, μέγιστο μέγεθος παρτίδας, διάστημα σημείου ελέγχου.
Προϋπολογισμοί για την υστέρηση των καταναλωτών: προειδοποίηση/κρίσιμη· Όριο DLQ και retray.
Φρεσκάδα SLA για τα καταστήματα, μια παύση των βαρέων θέσεων εργασίας στις κορυφές της οδικής κυκλοφορίας.
12) Κώδικας πολιτικής και έλεγχος εισδοχής
OPA Gatekeeper/Kyverno: δεν υπάρχουν λοβοί χωρίς αιτήματα/όρια, δεν υπάρχουν 'ReadonRootFilesystem', με '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) Παρατηρησιμότητα και μετρήσεις συμμόρφωσης
Συμμόρφωση%: ποσοστό podes με ορθές αιτήσεις/όρια/ετικέτες.
Στάση ασφαλείας: μερίδιο του λοβού με seccomp/AppArmor/rootless.
Ποσοστό-όριο hit%, χύμα%, γκάζι%, 429 μερίδιο.
p95 timeouts/retraces, διάρκεια ανοικτού κυκλώματος.
OOM σκοτώνει/εξώσεις, CPU γκάζι δευτερόλεπτα.
Άρνηση εξόδου δικτύου, αποτυχία εξόδου.
14) Κατάλογοι ελέγχου
Πριν από τον καθορισμό της υπηρεσίας
- Οι αιτήσεις/τα όρια είναι γραμμένα. Το QoS-Burstable
- Χρονοδιαγράμματα και retrays που εντάσσονται σε SLA από το τέλος έως το τέλος
- Διακόπτης κυκλώματος/διάφραγμα ενεργοποιημένο για εξωτερικές εξαρτήσεις
- NetworkPolicy (είσοδος/έξοδος) и mTLS
- Seccomp/AppArmor, δυνατότητες πτώσης, μη ρίζα, μόνο ανάγνωσης FS
- Όρια συντελεστών και ποσοστώσεις στην πύλη/υπηρεσία API
- Προσδιορισμός ΠΠ/προτεραιότητας/συγγένειας· η αυτόματη κλιμάκωση είναι διαμορφωμένη
Μηνιαία
- Εξαιρέσεις πολιτικής λογιστικού ελέγχου (TTL)
- Χρόνος επανεξέτασης/Προϋπολογισμοί λάθους
- Δοκιμή τρυπήματος πυρός: υπόστεγο/αντίθλιψη/διακόπτης κυκλώματος
- Εναλλασσόμενα μυστικά/πιστοποιητικά
15) Αντι-μοτίβα
Χωρίς αιτήματα/όρια: η «έκρηξη» τρώει τους γείτονες → καταρρέει.
Παγκόσμια υποχώρηση χωρίς νευρικότητα: μια καταιγίδα σε εθισμούς.
Απεριόριστα χρονικά περιθώρια: «κρεμασμένες» συνδέσεις και εξάντληση των δεξαμενών.
': τελευταίες' και μεταλλαγμένες ετικέτες: απρόβλεπτες κατασκευές χρόνου λειτουργίας.
Ανοικτή έξοδος: διαρροές και ανεξέλεγκτες εξαρτήσεις.
Όχι PDB: Οι ενημερώσεις χτυπούν ολόκληρη την πισίνα.
16) Mini playbooks
A. γκάζι CPU% στην υπηρεσία πληρωμών
1. Έλεγχος ορίων/αιτήσεων και θερμών διαδρομών προφίλ.
2. Προσωρινά εγείρει αιτήματα, ενεργοποιήστε την αυτόματη κλίμακα με p95 καθυστέρηση.
3. Ενεργοποίηση ορίων/επιτοκίων επιστροφής χρημάτων, μείωση της πολυπλοκότητας των ερωτημάτων.
4. Μετά τον καθορισμό: απομαλοποίηση/δείκτες, αναθεώρηση των ορίων.
B. 429 Καταγγελίες για ανάπτυξη και API
1. Έκθεση σχετικά με τα κλειδιά/οργανισμούς → περιήλθαν στην ποσόστωση.
2. Εισάγετε ιεραρχικές ποσοστώσεις (per- org→per -key), αυξήστε τη διάρρηξη για χρυσό.
3. Επικοινωνία και καθοδήγηση σχετικά με την εφεδρική ενέργεια· επιτρέπει τον προσαρμοστικό περιορισμό.
Ο B. mass OOM σκοτώνει
1. Μείωση του νομίσματος, ενεργοποίηση ορίου σωρού και διαμόρφωση προφίλ.
2. Επανυπολογισμός Xmx/GOMEMLIMIT για πραγματική μέγιστη χρήση.
3. Επανεκπαίδευση GC/pools, προσθήκη ειδοποιήσεων swap-off και soft-limit.
17) Παραδείγματα διαμόρφωσης
δοχείο με ασφαλείς ρυθμίσεις (θραύσμα):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.