GH GambleHub

Кубернетҳо: Ҷадвалҳои кластерҳо ва Ҳелм

Кубернетҳо: Ҷадвалҳои кластерҳо ва Ҳелм

1) Меъмории кластер - Намуди боло

Ҳавопаймои назоратӣ: 'kube-apiserver', 'etcd', 'kube-scheduler', 'kube-controller-manager', (қисмат дар абрҳои идорашаванда пинҳон карда шудааст).
Коргар: 'kubelet', вақти кории CRI (контейнер/CRI-O), плагини CNI, kube-proxy/ebpf-proxy.

Шабакаи intracluster: Pod-to-Pod, Service-VIP/Cluster

Нигоҳдорӣ: драйверҳои CSI, таъминоти динамикии PVC → PV (Storage

Маҳдудиятҳои нокомӣ: гиреҳ/AZ/минтақа. Нусхабардориро аз рӯи минтақа ҷойгир кунед (Topology

Нақшҳои маъмулӣ

Фармони платформа: кластерҳо, CNI/CSI/Ingress, сиёсат ва GIT-ро эҷод/такмил медиҳад.
Гурӯҳҳои маҳсулот: диаграммаҳо/варақаҳои амонатӣ, сиёсати амният ва захираҳоро риоя кунед.

2) Давраи кластерӣ

Офариниш: Kops, kubeadm, Rancher, EKS/AKS/GKE. Дарҳол аутентификатсия ва аудити OIDC-ро фаъол созед.
Такмилдиҳӣ: версияҳои ночиз дар навбати худ (ҳавопаймои назоратӣ → гиреҳҳо), ки аз ҷониби макс дастнорас идора карда мешаванд, санҷишҳо дар саҳна.
Иловаҳо (ҳама тавассути Helm/Gitops): CNI (Calico/Cilium), ронандаи CSI, нозири Ingress (NGINX/Gateway API/Contour/Traefik), Metrics-Server, Cluster-Autoscaler, гиреҳ-DNS маҳаллӣ, воридшавӣ/ченакҳо/пайгирӣ.
Нусхабардорӣ: etcd сурат (агар худидоракунанда бошад), Velero барои фазои ном/PVC.

3) Шабакаҳо, хидматҳо ва воридшавӣ

CNI: Calico (Network .Policy), Cilium (eBPF/servicemesh-fichi).

Хизматрасонӣ: 'Cluster

Ingress/Gateway API: масири L7, TLS, таърихи меъёри лимит/WAF дар периметр.
Сиёсати шабака: рад кардан-ҳама + ба таври возеҳ бо фазои ном/нишона бо нобаёнӣ иҷозат дода мешавад.

Хизматрасонии бефосила ('claster

4) Нигоҳдорӣ (CSI) ва давлатҳо

Нигаҳдории синф: 'reclaim

StatefuL Set: Номҳо/ҷилдҳои устувор ('Volume

Бисёр хонед: файли тақсимшударо (EFS/Filestore) бодиққат истифода баред - таъхирро арзёбӣ кунед.

Суратҳо: Нусхаҳои эҳтиётии 'Volume

5) Бисёрфарҳангӣ ва сиёсат

Номҳо аз рӯи маҳсулот/муҳит.
RBAC: нақшҳои ҳадди ақал, ҳисобҳои алоҳидаи хидматӣ, 'Нақш '/' Рол Биндинг' ба ҷои 'Кластер Рол'.
PSA (Pod Security Admission): 'ҳолати ибтидоӣ '/' маҳдуд' (ивазкунии PSP).

Захира/Квота/Маҳдудият: потолки CPU/Хотира/PVC/Боркунӣ

OPA Gatekeeper/Kyverno: сиёсати қабул (масалан, манъкунӣ ': охирин', талабот 'захираҳо', 'хонед Танҳо Рут' Системаи ').
Тасвир/webhooks: санҷиши имзои тасвир (cosign/policy-controller).

6) Мушоҳида ва амалиёт

