İşlemler ve Yönetim Yürütme Politikaları ve Çalışma Süresi Kısıtlamaları
Yürütme Politikaları ve Çalışma Süresi Kısıtlamaları
1) Amaç
Çalışma zamanı politikaları, hizmetlerin davranışını öngörülebilir, güvenli ve ekonomik hale getirir: "gürültülü komşuları" sınırlandırır, sızıntıları ve aşırı ısınmayı önler, yük arttığında SLO'ların uyumluluğunu ve korunmasını sağlar.
Anahtar hedefler: izolasyon, kaynakların adil tahsisi, kontrollü bozulma, tekrarlanabilirlik, denetim.
2) Kapsam
Bilgi işlem ve bellek: CPU, RAM, GC duraklar, iş parçacığı sınırları.
Disk/depolama: IOPS/throughput, kotalar, fs-policies (salt okunur).
Сеть: çıkış/giriş, bant genişliği şekillendirme, ağ politikaları.
Süreçler/sistem çağrıları: seccomp, yetenekler, ulimit.
Orkestrasyon: Kubernetes QoS, istekler/sınırlar, öncelikler, ağrılar/yakınlık.
API/ağ geçitleri: hız limitleri, kotalar, zaman aşımları/geri dönüşler, devre kesiciler.
Veri/ETL/akışlar: toplu iş/akış eşzamanlılığı, tüketici gecikme bütçeleri.
Güvenlik: AppArmor/SELinux, köksüz, sırlar/kofigi.
Kod Olarak Politika: OPA/Gatekeeper, Kyverno, Conftest.
3) Temel ilkeler
Varsayılan olarak Fail-safe: gereksiz istekleri bırakmak, bırakmaktan daha iyidir.
Bütçe odaklı: Zaman aşımları/Retrays, istek süresi bütçesine ve SLO hata bütçesine uyar.
Küçük patlama yarıçapı: namespace/pool/host/shard izolasyonu.
Bildirimsel ve denetlenebilir: tüm kısıtlamalar - kod/depo + değişim günlüğünde.
Çok kiracılı adalet: Hiçbir kiracı/ekip tüm kümeyi "ememez".
4) Bilgisayar ve bellek
4. 1 Kubernetes и cgroup v2
İstekler/sınırlar: istekler CPU/bellek payını garanti eder; Sınırlara kısma/OOM-killer dahildir.
QoS sınıfları: Garantili/Burstable/BestEffort - kritik iş akışlarını Garantili/Burstable'da tutun.
CPU: 'cpu. shares ',' cpu. max '(gaz), sabitleme için CPuset.
Hafıza: 'Hafıza. Max ', hafıza. değiş tokuş. Öncelik için max '(genellikle takas kapalı) oom_score_adj.
4. 2 Desenler
Düğümde %20-30 boşluk, çoğaltma için anti-afinite.
GC sınırları: JVM '-Xmx' <k8s bellek sınırı; Git: 'GOMEMLİMİT'; Düğüm: '--max-old-space-size'.
ulimit: 'nofile', 'nproc', 'fsize' - servis profiline göre.
5) Disk ve depolama
PVC/küme depolamada IOPS/Verim kotaları; Günlük kaydı/veri ayrımı.
Salt okunur kök FS, geçici dosyalar için tmpfs, boyut sınırı'/tmp '.
FS-watchdog: hacim doldurma ve inode büyümesi için uyarılar.
6) Ağ ve trafik
NetworkPolicy (giriş/çıkış) - sıfır güven doğu-batı.
Bant genişliği sınırları: tc/çıkış-politikaları, kritik akışlar için QoS/DSCP.
Çıkış denetleyicisi: izin verilen etki alanlarının/alt ağların listesi, denetim DNS'si.
mTLS + TLS politikaları - şifreleme ve zorunlu protokol sürümü.
7) Proses güvenliği
Seccomp (allowlist syscalls), AppArmor/SELinux profilleri.
Linux yeteneklerini bırakın (minimum bırakın), 'AsNonRoot'u çalıştır', 'OnlyRootFilesystem'i oku'.
Köksüz kaplar, imzalı resimler ve onaylar.
Sadece Vault/KMS ile sırlar, kısa TTL ile tmp-tokenler.
8) Zaman politikaları: zaman aşımları, geri çekilmeler, bütçeler
Zaman aşımı bütçesi: tüm şerbetçiotu ≤ SLA uçtan uca toplamı.
Backoff + jitter ile Retrai, hata sınıfında maksimum deneme.
Devre kesici: eşik değerinin üzerinde hata %/zaman aşımı p95 ile açılır - hızlı arızalar.
Bölmeler: kritik yollar için ayrı bağlantı havuzları/kuyruklar.
Backpressure: Üreticileri tüketicileri gecikmeye sınırlamak.
9) Oran limitleri, kotalar ve öncelik
Algoritmalar: belirteç/sızdıran kova, GCRA; local + distributed (Redis/Envoy/global).
Granülerlik: API anahtarı/kullanıcı/kuruluş/bölge/uç nokta.
Öncelikli gradyanlar: "ödeme/yetkilendirme" akışları - altın, analitik - bronz.
Günlük/aylık kotalar, "patlama've" sürekli "limitler; 429 + Retry-After.
10) Orkestrasyon ve planlayıcı
PriorityClass: P1 bölmelerinin yer değiştirmeye karşı korunması.
PodDisruptionBudget: Güncellemelerde kesinti sınırları.
Tains/Tolerations, (anti) Affinity - izolasyon iş yükleri.
RuntimeClass: Kum havuzları için gVisor/Firecracker/Wasm.
Koruma eşikleri ve maks-replikalarla yatay/dikey otomatik ölçeklendirme.
11) Veri/ETL/Akış Politikaları
İş/konu başına eşzamanlılık, maksimum toplu iş boyutu, kontrol noktası aralığı.
Tüketici gecikme bütçeleri: uyarı/kritik; DLQ ve geri ödeme sınırı.
Vitrinler için tazelik SLA, prod trafiğinin zirvelerinde ağır işlerin duraklaması.
12) Kod olarak Politika ve kabul-kontrol
OPA Gatekeeper/Kyverno: istekler/sınırlar olmadan hiçbir pod, hayır 'readOnlyRootFilesystem', ile 'hostNetwork', ': latest'.
Ön taahhüt Helm/K8s/Terraform kontrolleri için Conftest.
Mutasyon politikaları: otomatik ekleme sidecar (mTLS), ek açıklamalar, 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) örneği - 800 ms ≤ zaman aşımları:
rego package policy. timeout
deny[msg] {
input. kind == "ServiceConfig"
input. timeout_ms> 800 msg: = sprintf ("timeout% dms exceeds budget 800ms," [input. timeout_ms])
}
13) Gözlemlenebilirlik ve uyumluluk metrikleri
Uyumluluk %: doğru istekleri/sınırları/etiketleri olan kodların yüzdesi.
Güvenlik Duruşu: bölmelerin seccomp/AppArmor/rootless ile paylaşılması.
Oran-limit isabet %, dökülme %, gaz %, 429 pay.
P95 zaman aşımı/geri çekilme, devre açık süre.
OOM öldürür/tahliye, CPU gaz saniye.
Ağ çıkışı olayları reddetti, çıkış allowlist özlüyor.
14) Kontrol listeleri
Hizmeti vermeden önce
- İstekler/limitler yazılır; QoS ≥ Burstable özellikleri
- Zaman aşımları ve geri ödemeler uçtan uca SLA'lara uyar
- Dış bağımlılıklar için devre kesici/bölme etkin
- NetworkPolicy (giriş/çıkış) и mTLS
- Seccomp/AppArmor, bırakma yetenekleri, root olmayan, salt okunur FS
- API ağ geçidi/hizmetinde fiyat limitleri ve kotalar
- PDB/priority/affinity belirtilmiştir; Otomatik ölçekleme yapılandırıldı
Aylık
- Denetim politikası istisnaları (TTL)
- İnceleme Süresi/Hata Bütçeleri
- Yangın-matkap testi: dökmek/geri basınç/devre kesici
- Dönen sırlar/sertifikalar
15) Anti-desenler
İstek/limit olmadan: "patlama" komşuları yiyor - basamaklı çöker.
Titremesiz küresel geri çekilmeler: bağımlılıklarda bir fırtına.
Sonsuz zaman aşımları: "asılı" bağlantılar ve havuzların tükenmesi.
': en son've değiştirilebilir etiketler: öngörülemeyen çalışma zamanı yapıları.
Açık çıkış: sızıntılar ve yönetilmeyen bağımlılıklar.
PDB yok: Güncellemeler tüm havuzu devre dışı bırakır.
16) Mini oyun kitapları
A. ödeme hizmetinde CPU gazı %
1. Sınırları/istekleri ve profil sıcak yollarını kontrol edin.
2. Geçici olarak istekleri yükseltin, p95 gecikmesiyle otomatik ölçeği açın.
3. Geri ödeme limitlerini/oranlarını etkinleştirin, sorguların karmaşıklığını azaltın.
4. Düzeltme sonrası: denormalizasyon/indeksler, sınırların gözden geçirilmesi.
B. 429 büyüme ve API şikayetleri
1. Anahtarlar/kuruluşlar hakkında rapor - kotaya girdi.
2. Hiyerarşik kotalar girin (per- org - per -key), altın için patlama yükseltin.
3. Backoff konusunda iletişim ve rehberlik; Uyarlanabilir sınırlamayı etkinleştir.
B. Mass OOM öldürür
1. Eşzamanlılığı azaltın, yığın sınırını ve profil oluşturmayı etkinleştirin.
2. Gerçek tepe kullanım için Xmx/GOMEMLIMIT'i yeniden hesaplayın.
3. GC/havuzlarını yeniden eğitin, swap-off ve soft-limit uyarıları ekleyin.
17) Yapılandırma örnekleri
Güvenli ayarlara sahip K8s konteyner (parça):yaml securityContext:
runAsNonRoot: true allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities:
drop: ["ALL"]
Elçi oran sınırı (parça kavramsal olarak):
yaml rate_limit_policy:
actions:
- request_headers:
header_name: "x-api-key"
descriptor_key: "api_key"
Nginx girişi - zaman aşımları ve kısıtlamalar:
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) Değişim ve olay yönetimi ile entegrasyon
Herhangi bir politika gevşemesi RFC/CAB ve TTL ile geçici istisna yoluyla yapılır.
Politika ihlali olayları - ölüm sonrası ve kural güncellemeleri.
Uyumluluk panoları sürüm takvimine bağlıdır.
19) Alt satır
Yürütme politikaları platform için bir "korkuluk'tur: hızlı sürüşe müdahale etmezler, düşmeye izin vermezler. Bildirimsel kısıtlamalar, otomatik uygulama, iyi metrikler ve istisna disiplini, kaotik sömürüyü kontrollü maliyet ve sürdürülebilir SLO'larla yönetilebilir ve öngörülebilir bir sisteme dönüştürür.