Технологиялар және инфрақұрылым → Kubernetes-кластерлер және Helm-чарты
Kubernetes-кластерлер және Helm-чарты
1) Kubernetes және Helm рөлі
Kubernetes - қосымшалар платформасының негізі: домалатуды, желіні, конфигаларды, құпияларды және өзін-өзі қалпына келтіруді стандарттайды. Helm - декларативті манифесттерді нұсқалар мен тәуелділіктерді басқаратын қайталанатын релиздерге айналдыратын пакеттер/үлгілер менеджері. Олар бірге болжауға болатын деплояларды, жылдам қайтарымдарды және инфрақұрылымның бірыңғай тілін береді.
2) Кластер дизайны
2. 1 Топология және істен шығуға төзімділік
Multi-AZ: control plane және жұмыс пулдарының тораптары аймақтар бойынша бөлінген; Біркелкілік үшін PDB/TopologySpreadConstraints.
Мультирегион/DR: тәуелсіз per-region кластерлері; өңіраралық шақырулар - тек қана «суық» жолдар бойынша (каталогтар/телеметрия), «ыстық» (әмиян) - жергілікті.
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 Желі
NetworkPolicy (Calico/Cilium) қолдауымен CNI: namespace/label саясатын L3/L4.
Ingress → Gateway API: 'GatewayClass/Gateway/HTTPRoute' үлгісіне өту.
Service Mesh (қосымша): mTLS, retry/breaker, locality-aware; сервис аралық сенімділік үшін нүктелі қосу.
3) Сенімділік және масштабтау
3. 1 Скейлинг
HPA тек CPU емес, пайдаланушы өлшемдері бойынша (RPS/latency/queue depth).
Жүктемелердің фондық класында 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) Платформаның қауіпсіздігі
namespace деңгейіндегі Pod Security (Baseline/Restricted); тыйым салу 'privileged', hostPath, root.
NetworkPolicy: default-deny және/label порттары бойынша ақ тізімдер.
Seccomp/AppArmor, non-root users, read-only rootfs.
Secrets: KMS/Vault провайдері (CSI), құпияларды 'values-те сақтамаймыз. yaml 'ашық күйінде.
RBAC-минимум: сервистік аккаунттарға қажетті құқықтарды ғана береміз; қысқа өмір сүретін токендер.
Admission-бақылау: OPA/Gatekeeper/Kyverno - лейблдердің, лимиттердің, policy-бұзушылықтардың enforce.
5) Observability
OpenTelemetry: Ingress/Gateway → сервис → БД/кэш, міндетті 'service', 'version', 'region', 'partner', 'api _ version' лейблдері.
Логи: құрылымдалған, PII/PAN-сыз; орталықтандырылған қоймаға бағыттау.
Өлшемдер: RED/USE, SLO-дашбордтар, burn-rate алерта.
Синтетика: қажетті елдерден алынған сынамалар/ASN; периметрі және ішкі health-checks.
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' в '_ helpers пайдаланыңыз. сыни мәндер үшін tpl '.
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) Құпиялар мен конфигурациялар
Secrets CSI (Vault/KMS) немесе SOPS арқылы Git-репозиторийде (GPG/KMS кілттері; тыйым салу 'kubectl edit').
rolling-reliz триггері үшін ConfigMap/Secret checksum аңдатпалары.
PAN/PII сақталмайды; токенизацияны пайдалану.
Sealed Secrets рұқсат етіледі, бірақ SOPS немесе тікелей CSI артықшылықты.
10) Желі және периметр
L7-роутинг, канарейка және blue-green үшін Gateway API; sticky-сессиялар қажет болған кезде ғана.
mesh/sidecar-less (Cilium) арқылы сервистер арасындағы mTLS - төлем ядросы үшін нүктелі.
Egress: сыртқы тораптардың бақыланатын тізімі (PSP/KYC), тіркелген NAT-IP, таймауттар және ретрациялардың бюджеті.
11) Stateful-сервистер және деректер
OLTP-БД үшін жеке кластерлерде басқарылатын бұлт сервистерін немесе операторларды (Postgres/MySQL) пайдаланыңыз.
Snapshot және бэкап саясаты бар PVC/CSI; репликалар үшін 'PodAntiAffinity'.
Кезектер/стриминг үшін - басқарылатын шешімдер немесе бөлінген кластерлер; «жалпы» қосымшалық кластерде ең аз жағдайды сақтау.
12) CI/CD конвейері (референс)
1. Build & test → 2) SCA/линт → 3) Тіркелімдегі сурет (SBOM, қолтаңба) →
2. Helm-чарттың генерациясы + 'helm unittest' + kubeconform →
3. SOPS-декрипт рантаймада CD → 6) PR GitOps-репозиторийде →
4. Argo/Flux қолданады → 8) Argo Rollouts canary → 9) SLO бойынша авто-үкім → 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 снапшоттар, бэкаптар, операторлар/managed ДБ.
10. Тұрақты DR/chaos-тесттер және game-days.
15) Қарсы үлгілер
Оқшаулаусыз және квотасыз барлығы үшін бір «алпауыт» кластер.
Ресурстары шектелмеген контейнерлер, 'latest' тегтері, probes жоқ.
'values құпиялары. yaml 'ашық күйінде,' kubectl edit 'сынамада.
GitOps бағдарламасынан тыс релиздер, тірі кластердегі манифесттерді қолмен түзету.
NetworkPolicy/Pod Security болмауы - «жазық» желі.
Әртүрлі жүктемелер үшін CPU бойынша бірыңғай жалпы HPA-сигналы.
OLTP-БД-ны оператор мен бэкапсыз қосымшаның «жалпы» кластерінің ішінде сақтау.
16) iGaming/финтех контекст: практикалық ноталар
Төлем вебхурлары: бөлінген ingress/gateway және PSP тар egress; қатаң таймауттар/ретраилер; жеке тораптар пулы.
VIP-трафик: басымдық және жекелеген бағыттар; Тұрақтылық үшін PDB және topology spread.
Турнирлер/шыңдар: warm-pool түйіндері + болжамды HPA; кэштер/қосылыстарды жылыту.
Есеп/CDC: ETL өнімге әсер етпеуі үшін жеке кластер/пул.
Реттеуіш: өзгермейтін логтар (WORM), PII токенизациясы, желілерді сегменттеу.
Жиынтығы
Қуатты Kubernetes платформасы - бұл «YAML үйіндісі» емес, стандарттар: оқшаулау, қауіпсіздік саясаты, басқарылатын ресурстар, бақылау және GitOps-тәртіп. Helm-чарты - сіздің жеткізу келісімшартыңыз: болжамды релиздер, тестілеу үлгілері, құпиялармен қауіпсіз жұмыс және қарапайым қайтарымдар. Осы қағидаларды бекіте отырып, сіз ең жоғары шыңдарды бастан кешіп, шығарылымдарды жеделдететін және бизнес пен реттеушілердің талаптарын сақтайтын кластерлерді аласыз.