Վիրահատություններ և Ռուսաստանի քաղաքականության կառավարում և runtime սահմանափակումներ
Կատարման քաղաքականությունը և runtime սահմանափակումները
1) Նշանակումներ
Runtime-քաղաքական գործիչները կատարում են ծառայությունների վարքագիծը կանխատեսելի, անվտանգ և տնտեսապես, սահմանափակում են «աղմկոտ հարևանները», կանխում արտահոսքը և գերտաքացումը, ապահովում են կոմպլեքս և SLO պահպանումը բեռի աճի ժամանակ։
Հիմնական նպատակները 'մեկուսացումը, ռեսուրսների արդար բաշխումը, վերահսկվող քայքայումը, վերարտադրումը, աուդիտը։
2) Տարածք
Հաշվարկները և հիշողությունը 'CPU, RAM, GC դադար, հոսքերի լիմիտներ։
Սկավառակ/07: IOPS/throughput, քվոտաներ, fs քաղաքականություն (read-only)։
Сеть: egress/ingress, bandwidth shaping, network policies.
Գործընթացները/ռուսական մարտահրավերները 'seccome, capabilities, ulimit։
Նվագախումբը ՝ Kubernetes QoS, reques.ru/limits, գերակայություններ, taints/affinity։
API/կողպեքներ ՝ rate-limits, քվոտաներ, թայմաուտներ/retray, circuit-breakers։
Տվյալները/ETL/strims: batch/stream concurrency, consumer lag budgets։
Անվտանգություն 'ApPARmor/SELINUX, rootless, գաղտնիքները/կոֆիգները։
Policy-as-Code: OPA/Gatekeeper, Kyverno, Conftest.
3) Հիմնական սկզբունքները
Fail-safe-ը լռելյայն է 'ավելի լավ է հեռացնել ավելորդ հարցումները, քան ընկնել։
Budget-driven: Timauts/regray տեղավորվում են հարցման ժամանակի բյուջեում և SLO սխալների բյուջեին։
Small blase radius: մեկուսացում namespace/pulu/usla/shardu։
Declarative & auditable: Բոլոր սահմանափակումները կոդում/հետազոտություններում + փոփոխության ամսագիր են։
Multi-tenault fairness: Ոչ վարձող/թիմը չի կարող «բարձրացնել» ամբողջ կլաստերը։
4) Հաշվարկներ և հիշողություն
4. 1 Kubernetes и cgroup v2
reques.ru/limits: reques.ru երաշխավորում են CPU/հիշողության մասնաբաժինը։ limits-ը ներառում է throttling/OFC-killer։
QoS դասարանները ՝ Guaranteed/Burstable/BestEfport-ը կրիտիկական գողություններ ենք պահում Guaranted/Burstable-ում։
CPU: `cpu. shares`, `cpu. max '(throttle), CPuset-ը պինինգի համար։
Հիշողությունը '"memory. max`, `memory. swap. max '(սովորաբար swap off), ope _ score _ adore առաջնահերթության համար։
4. 2 Patterns
Headrope 20-30 տոկոսը ռուսական, anti-affinity համար։
GC-limits: JVM 'Xmx' <k8s memory limit; Go: `GOMEMLIMIT`; Node: `--max-old-space-size`.
ulimit: «nofile», «nproc», «fsize» - համաձայն։
5) Սկավառակ և շարժիչ
IOPS/Throughput քվոտաներ PVC/կլաստեր-storage; ամսագրերի/տվյալների բաժանումը։
Read-only root FS-ը, tmp.ru-ը ֆայլերի կոդավորման համար, չափի սահմանափակումը '/tom '։
FS-watchdog: ալտերտեր լոլիկ լրացնելու և inode աճի համար։
6) Ցանցը և հյուրանոցները
NetworkPolicy (ingress/egress) — zero-trust east-west.
Bandwidth limits: tc/egress-policies, QoS/DSCP կրիտիկական հոսքերի համար։
Egress-վերահսկիչը 'թույլատրված օրինագծերի/հաշվարկների ցանկը, audit III-ը։
MTSA + TMS policies: կոդավորումը և սարքի հարկադիր տարբերակը։
7) Գործընթացի անվտանգությունը
Seccoase (allowlist scalls), AppArmor/SELinux պրոֆիլներ։
Drop Linux capabilities (թողնել), «runAsNonRoot», «readOnlyRootem System»։
Rootless բեռնարկղերը, ստորագրված պատկերները և attestrone-ը։
Secrets-only via Vox/KMS, tox-tokens կարճ TTL-ով։
8) Ժամանակի քաղաքական գործիչները ՝ թայմաուտներ, ռետրաններ, բյուջեներ։
Timeout budget: Բոլոր hop 's-ի գումարը SLA end-to-ն է։
Retrai backoff + ջիթերի հետ, սխալների դասարանի ամենամեծ փորձերը։
Circuit-breaker: Open error %/timeout p95 ավելի բարձր է, քան շեմն արագ ձախողումները։
Bulkheads: առանձին connational-pool 'a/հերթեր կրիտիկական ճանապարհների համար։
Backpressure 'lag սպառողների արտադրողների սահմանափակումը։
9) Rate-limits, քվոտաներ և գերակայություն
Ալգորիթմներ ՝ token/leaky bucket, GCRA; Տեղական + բաշխված (Redis/Envoy/global)։
Գրանուլյացիա 'API/օգտագործողի/կազմակերպության/տարածաշրջանի/էնդպոյնտի բանալին։
Առաջնահերթություն '«էքսպոզիցիոն/հեղինակային» հոսքերը' gold, վերլուծությունը 'bultze։
Քվոտաները օրական/ամիս, «burst» և «sustained» լիմիտներ։ 429 + Retry-After.
10) Նվագախումբ և պլանավորող
Priorts Class: P1-pods պաշտպանություն դուրս հանելուց։
PodPortrupics Budget: Dountaima սահմանները նորարարությունների ժամանակ։
Tainault/Toler.ru, (anti) Affinity - workloads մեկուսացում։
RuntimeClass: gVisor/Firecracker/Wasm երգերի համար։
Horizontal/Vertical autoscaling-ը գվարդիայի շեմերով և max-replicas-ով։
11) Տվյալների քաղաքականությունը/ETL/strimes
Concurrency per job/topic, max batch size, www.kpoint։
Consumer lag budgets: warning/critical; DLQ-ը և գետերի սահմանը։
Freshness SLA-ը վիտրինի համար, ծանր ջոբների դադարը պրոդ-2019 պիկի ժամանակ։
12) Policy-as-Code-ը և admission-վերահսկողությունը։
OPA Gatekeeper/Kyverno 'աղբի արգելք առանց reques.ru/limits, առանց «readOnlyRootExystem», «hostNetwork», «: latest»։
Pre-commit ստուգումների համար Helm/K8s/Terraform։
Mutation policies: sidecar (mTSA), սենսացիաներ, secompProfile։
Kyverno-ի օրինակը առանց սահմանների բեռնարկղի արգելքն է
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 մզ է
rego package policy. timeout
deny[msg] {
input. kind == "ServiceConfig"
input. timeout_ms> 800 msg: = sprintf ("timeout% dms exceeds budget 800ms," [input. timeout_ms])
}
13) Դիտողությունն ու չափումները
Compli.7 տոկոսը 'ենթատեսակների մասը ճիշտ reques.ru/limits/labels։
WindoPosture: Ենթատեսակների մի մասը seccope/Appmor/rootless-ից։
Rate-limit hit%, shed%, throttle%, 429 share.
p95 timauts/retrav, circuit open duration։
OOM kills/evictions, CPU throttle seconds.
Network egress denied events, egress allowlist misses.
14) Չեկ թերթերը
Ներծծումից առաջ
Գրված է reques.ru/limits; QoS ≥ Burstable
- Timauts և retray տեղավորվում են end-to-end SLA-ում
- Circuit-breaker/bulkhead ներառված են արտաքին կախվածության համար
- NetworkPolicy (ingress/egress) и mTLS
- Seccomp/AppArmor, drop capabilities, non-root, read-only FS
- Rate-limits և քվոտաներ API դարպասի/ծառայության վրա
- PDB/priority/affinity նշված է. autoscaling-ը տրամադրված է
Ամսական
Policy-բացառությունների աուդիտ (TTL)
- Ժամանակի/սխալների ցանկը
- Քայքայման թեստը (fire-medill) 'shed/backpressure/circuit-breaker
- Գաղտնիքների/հավաստագրերի վերացումը
15) Anti-patterna
Առանց reques.ru/limits: «բուրստ» ուտում է հարևաններին ռուսական կասկադային ձախողումներ։
Համաշխարհային ռետրերը առանց ջիթերի 'փոթորիկ կախվածությունների մեջ։
Անսահման թայմաուտներ '«կախված» կոնեկտներ և փամփուշտների սպառում։
'latest' և mutable tegi: անկանխատեսելի runtime հավաքածուներ։
Բաց egress 'արտահոսք և անվերահսկելի կախվածություն։
PDB-ի բացակայությունը 'նորարարությունները «նետում են» ամբողջ փամփուշտը։
16) Մինի պլեյբուկները
A. Prottle-ի payments-2019
1. Ստուգել limits/reques.ru և ավելացնել տաք ճանապարհները։
2. Ժամանակավորապես բարձրացրեք reques.ru, միացրեք ավտո սկեյլը p95 latency-ով։
3. Միացրեք kash folbek limits/դասընթացների, նվազեցրեք հարցումների բարդությունը։
4. Փոստի ֆիքսը 'դենորմալացում/ինդեքսներ, www.limits։
Բ Աճը 429 և բողոքները API
1. Բաների/կազմակերպությունների զեկույցը հաստատեց, թե ով է ընկել քվոտայի մեջ։
2. Ներդնել hierarchical prodtas (per-org noper-key), բարձրացնել burst gold-ի համար։
3. Հաղորդակցությունը և guidation backoff; միացրեք aptive limiting։
Վ. Զանգվածային OFC kills
1. Concurrency-ի նվազումը, միացրեք heap-լիմիտը և ավելացումը։
2. Հաշվել Xmx/GOMEMLIMIT-ը իրական peak-usage-ի տակ։
3. Վերապատրաստել GC/puls, ավելացնել swap-off և soft-limit alerts։
17) Միգրացիայի օրինակներ
K8s բեռնարկղը անվտանգ պարամետրերով (հատված)
yaml securityContext:
runAsNonRoot: true allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities:
drop: ["ALL"]
Envoy rate-limit (մի հատված հայեցակարգային)
yaml rate_limit_policy:
actions:
- request_headers:
header_name: "x-api-key"
descriptor_key: "api_key"
Nginx ingress - թայմաուտներ և սահմանափակումներ
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-ի ժամանակավոր բացառումը։
Խախտումների դեպքերը քաղաքական գործիչը հաստատեց post-Mortem-ը և կանոնների նորարարությունը։
Dashbords-ը (compliance) կապված է կառավարական օրացույցի հետ։
19) Արդյունքը
Կատարման քաղաքականությունը պլատֆորմի համար «փետուր» է, նրանք չեն խանգարում արագ գնալ, նրանք չեն տալիս ընկնել։ Միգրացիոն սահմանափակումները, ավտոմատ հարկադրումը, լավ չափումները և բացառությունների կարգապահությունը վերածում են քաոտիկ լուծումը կառավարման և կանխատեսելի համակարգի 'վերահսկվող արժեքի և կայուն SLO-ի հետ։