Operatsiyalar va Boshqaruv → Ijro siyosati va runtime-cheklovlar
Ijro siyosati va runtime-cheklovlar
1) Vazifasi
Runtime-siyosatchilar xizmatlarning xatti-harakatlarini oldindan aytib bo’lmaydigan, xavfsiz va tejamkor qiladi: «shovqinli qo’shnilarni» cheklaydi, sizib chiqish va haddan tashqari qizib ketishning oldini oladi, yukni oshirishda komplayens va SLOni ushlab turishni ta’minlaydi.
Asosiy maqsadlar: izolyatsiya qilish, resurslarni adolatli taqsimlash, nazorat qilinadigan degradatsiya, qayta tiklanish, audit.
2) Qamrov sohasi
Hisoblash va xotira: CPU, RAM, GC pauzalari, oqim limitlari.
Disk/saqlash: IOPS/throughput, kvotalar, fs-siyosatlar (read-only).
Сеть: egress/ingress, bandwidth shaping, network policies.
Jarayonlar/tizimli muammolar: seccomp, capabilities, ulimit.
Orkestr: Kubernetes QoS, requests/limits, ustuvorliklar, taints/affinity.
API/shlyuzlar: rate-limits, kvotalar, taymautlar/retrajlar, circuit-breakers.
Maʼlumotlar/ETL/oqimlar: batch/stream concurrency, consumer lag budgets.
Xavfsizlik: AppArmor/SELinux, rootless, sirlar/kofiglar.
Policy-as-Code: OPA/Gatekeeper, Kyverno, Conftest.
3) Bazaviy prinsiplar
Fail-safe andoza: yiqilishdan koʻra ortiqcha soʻrovlarni bekor qilish yaxshiroqdir.
Budget-driven: taymautlar/retrajlar so’rov vaqti byudjetiga va SLO xatolari byudjetiga mos keladi.
Small blast radius: namespace/pulu/uzel/shard bo’yicha izolyatsiya.
Declarative & auditable: barcha cheklovlar - kodda/repozitoriyada + oʻzgarishlar daftarida.
Multi-tenant fairness: Hech bir ijarachi/jamoa butun klasterni «so’ra» olmaydi.
4) Hisoblash va xotira
4. 1 Kubernetes и cgroup v2
requests/limits: requests CPU/xotira ulushini kafolatlaydi; limits throttling/OOM-killer.
QoS sinflar: Guaranteed/Burstable/BestEffort - Biz Guaranteed/Burstable’da tanqidiy vorkloadlarni saqlaymiz.
CPU: `cpu. shares`, `cpu. max’(throttle), pinning CPuset.
Xotira:’memory. max`, `memory. swap. max’(odatda swap off), ustuvorlik uchun oom_score_adj.
4. 2 Patternlar
Headroom 20-30% uzelda, anti-affinity takrorlash uchun.
GC-limitlar: JVM’-Xmx’<k8s memory limit; Go: `GOMEMLIMIT`; Node: `--max-old-space-size`.
ulimit:’nofile’,’nproc’,’fsize’- xizmat turi boʻyicha.
5) Disk va ombor
IOPS/PVC/klaster-storage uchun kvotalar; jurnallar/ma’lumotlarni ajratish.
Vaqtinchalik fayllar uchun Read-only root FS, tmpfs, ’/tmp’oʻlchamini cheklash.
FS-watchdog: jildlarni toʻldirish va inode oʻsish uchun alertlar.
6) Tarmoq va trafik
NetworkPolicy (ingress/egress) — zero-trust east-west.
Bandwidth limits: tc/egress-policies, QoS/DSCP kritik oqimlar uchun.
Egress-kontroller: ruxsat etilgan domen/kichik tarmoqlar roʻyxati, DNS auditi.
mTLS + TLS policies: protokolni shifrlash va majburlash.
7) Jarayon xavfsizligi
Seccomp (allowlist syscalls), AppArmor/SELinux profillari.
Drop Linux capabilities (minimal),’runAsNonRoot’,’readOnlyRootFilesystem’.
Rootless konteynerlar, imzolangan rasmlar va attestations.
Secrets-only via Vault/KMS, tmp-tokens bilan qisqa TTL.
8) Vaqt siyosati: taymautlar, retrajlar, budjetlar
Timeout budget: barcha hop’lar summasi ≤ SLA end-tu-end.
Backoff + jitter bilan retrajlar, xato sinfi boʻyicha maksimal urinishlar.
Circuit-breaker: open @ info: whatsthis
Bulkheads: tanqidiy yo’llar uchun alohida connection-pool’lar/navbatlar.
Backpressure: isteʼmolchilar uchun ishlab chiqaruvchilarni cheklash.
9) Rate-limits, kvotalar va ustuvorlik
Algoritmlar: token/leaky bucket, GCRA; lokal + taqsimlangan (Redis/Envoy/global).
Granulyarlik: API/foydalanuvchi/tashkilot/mintaqa/endpoint kaliti.
Ustuvor gradientlar: «to’lov/avtorizatsiya» oqimlari - gold, tahlillar - bronze.
Sutkadagi/oydagi kvotalar, «burst» va «sustained» limitlari; 429 + Retry-After.
10) Orkestrlash va rejalashtirish
PriorityClass: P1 podlarini siqib chiqarishdan himoya qilish.
PodDisruptionBudget: yangilanishda chegara.
Taints/Tolerations, (anti) Affinity - izolyatsiya workloads.
RuntimeClass: gVisor/Firecracker/Wasm.
Gorizontal/Vertical autoscaling bilan gvard-ostonalar va max-replicas.
11) Ma’lumotlar/ETL/oqim siyosati
Concurrency per job/topic, max batch size, checkpoint interval.
Consumer lag budgets: warning/critical; DLQ va retraj limiti.
Vitrinalar uchun Freshness SLA, prod-trafikning cho’qqilarida og’ir joblarning pauzasi.
12) Policy-as-Code va admission-nazorat
OPA Gatekeeper/Kyverno:’requests/limits’,’readOnlyRootFilesystem’,’hostNetwork’,’: latest’.
Pre-commit tekshiruvi uchun Conftest Helm/K8s/Terraform.
Mutation policies: avto qoʻshish sidecar (mTLS), izohlar, 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) misoli - taymautlar ≤ 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) Kuzatish va rioya qilish metrikasi
Compliance%: toʻgʻri requests/limits/labels bilan podlar ulushi.
Security Posture: seccomp/AppArmor/rootless.
Rate-limit hit%, shed%, throttle%, 429 share.
p95 taymaut/retraj, circuit-open duration.
OOM kills/evictions, CPU throttle seconds.
Network egress denied events, egress allowlist misses.
14) Chek-varaqlar
Servisni joylashtirishdan oldin
- Ro’yxatga olingan requests/limits; QoS ≥ Burstable
- Taymautlar va retrajlar end-to-end SLAga mos keladi
- Circuit-breaker/bulkhead tashqi qaramliklar uchun kiritilgan
- NetworkPolicy (ingress/egress) и mTLS
- Seccomp/AppArmor, drop capabilities, non-root, read-only FS
- Rate-limits va API-shlyuz/servisdagi kvotalar
- PDB/priority/affinity berilgan; autoscaling moslangan
Har oyda
- Policy-istisnolar auditi (TTL)
- Vaqt/xato byudjetlarini qayta koʻrib chiqish
- Degradatsiya testi (fire-drill): shed/backpressure/circuit-breaker
- Sirlarni/sertifikatlarni almashtirish
15) Anti-patternlar
requests/limits: «burst» qoʻshnilarni yeydi → kaskad nosozliklari.
Jittersiz global retrajlar: giyohvandlikda bo’ron.
Cheksiz taymautlar: «osilgan» konnektlar va pullarning tugashi.
’: latest’ va mutable teglar: oldindan aytib bo’lmaydigan runtime-yig’ilishlar.
Ochiq egress: oqish va boshqarilmaydigan qaramliklar.
PDB yo’qligi: yangilanishlar butun pulni «o’chirib tashlaydi».
16) Mini-pleybuklar
A. Payments-service da CPU throttle% ning ko’tarilishi
1. Limits/requestsni tekshirish va issiq yoʻllarni profillash.
2. Vaqtincha requests yuklab, avtoskeylni p95 latency bilan yoqish.
3. Limitlar/kurslarning kesh-follbekini yoqish, soʻrovlarning murakkabligini kamaytirish.
4. Post-fix: denormalizatsiya/indekslar, limits qayta ko’rib chiqish.
B. O’sish 429 va APIga shikoyatlar
1. Kalitlar/tashkilotlar bo’yicha hisobot → kim kvotaga tayandi.
2. hierarchical quotas (per-org → per-key) ni kiriting, gold uchun burst.
3. Kommunikatsiya va guidance bo’yicha backoff; adaptive limitingni yoqish.
V. Ommaviy OOM kills
1. concurrency pasayishi, heap-limit va profil kiritish.
2. Xmx/GOMEMLIMIT ni real peak-usage deb qayta hisoblash.
3. GC/pullarni qayta o’rganish, swap-off va soft-limit alertalarini qo’shish.
17) Konfiguratsiya namunalari
K8s konteyner (parcha):yaml securityContext:
runAsNonRoot: true allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities:
drop: ["ALL"]
Envoy rate-limit (konseptual qism):
yaml rate_limit_policy:
actions:
- request_headers:
header_name: "x-api-key"
descriptor_key: "api_key"
Nginx ingress - taymautlar va cheklovlar:
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) O’zgarishlar va hodisalarni boshqarish bilan integratsiya qilish
Siyosatning har qanday zaiflashishi - RFC/CAB orqali va TTL bilan vaqtinchalik istisno.
Siyosat buzilishi bo’yicha hodisalar → post-mortem va qoidalarni yangilash.
Muvofiqlik dashbordlari (compliance) reliz taqvimiga ulangan.
19) Jami
Ijro siyosati - bu platforma uchun «panjara»: ular tez yurishga xalaqit bermaydi, yiqilishga yo’l qo’ymaydi. Deklarativ cheklovlar, avtomatik majburlash, yaxshi metrika va istisnolar intizomi tartibsiz ekspluatatsiyani boshqariladigan va bashorat qilinadigan tizimga aylantiradi - nazorat qilinadigan qiymat va barqaror SLO.