GH GambleHub

Resurslary meýilleşdiriji we awto-skeyling

Gysgaça gysgaça

Durnukly skeyling dört sütüne esaslanýar:

1. Dogry soraglar/çäkler we QoS synplary.

2. Dogry gurnama (topologiýa, affiniti, ileri tutulýan ugurlar, empsiýadan öňki).

3. Köp derejeli awto-skeyling: HPA/VPA/KEDA + Cluster/Node autoscaler + warm pools.

4. Anti-flapping we býudjetler bilen SLO gönükdirilen logika (latency/queue depth).


Çeşmeleriň esasy modeli

Requests/Limits we QoS synplary

Requests = meýilnamalaşdyryjy üçin kepillikler; Limits = runtime üçin potoloklar.
QoS: Guaranteed (req = lim CPU/Memory), Burstable (bölekleýin), BestEffort (hiç zat).
Gaty SLO bilen önümçilik hyzmatlary - Guaranteed/Burstable; fon - Burstable/BestEffort.

CPU/Ýat/IO/Tor

CPU - elastik (wagt-paýlaşmak), ýat - gaty (OOM-öldürmek).
IO/tora aýratyn çäklendirmeleri/ileri tutmalary goýuň (cgroups/TC), ýogsam "şowhunly goňşular".

GPU/tizlendirijiler

Wektorly (GPU = 1, profiller arkaly VRAM) soraň, tankyt etmek üçin nodeSelector/taints we PodPriority ulanyň.
Inferens üçin - batch size we gyzdyrylan modeller.


Çyzmak syýasaty (Scheduling)

Ileri tutulýan ugurlar, deslapky empsiýa we PDB

Möhüm ýollar üçin PriorityClass (tölegler, giriş), deslapky empsiýa rugsat berilýär.
PodDisruptionBudget ewakuasiýa/täzelenme wagtynda iň az sözleri goraýar.

Affiniti/Topologiýa

kolokasiýa/dekolokasiýa üçin node/pod affinity (mysal üçin, bir host üçin replika goýmaň).
topologySpreadConstraints/AZ zolaklary boýunça podlary deňleşdirýär.
NUMA/topologiýa: pes gizlinlik möhüm bolan ýerlerde pin-CPU/hugepages.

Teýintler we tolerantlar

Howuzlary açyň: 'prod', 'batch', 'gpu', 'system'. Tankytlara goňşulary az çydam edýär.


Awto skeyling: derejeler we signallar

1) HPA (Horizontal Pod Autoscaler)

Tagtalaryň metriklere görä göçürilmegi: CPU/Memory/Custom (Prometheus Adapter).
Gowy signallar: latency p95/p99, queue length/lag, RPS per pod, consumer lag.
Anti-flapping: stabilizasiýa (stabilizationWindow), minimal ädim, cooldown.

HPA (latency-driven) mysaly:
yaml apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: { name: api-hpa }
spec:
scaleTargetRef: { apiVersion: apps/v1, kind: Deployment, name: api }
minReplicas: 6 maxReplicas: 120 behavior:
scaleUp:
stabilizationWindowSeconds: 60 policies: [{ type: Percent, value: 100, periodSeconds: 60 }]
scaleDown:
stabilizationWindowSeconds: 300 policies: [{ type: Percent, value: 20, periodSeconds: 60 }]
metrics:
- type: Pods pods:
metric:
name: http_server_request_duration_seconds_p95 target:
type: AverageValue averageValue: "0.25" # 250ms

2) VPA (Vertical Pod Autoscaler)

Requests/limits hakyky sarp etmek üçin sazlaýar (teklipleri täzeleýär).
Usullar: 'Off' (ýygnamak), 'Auto' (täzeden başlamak), 'Initial' (diňe başlanda).
Amal: 'Off' -y açyň → statistikany ýygnamak → goýberilende ulanmak.

3) KEDA/nobata esaslanýan skeyling

Daşarky signallara jogap berýär: Kafka lag, SQS depth, Redis length, Prometheus.
Wakalaryň/nobatlaryň (EDA) konsumerleri üçin amatlydyr.

KEDA ScaledObject (Kafka lag):
yaml apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: { name: consumer-scale }
spec:
scaleTargetRef: { name: txn-consumer }
minReplicaCount: 2 maxReplicaCount: 200 cooldownPeriod: 120 pollingInterval: 5 triggers:
- type: kafka metadata:
bootstrapServers: broker:9092 consumerGroup: tx-cg topic: payments lagThreshold: "10000"

4) Cluster/Node Autoscaler (CA) + Warm Pools

CA ýetmezçilik/artykmaç ýagdaýynda nodlary goşýar/aýyrýar.
Warm pools: öňünden gyzdyrylan nodlar/taýýarlanan şekiller (cold start çaltlaşdyrýar).
Iň ýokary nokatlar üçin - step-scaling we köpeldilen minNodes.


Reaksiýanyň we gyzmagyň tizligi

Reaksiýanyň SLO-gijikdirilmegi: öň gatlak ≤ 1-2 minut, arka taraplar/BD - aýratyn we öňünden.
Gyzdyrmak: TLS/DNS/konnektler, modelleri ýüklemek, nagt we JIT gyzdyrmak.
Wakadan öň çeňňek ýoluny "nasos etmek" üçin kölege ýüklemek.


Anti-flapping we durnuklylyk

Metriklerde gisterezis, tekizlemek (eks. orta).
Stabilization windows in HPA, uly 'scaleDown'.
"Arra" ýerine step skeyling; replikalary üýtgetmek üçin rate-limit.
Budget skeyling: bir minutda goşulýan traffigiň/replikalaryň% -ini çäklendiriň.


