GH GambleHub

Տեխնոլոգիաներ և ենթակառուցվածքներ www.Kubernetes կլաստերներ և Helm-charts

Kubernetes կլաստերներ և Helm-charts

1) Kubernetes և Helm դերը

Kubernetes-ը դիմումների պլատֆորմի հիմքն է 'ստանդարտացնում է դասավորությունը, ցանցը, ալգորիթմը, գաղտնիքները և ինքնազարգացումը։ Helm-ը կոդավորման/ձևանմուշների ղեկավարն է, որը վերափոխում է ագրեսիվ մանիֆեստները կրկնվող տարբերակների և կախվածությունների կառավարման հետ։ Միասին նրանք տալիս են կանխատեսելի դոպլոներ, արագ արձագանքներ և ենթակառուցվածքի միասնական լեզուն։

2) Դիզայն 2019

2. 1 Տեղաբանություն և անկայունություն

Multi-AZ: wwww.l plane և աշխատանքային փամփուշտների ցանկը բաժանված են գոտիներով։ PDB/TopologySpreadConstrainment հավասարության համար։

Multregion/DR: անկախ կլաստերներ per-region; միջտարածաշրջանային զանգերը միայն «սառը» ճանապարհներով (108 և/թելեմետրիա), «տաք» (դրամապանակներ) տեղական են։

Worker-puls պրոֆիլներով '«general», «comport», «io», «spot» (ֆոնային խնդիրների համար)։ Նշանակումը nodeDirector/affinity/tainae միջոցով։

2. 2 Անունների տարածքներ և բազմաֆիլմային մոդել

Namespace-մեկուսացումը/թիմերը '«payments», «wallet», «games», «reporting»։

Resourts Delta + LimitRange: CPU/RAM հիմնական սահմանները և առավելագույն կրկնօրինակը։ պաշտպանություն «փոշեկուլներից»։

RBAC 'read-only-ի դերը լռելյայն, write-ը միայն CI/CD և on-call դերերն են։

2. 3 Ցանց

CNI-ը NetworkPolicy-ի աջակցությամբ (Calico/Cil.ru): L3/L4 namespace/label քաղաքականությունը։

Ingress 24Gateway API-ը 'անցումը «GatewayClass/Gateway/HTTPRense» մոդելի և շատ տենանտերության համար։

Black Mesh (oporation): mTSA, retry/breaker, www.ality-a.ru; ներառել կետային հուսալիություն։

3) Մոսկվան և մեծացումը

3. 1 Skeiling

HPA-ն օգտագործողի չափումների վրա (RPS/latency/queue depth), ոչ միայն CPU-ն։

MSA-ն բեռնման ֆոնային դասարանում; վաճառքում '«recommendation only» կամ HPA-ի հետ միասին տարբեր մետրերով։

Cluster Autoscaler: անհատական node produps զգայուն ծառայությունների համար։ warm-pool գագաթներին (radia/խաղեր)։

3. 2 Ռեսուրսներ և QoS

Յուրաքանչյուր Pod-ն ունի reques.ru/limits; խուսափել 'latest' և «անսահմանափակ» բեռնարկղերից։

Priorts Class: քննադատական ծառայությունները («wallet», «payments») դուրս են մղում ոչ ռիթմիկ։

PDB 'Մենք թույլ չենք տալիս, որ ձեր ոտքը "կրակենք, երբ նորարարության մեջ է։

3. 3 Թարմացումներ առանց խոչընդոտների

RollingContate c www.Unavailable = 0 կրիտիկական ճանապարհների վրա։

PodDisruptionBudget + ReadinessProbes (не `startupProbe` вместо readiness).

Surge-հզորությունը արագ ածխաջրածինների համար գագաթների ժամանակ 'զգուշությամբ։

4) Պլատֆորմի անվտանգությունը

Pod You (Baseline/Resricted) namespace մակարդակում։ արգելքը 'privileged', hostPath, root.

NetworkPolicy: wwww.ru-deny և սպիտակ ցուցակները պորտերի/label։

Seccomp/AppArmor, non-root users, read-only rootfs.

Secrets: KFC/Vast պրովայդերը (CSI), չենք պահում գաղտնիքները «values» -ում։ yaml 'բաց տեսքով։

RBAC-նվազագույն 'ծառայողական հաշիվները տալիս ենք միայն անհրաժեշտ իրավունքներ։ կարճատև են։

Admission-վերահսկումը 'OPA/Gatekeeper/Kyverno - պիտակների enforce, limits, policy խախտումներ։