Нишондиҳандаҳо: Стек Прометей, kube-state-metrics, содиркунандагони гиреҳ.
Сабтҳо: Бит/Вектор Fluent/Объект/ES/Open-Search, гардиш дар гиреҳҳо.
Роҳҳо: Коллектори Open-Telemetry.
Панелҳои SLO: Модели RED оид ба воридшавӣ ва хидматҳои асосӣ.
Autoscale: HPA (аз рӯи ченакҳои барнома), VPA барои замина, Кластер-Автоскалер барои гиреҳҳо.

7) Намунаҳои намоён (варақи фиреб)

Ҷойгиркунӣ:
yaml apiVersion: apps/v1 kind: Deployment metadata: { name: api, labels: { app: api } }
spec:
replicas: 3 strategy: { type: RollingUpdate, rollingUpdate: { maxUnavailable: 0, maxSurge: 1 } }
selector: { matchLabels: { app: api } }
template:
metadata:
labels: { app: api }
spec:
serviceAccountName: api-sa securityContext: { runAsNonRoot: true, fsGroup: 2000 }
containers:
- name: api image: registry. example. com/api:1. 2. 3 ports: [{ containerPort: 8080 }]
resources: { requests: { cpu: "200m", memory: "256Mi" }, limits: { cpu: "1", memory: "512Mi" } }
readinessProbe: { httpGet: { path: /healthz, port: 8080 }, periodSeconds: 5 }
livenessProbe: { httpGet: { path: /livez,  port: 8080 }, initialDelaySeconds: 20 }
StatefielD Set (порча):
yaml apiVersion: apps/v1 kind: StatefulSet metadata: { name: db }
spec:
serviceName: db replicas: 3 podManagementPolicy: Parallel selector: { matchLabels: { app: db } }
template:
metadata: { labels: { app: db } }
spec:
containers:
- name: db image: postgres:16-alpine volumeMounts: [{ name: data, mountPath: /var/lib/postgresql/data }]
volumeClaimTemplates:
- metadata: { name: data }
spec:
accessModes: ["ReadWriteOnce"]
resources: { requests: { storage: 100Gi } }
storageClassName: fast-ssd

PDB (Pod

yaml apiVersion: policy/v1 kind: PodDisruptionBudget metadata: { name: api-pdb }
spec:
minAvailable: 2 selector: { matchLabels: { app: api } }
Ingress (Nginx, мухтасар):
yaml apiVersion: networking. k8s. io/v1 kind: Ingress metadata:
name: api annotations:
nginx. ingress. kubernetes. io/proxy-read-timeout: "30"
spec:
tls: [{ hosts: ["api. example. com"], secretName: api-tls }]
rules:
- host: api. example. com http:
paths:
- path: /
pathType: Prefix backend: { service: { name: api, port: { number: 80 } } }

8) Ҳелм v3 - асосҳо ва сохтор

Диаграмма = қолабҳо + арзишҳо + метамаълумот.


mychart/
Chart. yaml     # name, version (semver), type (application/library), dependencies values. yaml # default values. schema. json # (recommended) validation values templates/# .yaml. gotmpl (Deployment, Service, Ingress, …)
templates/tests/  # helm tests (smoke)
charts/# local dependencies (or OCI dependencies)
Диаграмма. yaml (мисол):
yaml apiVersion: v2 name: api description: API service type: application version: 1. 4. 0 # chart version (semver)
appVersion: "1. 2. 3" # dependencies application version:
- name: redis version: 17. x.x repository: "oci://registry. example. com/charts"

9) Шаблонҳои чарх - Амалияҳо

Дар '_ ёрирасон ёрирасонро истифода баред. tpl 'барои номҳо/тамғакоғазҳо/эзоҳҳо.
'Захираҳо', 'Context', 'омодагӣ/зиндагӣ' -ро дар ҳама ҷо муайян кунед.
Эҷод кардани тамғакоғазҳо аз рӯи схемаи стандартӣ ('app. kubernetes. io/').
Хусусиятҳоро тавассути 'values' ихтиёрӣ созед (ingress/hpa/pdb/servicemonitor).
Дохил кардан 'values. схема. json '- қатъ аз конфигуратсияҳои нодуруст.
Барои маълумоти ҳассос - Асрори операторони беруна (Сирри беруна, SOPS) ва арзишҳоро нигоҳ намедоранд.

