Əməliyyatlar və İdarəetmə → İcra Siyasəti və runtime məhdudiyyətləri
İcra siyasəti və runtime-məhdudiyyətlər
1) Təyinat
Runtime siyasətçiləri xidmətlərin davranışını proqnozlaşdırıla bilən, təhlükəsiz və qənaətcil edir: «səs-küylü qonşuları» məhdudlaşdırır, sızmaların və həddindən artıq istiləşmənin qarşısını alır, yükün artması zamanı uyğunluq və SLO-nun saxlanmasını təmin edir.
Əsas məqsədlər: təcrid, resursların ədalətli paylanması, nəzarət edilən deqradasiya, təkrarlanabilirlik, audit.
2) əhatə dairəsi
Hesablama və yaddaş: CPU, RAM, GC fasilələri, axın limitləri.
Disk/saxlama: IOPS/throughput, kvotalar, fs-siyasətlər (read-only).
Сеть: egress/ingress, bandwidth shaping, network policies.
Proseslər/sistem çağırışları: seccomp, capabilities, ulimit.
Orkestr: Kubernetes QoS, requests/limits, prioritetlər, taints/affinity.
API/şlüzlər: rate-limits, kvotalar, taymautlar/retrailer, circuit-breakers.
Verilənlər/ETL/axınlar: batch/stream concurrency, consumer lag budgets.
Təhlükəsizlik: AppArmor/SELinux, rootless, sirləri/coofies.
Policy-as-Code: OPA/Gatekeeper, Kyverno, Conftest.
3) Əsas prinsiplər
Defaul-safe: yıxılmaqdan daha çox sorğu atmaq daha yaxşıdır.
Budget-driven: vaxtlar/retrasiyalar tələb vaxtının büdcəsinə və SLO səhvlərinin büdcəsinə uyğundur.
Kiçik blast radius: namespace/hovuz/düyün/şard ilə izolyasiya.
Declarative & auditable: bütün məhdudiyyətlər - kod/anbar + dəyişiklik jurnalı.
Multi-tenant fairness: heç bir kirayəçi/komanda bütün klasteri «sora» bilməz.
4) Hesablama və yaddaş
4. 1 Kubernetes и cgroup v2
requests/limits: requests CPU/yaddaş payını təmin edir; limits throttling/OOM-killer daxildir.
QoS siniflər: Guaranteed/Burstable/BestEffort - kritik workloads Guaranteed/Burstable saxlamaq.
CPU: `cpu. shares`, `cpu. max '(throttle), CPuset pinning üçün.
Yaddaş: 'memory. max`, `memory. swap. max '(adətən swap off), prioritet üçün oom_score_adj.
4. 2 Nümunələr
Headroom 20-30% düyün, anti-affinity dublyaj üçün.
GC limitləri: JVM '-Xmx' <k8s memory limit; Go: `GOMEMLIMIT`; Node: `--max-old-space-size`.
ulimit: 'nofile', 'nproc', 'fsize' - xidmət profilinə görə.
5) Disk və saxlama
IOPS/PVC/klaster-storage üçün Throughput kvotaları; jurnalların/məlumatların bölünməsi.
Read-only root FS, müvəqqəti fayllar üçün tmpfs, ölçü məhdudiyyəti '/tmp '.
FS-watchdog: cildlərin doldurulması və inode böyüməsi üçün risklər.
6) Şəbəkə və trafik
NetworkPolicy (ingress/egress) — zero-trust east-west.
Bandwidth limits: tc/egress-policies, kritik axınlar üçün QoS/DSCP.
Egress Controller: Icazə verilən domenlərin/alt şəbəkələrin siyahısı, DNS auditi.
mTLS + TLS policies: şifrələmə və protokolun məcburi versiyası.
7) Proses təhlükəsizliyi
Seccomp (allowlist syscalls), AppArmor/SELinux profilləri.
Drop Linux capabilities (minimum tərk), 'runAsNonRoot', 'readOnlyRootFilesystem'.
Rootless konteynerlər, imzalanmış şəkillər və attestations.
Secrets-only via Vault/KMS, tmp-tokens qısa TTL ilə.
8) Zaman siyasətçiləri: taymautlar, retrajlar, büdcələr
Timeout budget: SLA və tu-end ≤ bütün hop 'ların cəmi.
backoff + jitter ilə retrailer, səhv sinifinə maksimum cəhd.
Circuit-breaker: error %/timeout p95 həddindən yuxarı açıq → sürətli uğursuzluqlar.
Bulkheads: kritik yollar üçün ayrı-ayrı connection-pool 's/növbələr.
Backpressure: istehlakçıların lag istehsalçılarının məhdudlaşdırılması.
9) Rate-limits, kvotalar və prioritet
Alqoritmlər: token/leaky bucket, GCRA; yerli + paylanmış (Redis/Envoy/global).
Qranulyarlıq: API açarı/istifadəçi/təşkilat/region/end.
Prioritet qradiyentlər: «ödəniş/avtorizasiya» axınları - gold, analitika - bronze.
Kvotalar/ay, «burst» və «sustained» limitləri; 429 + Retry-After.
10) Orkestr və planlaşdırıcı
PriorityClass: P1-podların yerdəyişmədən qorunması.
PodDisruptionBudget: yeniləmə zamanı endirim sərhədləri.
Taints/Tolerations, (anti) Affinity - izolyasiya workloads.
RuntimeClass: qum qutuları üçün gVisor/Firecracker/Wasm.
Horizontal/Vertical autoscaling qvard-eşik və max-replicas ilə.
11) Məlumat siyasəti/ETL/axın
Concurrency per job/topic, max batch size, checkpoint interval.
Consumer lag budgets: warning/critical; DLQ və retraj limiti.
vitrinlər üçün Freshness SLA, promosyon trafikin zirvələrində ağır cob fasilə.
12) Policy-as-Code və admission-control
OPA Gatekeeper/Kyverno: no requests/limits, no 'readOnlyRootFilesystem', ilə 'hostNetwork', ': latest'.
Conftest pre-commit yoxlamalar üçün Helm/K8s/Terraform.
Mutation policies: otomatik əlavə sidecar (mTLS), annotasiyalar, 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) nümunəsi - 800 ms ≤ taymautlar:
rego package policy. timeout
deny[msg] {
input. kind == "ServiceConfig"
input. timeout_ms> 800 msg: = sprintf ("timeout% dms exceeds budget 800ms," [input. timeout_ms])
}
13) Müşahidə və müşahidə metrikası
Compliance%: düzgün requests/limits/labels ilə pod payı.
Security Posture: seccomp/AppArmor/rootless ilə pod payı.
Rate-limit hit%, shed%, throttle%, 429 share.
p95 vaxt/retraut, circuit-open duration.
OOM kills/evictions, CPU throttle seconds.
Network egress denied events, egress allowlist misses.
14) Çek vərəqləri
Xidmətin hesablanmasından əvvəl
- Qeydiyyat requests/limits; QoS ≥ Burstable
- Vaxtlar və retrasiyalar end-to-end SLA-ya uyğundur
- Circuit-breaker/bulkhead xarici asılılıqlar üçün daxil
- NetworkPolicy (ingress/egress) и mTLS
- Seccomp/AppArmor, drop capabilities, non-root, read-only FS
- API şlüz/xidmətdə Rate-limits və kvotalar
- PDB/priority/affinity təyin; autoscaling xüsusi
Aylıq
- İstisnaların siyasətinin auditi (TTL)
- Vaxt/səhv büdcələrinə yenidən baxılması
- Deqradasiya testi (fire-drill): shed/backpressure/circuit-breaker
- Sirlərin/sertifikatların rotasiyası
15) Anti-nümunələr
Heç bir requests/limits: «burst» qonşuları yeyir → kaskad nasazlıqları.
Jittersiz qlobal retrajlar: asılılıqda fırtına.
Sonsuz taymautlar: «asılmış» konnektlər və hovuzların tükənməsi.
': latest' və mutable tags: gözlənilməz runtime montajları.
Açıq egress: sızma və idarə olunmayan asılılıqlar.
PDB olmaması: yeniləmələr bütün hovuzu «döyür».
16) Mini playbuklar
A. Payments-service-də CPU throttle% sıçrayışı
1. limits/requests yoxlamaq və isti yolları profil.
2. Müvəqqəti requests qaldırmaq, p95 latency ilə avtoskeyl yandırmaq.
3. Cash-follback limitləri/kursları daxil edin, sorğuların mürəkkəbliyini azaltın.
4. Post-fiks: denormallaşma/indekslər, limits yenidən baxılması.
B. Artım 429 və API şikayətləri
1. Açarlar/təşkilatlar haqqında hesabat → kim kvotaya söykəndi.
2. hierarchical quotas daxil edin (per-org → per-key), qızıl üçün burst qaldırmaq.
3. Rabitə və guidance backoff; adaptive limiting.
V. Kütləvi OOM kills
1. concurrency azaldılması, heap-limit və profil daxil.
2. real peak-usage altında Xmx/GOMEMLIMIT yenidən.
3. GC/hovuzları yenidən öyrənin, swap-off və yumşaq limit riskləri əlavə edin.
17) Konfiqurasiya nümunələri
Təhlükəsiz parametrlərlə K8s konteyner (fraqment):yaml securityContext:
runAsNonRoot: true allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities:
drop: ["ALL"]
Envoy rate-limit (fraqment konseptual):
yaml rate_limit_policy:
actions:
- request_headers:
header_name: "x-api-key"
descriptor_key: "api_key"
Nginx ingress - vaxt və məhdudiyyətlər:
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) Dəyişiklik və hadisələrin idarə edilməsi ilə inteqrasiya
Hər hansı bir siyasətin zəifləməsi - RFC/CAB vasitəsilə və TTL ilə müvəqqəti istisna.
Siyasətin pozulması hadisələri → post-mortem və qaydaların yenilənməsi.
Uyğunluq daşbordları (compliance) buraxılış təqviminə qoşulur.
19) Yekun
İcra siyasətləri platforma üçün «məhəccərlərdir»: onlar sürətlə sürməyə mane olmur, düşməyə imkan vermirlər. Deklarativ məhdudiyyətlər, avtomatik məcburiyyət, yaxşı metriklər və istisnalar intizamı xaotik istismarı idarə olunan və proqnozlaşdırıla bilən bir sistemə çevirir - nəzarət olunan dəyər və sabit SLO.