5) Observability

OpenTelemetry-ը Ingress/Gateway-ի հետքն է մեջբերում BD/kash ծառայության, պարտադիր պիտակները '108, «version», «region», «partner», «api _ version»։

Լոգները 'կառուցվածքային, առանց PII/PAN; միկրոավտոբիա կենտրոնացված պահեստում։

Մետրիկները ՝ RED/USE, SLO-dashbords, burn-rate ալերտներ։

Սինթետիկ 'փորձարկումներ ճիշտ երկրներից/ASN; պարամետրի և ներքին health-winks։

6) GitOps и progressive delivery

Argo CD/Flux: ցանկալի վիճակը պահպանվում է Git-ում։ յուրաքանչյուր namespace - իր ռեպոզորիան/պանակ։

Արտեֆակտների խթանումը '«dev nostage no.» 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"։ kubernetes. io/`.

Պարտադիր մանիֆեստներ ՝ Deploy.ru/StatefullPro, Live Account, HPA (եթե կիրառելի), PDB, NetworkPolicy։

7. 2 Values ռազմավարություն

Հիմնական 'values։ yaml '- դեֆոլտներ, առանց գաղտնիքների և առանձնահատկությունների։

Overraids: "values- ը + stage '24.yaml '+ per-region ֆայլեր։