Намунаи '_ ёрирасон. tpl '(порча):
gotmpl
{{- define "api. fullname" -}}
{{- printf "%s-%s".Chart. Name. Release. Name      trunc 63      trimSuffix "-" -}}
{{- end -}}
Ҷойгиркунӣ. tpl (порча):
gotmpl apiVersion: apps/v1 kind: Deployment metadata:
name: {{ include "api. fullname". }}
labels: {{- include "api. labels". nindent 4 }}
spec:
replicas: {{.Values. replicaCount }}
strategy:
rollingUpdate:
maxSurge: 1 maxUnavailable: 0 selector:
matchLabels: {{- include "api. selectorLabels". nindent 6 }}
template:
metadata:
labels: {{- include "api. selectorLabels". nindent 8 }}
spec:
serviceAccountName: {{ include "api. serviceAccountName". }}
securityContext: {{- toYaml. Values. podSecurityContext      nindent 8 }}
containers:
- name: {{.Chart. Name }}
image: "{{.Values. image. repository }}:{{.Values. image. tag }}"
imagePullPolicy: IfNotPresent ports: [{ containerPort: {{.Values. service. port }} }]
resources: {{- toYaml. Values. resources      nindent 10 }}
envFrom:
- secretRef: { name: {{.Values. secretsRef }} }

10) Вобастагӣ, анборҳо ва OCI

Helm v3 регистрҳои OCI-ро дастгирӣ мекунад: 'oci ://registry/org/charts'.
Версияҳои вобастагии қулф ('ī 1. 2. 0`, `~1. 2 ') ва "бунёди вобастагии чарх" -ро иҷро кунед.
Диаграмма (мас) -ро имзо кунед, артефактҳоро дар анбори артефактҳои CI нигоҳ доред.
Диаграммаҳои китобхона: қолабҳои умумӣ (ingress/servicemonitor) барои истифодаи дубора.

11) Қалмоқҳо, CRD ва тартиби амалиёт

Қалмоқҳо: 'пешакӣ насб кардан', 'пас аз насб кардан', 'пеш аз навсозӣ', 'пас аз навсозӣ', 'озмоиш'. Илова кардани сиёсатҳо ('пеш аз эҷод кардан', 'қалмоқе-муваффақ').
CRD: дар 'crds/' гузоред (ба қолабҳо насб кунед), аз навсозиҳои CRD дар магас канорагирӣ кунед - алоҳида муҳоҷират кунед.
Муҳоҷирати пойгоҳи додаҳо/оғозёбӣ - қалмоқе бо кор ва номутобиқатӣ ва танаффус.

12) Санҷиши диаграмма ва CI

'helm lint' + тасдиқи схема.
Helm unittest (воҳиди), санҷиши диаграмма (ct) - васлкунӣ/насб дар намуди/minikube дар CI.
Санҷишҳои лаҳзаи қолибҳо ('қолаби чарх' → бо қолаб муқоиса кунед).
Санҷиши дуд 'озмоиши чарх' (баланд бардоштани 'санҷишҳои Pod' with).

13) Гитопҳо (Argo CD/Flux)

Манбаи ҳақиқат анбор аст. Диаграмма ҳамчун Helmrelease/Helmchart (Flux) ё Application (Argo) нигоҳ дошта мешавад.
Сиёсати ғалтак: худкор ҳамоҳангсозӣ бо prune/худтанзимкунӣ, статусҳо ва санҷиши саломатӣ.
Версияҳои таблиғотӣ: tag-bots/semver-range, PR-flow.
Репоро ба барномаҳо (диаграммаҳо) ва env тақсим кунед (аз ҳад зиёд/арзишҳо).
Идоракунии махфӣ: SOPS (синну сол/KMS), Асрори беруна.

14) Бехатарӣ: ҳадди аққал талаб карда мешавад

PSA маҳдуд аст: ҳеҷ гуна имтиёзҳо, ҳеҷ гуна Host-Path, имкониятҳои маҳдуд, решаҳои танҳо барои хондан.
Policy Image - танҳо тасвирҳои имзошуда/боваринок.
Сиёсати шабака: "бо нобаёнӣ баста шудааст".
RBAC: ҳисоби хидматрасонии ҳар як барнома, 'Нақш '/' Нақши ҳатмӣ' дар фазои ном.
Назорати қабул: Қоидаҳои дарвоза/Киверно (захираҳо/маҳдудиятҳо, тамғакоғазҳо, охирин нестанд).
Асрҳо: SOPS/Сирри беруна; сирри худро ба арзишҳо нагузоред/Git оддӣ.

