Technology and Infrastructure → Kubernetes-кластерлер жана Helm-чарттар
Kubernetes-кластерлер жана Helm-чарттар
1) ролу Kubernetes жана Helm
Kubernetes - колдонмо платформасынын негизи: тоголотуу, тармак, конфиги, сырлар жана өзүн-өзү калыбына келтирүүнү стандартташтырат. Helm - нускасын жана көз карандылыгын башкаруу менен кайталануучу релиздер жарыя манифесттерди айландырат пакеттердин/шаблондордун менеджери. Алар биргелешип алдын ала деплойлорду, тез кайтарымдарды жана бирдиктүү инфраструктура тилин беришет.
2) Кластердик дизайн
2. 1 Топология жана бузулууга туруктуулук
Multi-AZ: control plane жана жумушчу бассейндердин түйүндөрү зоналар боюнча бөлүштүрүлөт; PDB/TopologySpreadConstraints үчүн бир калыпта.
Мультирегион/DR: көз карандысыз per-аймак кластерлер; аймактар аралык чалуулар - "муздак" жолдор боюнча гана (каталогдор/телеметрия), "ысык" (капчык) - жергиликтүү.
Worker пулдары: 'general', 'compute', 'io', 'spot' (фон тапшырмалары үчүн). nodeSelector/affinity/taints аркылуу дайындоо.
2. 2 Аттардын мейкиндиги жана көп колдонуучу модели
Namespace-домен/команда боюнча обочолонуу: 'payments', 'wallet', 'games', 'reporting'.
ResourceQuota + LimitRange: Негизги CPU/RAM чектери жана максималдуу репликалары; кластерди "чаң соргучтардан" коргоо.
RBAC: ролдору демейки боюнча read-only, write - гана CI/CD жана on-call.
2. 3 Тармак
CNI NetworkPolicy (Calico/Cilium) колдоосу менен: namespace/label боюнча саясат L3/L4.
Ingress → Gateway API: моделге өтүү 'GatewayClass/Gateway/HTTPRoute' канареялар жана көп тенанттуулук үчүн.
Service Mesh (кошумча): mTLS, retry/breaker, locality-aware; кызматтар аралык ишенимдүүлүк үчүн чекитти камтыйт.
3) Ишенимдүүлүк жана масштабдоо
3. 1 Скейлинг
HPA колдонуучу метриктер боюнча (RPS/latency/queue depth), бир гана CPU эмес.
VPA арткы класстагы жүктөмүн; - "recommendation only" же HPA менен бирге ар кандай көрсөткүчтөр боюнча.
Cluster Autoscaler: сезгич кызматтардын астында өзүнчө node groups; warm-pool чокулары (турнирлер/дан).
3. 2 Ресурстар жана QoS
Ар бир Pod requests/limits бар; качуу ': latest' жана "чексиз" контейнерлер.
PriorityClass: критикалык кызматтар ('wallet', 'payments') критикалык эмес кызматтарды алмаштырат.
PDB: түйүндөрдү жаңыртканда кластерди "өзүбүздү бутка атууга" жол бербейбиз.
3. 3 Үзгүлтүксүз жаңыртуулар
RollingUpdate c maxUnavailable = 0 критикалык жолдор боюнча.
PodDisruptionBudget + ReadinessProbes (не `startupProbe` вместо readiness).
Surge кубаттуулугу чокулары учурунда тез чыгаруу үчүн - этияттык менен.
4) Платформа коопсуздугу
Pod Security (Baseline/Restricted) namespace деңгээлинде; тыюу 'privileged', hostPath, root.
NetworkPolicy: default-deny жана/label порттору боюнча ак тизмелери.
Seccomp/AppArmor, non-root users, read-only rootfs.
Secrets: KMS/Vault провайдери (CSI), биз жашыруун сактабайбыз 'values. yaml 'ачык түрүндө.
RBAC-минималдуу: тейлөө эсептерине керектүү укуктарды гана беребиз; кыска мөөнөттүү токендер.
Admission-Control: OPA/Gatekeeper/Kyverno - enforce этикеткалары, лимиттери, саясат бузуулар.
5) Observability
OpenTelemetry: Ingress/Gateway → кызматы → DB/кэш, милдеттүү этикеткалар 'service', 'version', 'region', 'partner', 'api _ version'.
Логи: структураланган, PII/PAN жок; борборлоштурулган сактоо багыттоо.
Метрика: RED/USE, SLO-dashboard, burn-rate алерт.
Синтетика: керектүү өлкөлөрдүн үлгүлөрү/ASN; периметри жана ички ден соолук-текшерүү.
6) GitOps и progressive delivery
Argo CD/Flux: каалаган абалы Git сакталат; ар бир namespace - өзүнүн репозиторийи/папкасы.
Артефакттарды жарнамалоо: 'dev → stage → prod' PR аркылуу эмес, "kubectl apply".
Canary/Blue-Green: Argo Rollouts/Gateway API; ийгилик метрика - P95/P99, error-rate, бизнес-SLI (CR депозиттер).
Артка: Helm/Argo - баскычы боюнча; хит-параддарда - версиялар жазылган.
7) Helm: мыкты тажрыйбалар
7. 1 Чарттын түзүмү
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)
Сунуштар:
- 'version' - чарттын версиясы (SemVer), 'appVersion' - тиркеменин версиясы (имидж).
- Катуу ресурстар аттары: '{{include "svc. fullname".}}' + лейблы' app. kubernetes. io/`.
- Милдеттүү манифесттер: Deployment/StatefulSet, Service, ServiceAccount, HPA (эгер колдонулса), PDB, NetworkPolicy.
7. 2 Values стратегиясы
Негизги 'values. yaml '- дефолттор, сырлары жана айлана-чөйрөсү жок.
Оверрайд: 'values- {stage' prod} .yaml '+ per-region файлдары.
Сырлар: SOPS ('values-prod. sops. yaml ') же CSI аркылуу Vault-инъекция.
Ресурстардын жана үлгүлөрдүн параметрлери - "акылга сыярлык" дефолттор менен values.
7. 3 Көз карандылык жана жалпы код
Паттерндер үчүн жалпы китепканалар (probes, annotations, NetworkPolicy).
Көз карандылык ('requirements '/' Chart. yaml ') версия боюнча бекитүү; терең "матрешка" алыс.
7. 4 Шаблондор жана текшерүүлөр
'required' жана 'fail' v '_ helpers' колдонуңуз. tpl 'критикалык баалуулуктар үчүн.
values схемасы validation - 'values. schema. json`.
Юнит-тесттер чарты - 'helm unittest'; статикалык талдоо - kubeconform/kubeval.
Жергиликтүү оңдоо - 'helm template' + '-values' + 'kubeconform'.
7. 5 Релиздер жана сактоо
Контейнерлердин OCI-реестрлери боюнча чарты; теги боюнча SemVer.
Helmfile/`helmfile. d 'көп чарттуу катмарларды оркестрлөө үчүн.
CI артефакттары: өндүрүлгөн манифесттер + lockfile көз карандылыгы.
8) Мисал: Deployment (Helm үлгү үзүндүсү)
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) Сырлар жана конфигурациялар
CSI аркылуу Secrets (Vault/KMS) же Git-репозиторийдеги SOPS (GPG/KMS ачкычтары; тыюу салуу 'kubectl edit').
ConfigMap/Secret checksum rolling-релиз триггери үчүн аннотациялар.
PAN/PII сактоого; tokenization колдонуу.
Sealed Secrets жол берилет, бирок SOPS же түздөн-түз CSI артык.
10) Тармак жана периметри
L7-роутинг, канарейка жана көк-жашыл үчүн Gateway API; sticky сессиялар гана зарыл болгон учурда.
mTLS кызматтардын ортосунда mesh/sidecar-less (Cilium) аркылуу - төлөм өзөгү үчүн чекит.
Egress: контролдонуучу тышкы түйүндөр тизмеси (PSP/KYC), белгиленген NAT-IP, убакыт жана бюджети retrains.
11) Stateful-кызматтар жана маалыматтар
OLTP-DD үчүн жеке кластерлерде башкарылуучу булут кызматтарын же операторлорду (Postgres/MySQL) колдонуңуз.
snapshot жана backup саясаты менен PVC/CSI; 'PodAntiAffinity' репликалар үчүн.
Кезек/стриминг үчүн - башкарылуучу чечимдер же бөлүнгөн кластерлер; "жалпы" тиркемелик кластерде минималдуу байлык сакталат.
12) CI/CD конвейер (шилтеме)
1. Build & Test → 2) SCA/линт → 3) Registre Image (SBOM, кол коюу) →
2. Хелм-чарттын генерациясы + 'helm unittest' + kubeconform →
3. SOPS-CD ижарасында декрипт → 6) GitOps-репозиторийинде PR →
4. Argo/Flux колдонот → 8) Argo Rollouts canary → 9) SLO боюнча Auto-өкүм → 10) Промоушн/артка.
13) Жетилүү платформа Метрика
GitOps аркылуу релиздердин үлүшү (максаты: 100%).
жылдыруу убактысы (P95) даяр чейин, MTTR кайра.
Namespace's Pod Security жана NetworkPolicy (максаты: 100%).
HPA жана туура requests/limits менен% кызматтар.
% s 'values. schema. json 'жана бирдик тесттер.
"Кол" өзгөрүүлөрдөн улам келип чыккан окуялар (максаты: 0).
14) Киргизүү чек-тизмеси
1. Зоналар боюнча кластерлер, профилдер боюнча түйүндөрдүн бассейни; PDB/TopologySpreadConstraints.
2. Namespace-модель, ResourceQuota/LimitRange, RBAC минималдуу.
3. Pod Security (Restricted) и default-deny NetworkPolicy.
4. Gateway API/Ingress; egress-контролдоо жана NAT-бекитүү жөнөтүүчүлөргө.
5. Observability: OTel соода, RED/USE, гео синтетика; SLO-дашборд.
6. GitOps (Argo/Flux), canary/blue-green, метрика боюнча автопродукция.
7. Helm-стандарттар: түзүлүшү, схемасы. json, тесттер, SOPS/Vault, OCI реестрлери.
8. HPA/VPA, Cluster Autoscaler, чокулары үчүн warm-pool.
9. Маалыматтар менен операциялар: CSI snapshots, backaps, операторлор/managed DD.
10. үзгүлтүксүз DR/chaos-тесттер жана оюн-күн.
15) Анти-үлгүлөрү
Бир "гигант" кластер эч кандай обочолонуу жана квота.
ресурстарды чектөөсүз контейнерлер, 'latest' теги, probes жоктугу.
Secrets in 'values. yaml 'ачык түрүндө,' kubectl edit 'прод.
GitOps релиздери, жандуу кластерде манифесттерди кол менен оңдоо.
NetworkPolicy/Pod Security жок - "жалпак" тармак.
ар кандай жүк үчүн бирдиктүү жалпы HPA CPU сигнал.
ALTP-БДны "жалпы" колдонмо кластеринин ичинде оператор жана backaps жок сактоо.
16) Контекст iGaming/Fintech: практикалык ноталар
Төлөм Webhook: атайын ingress/gateway жана PSP тар egress; катуу таймауттар/ретрациялар; өзүнчө түйүн бассейни.
VIP-трафик: артыкчылыктуу жана айрым маршруттар; PDB жана топология туруктуулук үчүн spread.
Турнирлер/чокулары: warm-pool түйүндөрү + алдын ала HPA; кэш/байланыштарды жылытуу.
Отчеттуулук/CDC: ETL продукт таасир этпейт үчүн өзүнчө кластер/бассейн.
Жөнгө салуучу: өзгөрүлбөс логдор (WORM), PII токенизациясы, тармактарды сегменттөө.
Жыйынтык
Күчтүү Kubernetes платформасы "YAML үймөгү" эмес, стандарттары: изоляция, коопсуздук саясаты, башкарылуучу ресурстар, байкоо жүргүзүү жана GitOps-тартип. Helm-чарттар - жеткирүү келишими: алдын ала релиздер, тестирлөө үлгүлөрү, сырлар менен коопсуз иштөө жана жөнөкөй кайтарымдар. Бул принциптерди бекемдөө менен сиз чокуларды башынан өткөргөн кластерлерди аласыз, релиздерди тездетет жана бизнестин жана жөнгө салуучулардын талаптарына туруштук берет.