Գաղտնիքները ՝ SOPS ("values-2019։ sops. yaml ') կամ Vox-միգրացիան CSI-ի միջոցով։

Ռեսուրսների և փորձարկման պարամետրերը values-ում են «խելացի» դեֆոլտներով։

7. 3 Կախվածություն և ընդհանուր կոդ

Ընդհանուր քարտրիջների գրադարանները (probes, annotom, NetworkPolicy)։

Կախվածություն ("requirements "/" Chart. yaml ') ձայնագրեք համաձայն։ խուսափեք խորը «մատրեշներից»։

7. 4 Ձևանմուշներ և ստուգումներ

Օգտագործեք «required» և «fail» -ը _ helpers-ում։ tpl 'քննադատական արժեքների համար։

Values սխեմայի վալիդացիան '«values»։ schema. json`.

Աղյուսակի յունիտ թեստերը '«helm unittest»; ստատիկ վերլուծություն - kubeconform/kubeval։

Տեղական կարգաբերումը «helm template» + «--values» + «kubeconform» է։

7. 5 Օրինագծեր և պահեստներ

Գծապատկերի իրականացումը OCI բեռնարկղերի գրանցամատյանում։ թեգերը SemVer-ով։

Helmfile/`helmfile. d 'բազմաշերտ դասավորությունների նվագախմբի համար։

Artefakts CI: սգավորված մանիֆեստներ + www.kfile կախվածություն։

8) Օրինակ 'Deploy.ru (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-ի միջոցով (Vance/KEA) կամ SOPS-ը Git-ռեպոզորիայում (GPG/KFC բանալիներ; արգելք 'kubectl edit')։

SystigMap/Secret systeksum-ը rolling-line-ի համար։

Մի պահել PAN/PII; օգտագործել թունավորումը։

Sealed Secrets-ը պատրաստված է, բայց նախընտրելի է SOPS-ից կամ ուղիղ CSI-ից։

10) Ցանցը և պարիմետրը

GatewAY-ի համար L7-routing, canarek և blue-green; sticky-նստաշրջանները միայն այն ժամանակ, երբ անհրաժեշտ է։

MTSA-ի ծառայությունների միջև mesh/sidecar-less (Cil.ru) - ստեղնաշարի միջուկի համար։

Egress: վերահսկվող արտաքին հանգույցների ցանկը (PMS/KYC), ֆիքսված NAT-IP, թայմաուտներ և գետերի բյուջե։

11) Stateful ծառայությունները և տվյալները

OLTP-BD-ի համար օգտագործեք ամպի կառավարվող ծառայությունները կամ օպերատորները (Postgres/MySQL) առանձին կլաստերում։

PVC/CSI-ը դիպուկահարների և բեքապների քաղաքականության հետ; «PodAntiAffinity» կրկնօրինակման համար։

Հերթերի/սթրիմինգի համար 'կառավարվող լուծումներ կամ ընտրված լուծումներ։ «Ընդհանուր» պլաստիկ կլաստերի մեջ պահեք նվազագույն վիճակը։

12) CI/CD փոխակրիչ (հանրաքվե)

1. Build & test 242) SCA/lint 363) Պատկերը գրանցամատյանում (SBSA, ստորագրություն)

2. Helm-charta + «helm unittest» + kubeconform-ի գեներացիան

3. SOPS դեկրիպտը CD 246) PR-ում GitOps-reposoria-ում

4. Argo/Flux-ը օգտագործում է 388) Argo Rollouts canary 249) Avto-դատավճիռը SLO 3510) Promocia/ravatat։

13) Հարթակի հասունության մետրերը

Օրինագծերի մասնաբաժինը GitOps-ի միջոցով (նպատակը ՝ 100%)։

Ձգման ժամանակը (P95) մինչև պատրաստ, MTTR արձագանքը։

Namespace 's Pod You և NetworkPolicy (նպատակը ՝ 100%)։

ծառայությունների տոկոսը HPA-ի և ճիշտ reques.ru/limits-ի հետ։

գծապատկերի% -ը 'values։ schema. json 'և unit թեստեր։

«Ձեռքով» փոփոխությունների պատճառած միջադեպերը (նպատակը ՝ 0)։

14) Ներդրման չեկի ցուցակ

1. Ստանդարտը գոտիներով, հանգույցների փամփուշտը պրոֆիլներով։ PDB/TopologySpreadConstraints.

2. Namespace-մոդելը, Resourts Delta/LimitRange, RBAC նվազագույն։

3. Pod Security (Restricted) и default-deny NetworkPolicy.

4. Gateway API/Ingress; egress-վերահսկողությունը և NAT-ամրագրումը պրովայդերների համար։

5. Observability: OTel treiss, RED/USE, գեո սինթեզիկա; SLO-dashbords։

6. GitOps (Argo/Flux), canary/blue-green, metric։

7. Helm-ստանդարտները 'կառուցվածք, շեմա։ Ջսոն, թեստեր, SOPS/Vox, OCI-գրանցումներ։

8. HPA/SNA, Cluster Autoscaler, warm-pool գագաթներին։

9. Վիրահատությունները տվյալների հետ 'CSI դիպուկահարներ, bakaps, օպերատորներ/wwww.ed BD։

10. DR/chaos թեստեր և game-days։

15) Anti-patterna

Մեկ «հսկա» կլաստեր ամեն ինչի համար առանց մեկուսացման և քվոտաների։

Բեռնարկղերը առանց ռեսուրսների սահմանափակումների, «latest» թեգերը, probes բացակայությունը։

Գաղտնիքները 'values-ում։ yaml 'բաց տեսքով, «kubectl edit» վաճառքում։

Ալգորիթմները GitOps-ի կողքով, մանիֆեստների ձեռքով ուղղությունները կենդանի կլաստերի վրա։

NetworkPolicy/Pod You-ի բացակայությունը «հարթ» ցանցն է։

Մեկ ընդհանուր HPA ազդանշան CPU-ի համար տարբեր բեռների համար։

OLTP-BD-ի պահպանումը «ընդհանուր» ռուսական ծրագրի ներսում առանց օպերատորի և բեքապների։

16) iGaming/fintech համատեքստը 'գործնական նոտաներ

Հիբրիդային webhuks: ingress/gateway և նեղ egress PSA; խիստ թայմաուտներ/ռեգրաններ; հանգույցների առանձին փամփուշտը։

VIP-2019 'գերակայություն և առանձին երթուղիներ։ PDB և topology spread կայունության համար։

Դելտրա/պիկի 'warm-pool հանգույցներ + նախատիպային HPA; տաքացնելով։

Հաշվետվություններ/CDC 'առանձին կլաստեր/փամփուշտներ, որպեսզի ETL-ը չազդի անցքի վրա։

Կարգավորիչ 'անփոփոխ լոգներ (WORM), PII-ի թունավորումը, ցանցերի հատվածը։

Արդյունքը

Ուժեղ Kubernetes-պլատֆորմը ոչ թե «YAML» է, այլ ստանդարտները 'մեկուսացում, անվտանգության քաղաքականություն, կառավարվող ռեսուրսներ, դիտարկումներ և GitOps-կարգապահություն։ Helm-charts-ը ձեր մատակարարման պայմանագիրն է 'կանխատեսելի օրինագծեր, թեստավորված ձևանմուշներ, գաղտնիքների հետ անվտանգ աշխատանք և պարզ արձագանքներ։ Այս սկզբունքները ամրացնելով ՝ դուք կստանաք պիկի զգացում ունեցող ապրանքներ, արագացնում են օրինագծերը և դիմանում բիզնեսի և կարգավորիչների պահանջներին։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Telegram
@Gamble_GC
Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։