15) Анти-намунаҳо

': охирин' дар диаграммаҳо ва тасвирҳо; набудани 'values. схема. json '.
Як диаграммаи азим "барои ҳама чиз" ба ҷои модулӣ.
CRD-ҳо бо қолибҳо дар 'қолабҳо/' → бетартибӣ дар навсозӣ нав карда мешаванд.
Номҳои сахт/порт/фазои ном дар қолибҳо.
Набудани захираҳо/маҳдудиятҳо ва намунаҳо → кашолакунӣ ва ноустуворӣ.
Бо дренаж/такмилдиҳӣ ҳеҷ гуна PDB → сифр хомӯш кардан имконнопазир аст.
Асрҳо дар Git бе рамзгузорӣ; бидуни сиёсати санҷиш зоҳир мешавад.

16) Рӯйхати санҷиши амалисозӣ (0-45 рӯз)

0-10 рӯз

Сохтани скелети асосӣ бо '_ ёрирасон. tpl ', тамғакоғазҳо, зондҳо, захираҳо, PDB/Ingress ихтиёрӣ.

Включить ПСА-ро махдуд кард, Шабакахо инкор мекунанд-хама, Resource

Конфигуратсияи Gitops (Argo/Flux), феҳристи хусусӣ, имзои тасвир/диаграмма.

11-25 рӯз

Ҷадвалро ба модулҳо/вобастагӣ тақсим кунед, илова кунед. схема. json ', озмоишҳо (' helm lint ', воҳиди, ct).
Пайвастшавиро пайваст кунед (Service. Monitor/Pod- Monitor), агентҳои журнал, OT-el.
Раванди такмилдиҳиро ворид кунед: марҳиласозӣ → canary → prod, муҳоҷирати қалмоқӣ бо бозгашт.

26-45 рӯз

Автоматикунонии навсозии вобастагӣ (bots/semver-range + PR).
Сиёсати Gatekeeper/Kyverno ва ҳисоботҳои сиёсатро ба CI илова кунед.
Ҳуҷҷатгузории дафтарчаи такмилдиҳии кластер, тартиботи DR (тасвири Velero/etcd).

17) Нишондиҳандаҳои камолот

100% барномаҳо тавассути дастӣ Helm/Gitops тамом мешаванд.
Ҳамаи диаграммаҳо 'values доранд. схема. json ', озмоишҳо, имзоҳо ва версияҳои вобастагӣ.
PSA маҳдуд/Network-Policy дар ҳама фазои ном фаъол аст.
PDB ва HPA дар ҳама хадамоти муҳим мавҷуданд.
SOPS/Сирри беруна, сиёсати охирин, имзои тасвир нест.
Такмили кластер ва диаграмма бидуни истироҳат (канарӣ/кабуд-сабз) анҷом дода мешавад, санҷишҳои барқароркунӣ мунтазам мебошанд.

18) Хулоса

Бунёди мустаҳками Кубернетес = меъмории мустаҳками кластер + сиёсатҳои қатъӣ + диаграммаҳои сифати саноатӣ аз ҷониби Git Қолибҳоро стандартисозӣ кунед, муҳити PSA/Network/Policy/RBAC-ро ҳифз кунед, арзишҳоро тасдиқ кунед ва санҷишҳо, имзо ва таблиғотро автоматӣ кунед. Он гоҳ навсозӣ ва релизҳо пешгӯишаванда мешаванд ва платформа барои гурӯҳҳои маҳсулот устувор ва қулай хоҳад буд.

Contact

Тамос гиред

Барои саволҳо е дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Telegram
@Gamble_GC
Оғози интегратсия

Email — муҳим аст. Telegram е WhatsApp — ихтиерӣ.

Номи шумо ихтиерӣ
Email ихтиерӣ
Мавзӯъ ихтиерӣ
Паем ихтиерӣ
Telegram ихтиерӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиерӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.