Texnologiyalar va infratuzilma → Kubernetes-klasterlar va Helm-chartlar
Kubernetes-klasterlar va Helm-chartlar
1) Kubernetes va Helm roli
Kubernetes - ilovalar platformasining asosi: yoyish, tarmoq, konfig, sirlar va o’z-o’zini tiklashni standartlashtiradi. Helm - deklarativ manifestlarni versiyalar va qaramliklarni boshqarish bilan takrorlanadigan relizlarga aylantiradigan paket/shablon boshqaruvchisi. Ular birgalikda oldindan aytib bo’ladigan deploi, tezkor qaytish va yagona infratuzilma tilini beradi.
2) Klaster dizayni
2. 1 Topologiya va nosozlikka chidamlilik
Multi-AZ: control plane va ish pullari uzellari zonalar bo’yicha taqsimlangan; Bir tekislik uchun PDB/TopologySpreadConstraints.
Multiregion/DR: mustaqil per-region klasterlari; mintaqalararo qo’ng’iroqlar - faqat «sovuq» yo’llar bo’yicha (kataloglar/telemetriya), «issiq» (hamyon) - mahalliy yo’llar bo’yicha.
Worker-pullar’general’,’compute’,’io’,’spot’(orqa fon vazifalari uchun). nodeSelector/affinity/taints.
2. 2 Nomlar maydoni va ko’p foydalanuvchi modeli
Namespace - domen/buyruqlar boʻyicha izolyatsiya:’payments’,’wallet’,’games’,’reporting’.
ResourceQuota + LimitRange: CPU/RAMning bazaviy limitlari va maksimal nusxalari; klasterni «changyutgichlardan» himoya qilish.
RBAC: faqatgina CI/CD va on-call.
2. 3 Tarmoq
NetworkPolicy (Calico/Cilium) qoʻllab-quvvatlaydigan CNI: namespace/label siyosatini L3/L4.
Ingress → Gateway API:’GatewayClass/Gateway/HTTPRoute’ga o’tish.
Service Mesh (ixtiyoriy): mTLS, retry/breaker, locality-aware; xizmatlararo ishonchlilik uchun nuqtalarni yoqish.
3) Ishonchlilik va masshtablash
3. 1 Skeyling
Faqat CPU emas, balki foydalanuvchi metrikasi (RPS/latency/queue depth) boʻyicha HPA.
yuklamalarning fon sinfida VPA; prodda - «recommendation only» yoki HPA bilan birgalikda turli metriklar bo’yicha.
Cluster Autoscaler: sezgir xizmatlar uchun alohida node groups; eng yuqori cho’qqilarga warm-pool (turnirlar/o’yinlar).
3. 2 Resurslar va QoS
Har bir Pod requests/limits; ’latest’ va’cheksiz’konteynerlardan qochish.
PriorityClass: tanqidiy xizmatlar (’wallet’,’payments’) tanqidiy bo’lmaganlarni almashtiradi.
PDB: Nod yangilanganda «oyog’ingizga o’q uzish» klasteriga yo’l qo’ymaymiz.
3. 3 To’xtovsiz yangilanishlar
RollingUpdate c maxUnavailable = 0.
PodDisruptionBudget + ReadinessProbes (не `startupProbe` вместо readiness).
Cho’qqilar paytida tezkor relizlar uchun Surge-sig’imi - ehtiyotkorlik bilan.
4) Platforma xavfsizligi
namespace darajasida Pod Security (Baseline/Restricted); taqiqlangan’privileged’, hostPath, root.
NetworkPolicy: default-deny va/label portlari boʻyicha oq roʻyxatlar.
Seccomp/AppArmor, non-root users, read-only rootfs.
Secrets: KMS/Vault provayderi (CSI), sirlarni’values’da saqlamaymiz. yaml’ochiq koʻrinishda.
RBAC-minimum: servis hisoblariga faqat zarur huquqlarni beramiz; qisqa umr ko’ruvchi tokenlar.
Admission-nazorat: OPA/Gatekeeper/Kyverno - enforce leybllar, limitlar, policy-qoidabuzarliklar.
5) Observability
OpenTelemetry: Ingress/Gateway → service → DB/kesh, majburiy’service’,’version’,’region’,’partner’,’api _ version’yorliqlari.
Logi: strukturalangan, PII/PANsiz; markazlashtirilgan omborga yo’naltirish.
Metriklar: RED/USE, SLO-dashbordlar, burn-rate alertalar.
Sintetika: zarur mamlakatlardan namunalar/ASN; perimetri va ichki health-checks.
6) GitOps и progressive delivery
Argo CD/Flux: istalgan holat Git’da saqlanadi; har bir namespace - o’z repozitoriyasi/jildidir.
«kubectl apply» emas, balki’dev → stage → prod’artefaktlarini PR orqali reklama qilish.
Canary/Blue-Green: Argo Rollouts/Gateway API; muvaffaqiyat metrikasi - P95/P99, error-rate, biznes-SLI (CR depozitlar).
Orqaga qaytish: Helm/Argo - tugmasi boʻyicha; chartlarda - versiyalar qayd etilgan.
7) Helm: eng yaxshi amaliyotlar
7. 1. Chart tuzilmasi
my-service/
Chart. yaml # name, version (SemVer), appVersion values. yaml # base values (no secrets)
values-prod. yaml # prod overrides (no secrets)
templates/
_helpers. tpl # naming, common deployment templates. yaml service. yaml hpa. yaml pdb. yaml networkpolicy. yaml serviceaccount. yaml ingress_or_gateway. yaml charts/# dependencies (opcional)
Tavsiyalar:
- ’version’ - chart versiyasi (SemVer),’appVersion’- ilova versiyasi (imij).
- ’{{include’ svc. fullname".}}’+ yorliqlar’app. kubernetes. io/`.
- Majburiy manifestlar: Deployment/StatefulSet, Service, ServiceAccount, HPA (iloji boʻlsa), PDB, NetworkPolicy.
7. 2 Values strategiyasi
Asosiy’values. yaml’- defoltlar, sirlar va atrof-muhit o’ziga xos xususiyatlarsiz.
Overraydlar:’values- {stage’prod} .yaml’+ per-region fayllari.
Sirlar: SOPS (’values-prod. sops. yaml’) yoki CSI orqali Vault-inyeksiya.
Resurslar va namunalar parametrlari - values’da «oqilona» defoltlar bilan.
7. 3 Qaramliklar va umumiy kod
Patternlar uchun umumiy chartlar (probes, annotations, NetworkPolicy).
Bogʻliqlik (’requirements ’/’ Chart. yaml’) versiyasini qayd qiling; chin koʻngildan qoching.
7. 4 Shablonlar va tekshirishlar
’required’ va’fail’dan’_ helpers’ga foydalaning. kritik qiymatlar uchun tpl’.
Values sxemasini validatsiya qilish. schema. json`.
Chartning birlik-testlari -’helm unittest’; statik tahlil - kubeconform/kubeval.
Lokal tuzatish -’helm template’+’-values’+’kubeconform’.
7. 5 Relizlar va saqlash
Konteynerlarning OCI-registrlariga push-chartlar; SemVer.
Helmfile/`helmfile. d’ko’p qatorli rulonlarni orkestrlash uchun.
CI artefaktlari: ishlab chiqarilgan manifestlar + lockfile qaramliklari.
8) Misol: Deployment (Helm shablon parchasi)
yaml apiVersion: apps/v1 kind: Deployment metadata:
name: {{ include "svc. fullname". }}
labels: {{ include "svc. labels". nindent 4 }}
spec:
replicas: {{.Values. replicas default 3 }}
strategy:
type: RollingUpdate rollingUpdate:
maxSurge: 1 maxUnavailable: 0 selector:
matchLabels: {{ include "svc. selectorLabels". nindent 6 }}
template:
metadata:
labels: {{ include "svc. selectorLabels". nindent 8 }}
annotations:
checksum/config: {{ include (print $.Template. BasePath "/configmap. yaml"). sha256sum }}
spec:
serviceAccountName: {{ include "svc. serviceAccountName". }}
securityContext:
runAsNonRoot: true containers:
- name: app image: "{{.Values. image. repository }}:{{.Values. image. tag }}"
imagePullPolicy: IfNotPresent ports:
- name: http containerPort: {{.Values. ports. http }}
resources:
requests:
cpu: {{.Values. resources. requests. cpu }}
memory: {{.Values. resources. requests. memory }}
limits:
cpu: {{.Values. resources. limits. cpu }}
memory: {{.Values. resources. limits. memory }}
readinessProbe:
httpGet:
path: /healthz port: http periodSeconds: 5 envFrom:
- secretRef:
name: {{ include "svc. secretsName". }}
9) Sirlar va konfiguratsiyalar
Secrets CSI (Vault/KMS) yoki SOPS orqali Git-repozitoriyada (GPG/KMS kalitlari; taqiq’kubectl edit’).
ConfigMap/Secret checksum rolling-reliz triggeri uchun izohlar.
PAN/PII saqlanmasligi; tokenizatsiyadan foydalanish.
Sealed Secrets ruxsat etilgan, ammo SOPS yoki to’g’ridan-to’g’ri CSI afzalroqdir.
10) Tarmoq va perimetr
L7-routing, kanareykalar va blue-green uchun Gateway API; sticky-sessiyalar faqat zarur bo’lganda.
mTLS to’lov yadrosi uchun mesh/sidecar-less (Cilium) orqali xizmatlar o’rtasida.
Egress: tashqi uzellarning nazorat qilinadigan ro’yxati (PSP/KYC), qat’iy belgilangan NAT-IP, taymautlar va retraylar byudjeti.
11) Stateful-servislar va ma’lumotlar
OLTP-DB uchun boshqariladigan bulutlar xizmatlaridan yoki alohida klasterlardagi operatorlardan (Postgres/MySQL) foydalaning.
Snapshotlar va backaplar siyosati bilan PVC/CSI; replikalar uchun’PodAntiAffinity’.
Navbatlar/striming uchun - boshqariladigan yechimlar yoki ajratilgan klaster; «umumiy» ilova klasterida minimal holatni saqlab turish.
12) CI/CD konveyer (referens)
1. Build & test → 2) SCA/lint → 3) Registrdagi tasvir (SBOM, imzo) →
2. Helm-chartni yaratish +’helm unittest’+ kubeconform →
3. CD rantaymidagi SOPS-dekript → 6) GitOps-repozitoriyadagi PR →
4. Argo/Flux qo’llaydi → 8) Argo Rollouts canary → 9) SLO bo’yicha avtomatik hukm → 10) Promosyon/orqaga qaytish.
13) Platformaning etuklik metrikasi
GitOps orqali relizlar ulushi (maqsad: 100%).
To’plash vaqti (P95) tayyor bo’lgunga qadar, MTTR orqaga qaytish.
Namespace’larni qoplash Pod Security va NetworkPolicy (maqsad: 100%).
HPA va toʻgʻri requests/limits bilan% services.
% s’values. schema. json’i yunit-testlar.
«Qoʻlda» oʻzgarishlar natijasida yuzaga kelgan hodisalar (maqsad: 0).
14) Joriy etish chek-varaqasi
1. Zonalar bo’yicha klaster, profillar bo’yicha uzellar puli; PDB/TopologySpreadConstraints.
2. Namespace modeli, ResourceQuota/LimitRange, RBAC minimal.
3. Pod Security (Restricted) и default-deny NetworkPolicy.
4. Gateway API/Ingress; egress-nazorat va NAT-provayderlarga qayd etish.
5. Observability: OTel treyslari, RED/USE, geo bo’yicha sintetika; SLO-dashbordlar.
6. GitOps (Argo/Flux), canary/blue-green, metrik avtosanoat.
7. Helm-standartlar: tuzilma, sxema. json, testlar, SOPS/Vault, OCI registrlari.
8. HPA/VPA, Cluster Autoscaler, choʻqqilarga warm-pool.
9. Ma’lumotlar bilan operatsiyalar: CSI snapshotlar, bekaplar, operatorlar/managed DB.
10. Muntazam DR/chaos testlari va game-days.
15) Anti-patternlar
Izolyatsiyasiz va kvotasiz hamma uchun bitta «ulkan» klaster.
Resurslar cheklanmagan konteynerlar,’latest’teglar, probes mavjud emas.
Sirlar v’values. yaml’ochiq ko’rinishda,’kubectl edit’prodda.
GitOps orqali relizlar, manifestlarni jonli klasterda qoʻlda tahrirlash.
NetworkPolicy/Pod Security yo’qligi - «tekis» tarmoq.
Turli xil yuklamalar uchun CPU bo’yicha yagona umumiy HPA-signal.
OLTP-DBni ilovaning «umumiy» klasteri ichida operator va bekaplarsiz saqlash.
16) iGaming/fintech konteksti: amaliy notalar
To’lov vebxuklari: ajratilgan ingress/gateway va tor egress to PSP; qat’iy taymautlar/retralar; alohida uzellar puli.
VIP-trafik: ustuvorlik va alohida yo’nalishlar; Barqarorlik uchun PDB va topologiya spread.
Turnirlar/cho’qqilar: warm-pool uzellari + bashorat qilingan HPA; kesh/ulanishlarni isitish.
Hisobot/CDC: ETL prodga ta’sir qilmasligi uchun alohida klaster/hovuz.
Tartibga solish: o’zgarmas loglar (WORM), PII tokenizatsiya, tarmoqlarni segmentlash.
Jami
Kuchli Kubernetes platformasi «YAML to’plami» emas, balki standartlar: izolyatsiya, xavfsizlik siyosati, boshqariladigan resurslar, kuzatuv va GitOps intizomi. Helm-chartlar - sizning etkazib berish shartnomangiz: oldindan aytib bo’ladigan relizlar, sinovdan o’tkaziladigan shablonlar, sirlar bilan xavfsiz ishlash va oddiy qaytishlar. Ushbu printsiplarni mustahkamlab, siz eng yuqori cho’qqilarni boshdan kechirayotgan, relizlarni tezlashtiradigan va biznes va regulyatorlarning talablariga javob beradigan klasterlarga ega bo’lasiz.