Synlamak we SLO

Esasy SLI:
  • p95/99 latency, error rate, throughput, queue depth/lag, CPU/Memory saturation, pod pending time, node pressure.
Alertler:
  • pending pods, unschedulable wakalar, IP/kiçi ulgamlaryň ýetmezçiligi, surat pull uzyn, evictions.
  • Tracs: tail-based sampling p99 → skeýlde dar ýerleri görýäris.

FinOps: elastiklik bahasy

Metrikler: $/1000 RPS, $/ms p95, $/sagat ätiýaçlyk.
Garyşyk: on-demand + reserved + spot (tankyt etmezlik üçin).
Awto-skeylyň bosagasy ýalňyşlygyň bahasy bilen baglanyşykly: käwagt warm-ätiýaçlygyny saklamak peýdalydyr.


iGaming/fintech üçin aýratynlyklar

Oýunlaryň/ýaryşlaryň iň ýokary derejesi: 'minReplicas' we minNodes-i öňünden ýokary galdyryň, warm pools-y açyň we keşleri/modelleri gyzdyryň.
Töleg konsumerleri: KEDA lag + idempotentlik boýunça, üpjün edijileriň çäkleri (PSP) daşarky degradasiýa triggeri hökmünde.
Antibot: aýratyn howuz, düzgünleriň çalt gerimi, "çal" ugurlar.
Düzgünleşdiriji: PDB-ler laýyk hyzmatlarda, ileri tutulýan ugurlar batch-den has ýokary.


Çek sahypalary

Dizaýn

  • Requests/limits profil maglumatlary boýunça berilýär; Kos saýlandy.
  • PriorityClass, PDB, taints/tolerations we topologySpread - sazlandy.
  • HPA SLO metrleri boýunça, diňe bir CPU däl.
  • Teklipleri ýygnamak üçin "Off" -a VPA ("Auto" -a göçmek).
  • KEDA/waka ýükleri üçin nobatlar.
  • CA + warm pools, şekiller kesişýär (image pre-pull).

Ulanyş

  • Stabilizasiýa windows we cooldowns (fapping aýryldy).
  • Alertler pending/unschedulable, lag, p95, error-rate.
  • Runbooks: "nod ýok", "surat uzalmaýar", "OOM/evict", "retraý tupany".
  • Her aýda Capacity-review: Skeylyň hakykaty vs meýilnama/bahasy.

Adaty ýalňyşlyklar

HPA diňe IO/DB çäklerinde CPU → lat-regress boýunça.
PDB-iň ýoklugy we ileri tutulýan ugurlar → tankyt ilki bilen ýüze çykýar.
Tankyt we batch bir howuzda taints → "şowhunly goňşular" bolmazdan garyşdyrylýar.
Nol gyzdyrma → iň ýokary derejedäki sowuk başlangyçlar.
Agressiw 'scaleDown' → mişar we thrash konteýnerleri.
KEDA idempotentlik bolmazdan → tupan wagtynda habarlaryň dublikatlary.


Kiçi pleýbuklar

1) Iň ýokary wakadan öň (T-30 minut)

1. 'minReplicas '/minNodes ulanyň, warm pools işjeňleşdiriň.
2. CDN/DNS/TLS/konnektleri gyzdyryň, modelleri ýükläň.
3. Botlar üçin "çal" ugurlary/çäkleri öz içine alyň.
4. Dashboards barlaň: pending/lag/p95.

2) Nod ýetmezçiligi (unschedulable)

1. CA, bulut kwotalaryny, kiçi torlary/IP barlaň.
2. Batch çäklerini wagtlaýyn azaltmak, pes ileri tutulýan ugurlar üçin deslapky empsiýany goşmak.
3. Has uly görnüşli ýa-da ikinji howuzy wagtlaýyn galdyryň.

3) Nobatda lag ösüşi

1. KEDA: scale up trigger; 2) konsumeriň çäklerini ýokarlandyrmak;

2. Öndürijileriň idempotency-keys we backpressure-lerini açyň.

4) Söz aragy

1. Stabilization/cooldown; 2) step-skeylinge geçmek;

2. metrikany eksponensial ortaça tekizlemek.


Şparklar

VPA (teklipleri ýygnamak):
yaml apiVersion: autoscaling.k8s.io/v1 kind: VerticalPodAutoscaler metadata: { name: api-vpa }
spec:
targetRef: { apiVersion: "apps/v1", kind: Deployment, name: api }
updatePolicy: { updateMode: "Off" } # собираем рекомендации
"Cluster Autoscaler" (baýdak ideýalary, düşünje):

--balance-similar-node-groups
--expander=least-waste
--max-empty-bulk-delete=10
--scale-down-utilization-threshold=0.5
--scale-down-delay-after-add=10m
Topology spread:
yaml topologySpreadConstraints:
- maxSkew: 1 topologyKey: topology.kubernetes.io/zone whenUnsatisfiable: DoNotSchedule labelSelector: { matchLabels: { app: api } }

Jemi

Netijeli meýilleşdiriji we awto-skeling - dogry soraglar/çäkler + akylly goýmak + köp derejeli skeling (HPA/VPA/KEDA/CA) + SLO we millisekundyň bahasy bilen baglanyşykly ýylylyk we anti-flapping. IaC syýasatlaryny düzüň, "dogry" metriklere (latency/lag) syn ediň, warm ätiýaçlygyny iň ýokary derejelerde saklaň - platforma elastik, öňünden aýdyp boljak we tygşytly bolar.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.