GH GambleHub

تکنولوژی و زیرساخت → خوشه Kubernetes و نمودار هلم

خوشه های Kubernetes و نمودار هلم

1) نقش Kubernetes و هلم

Kubernetes اساس پلت فرم برنامه است: آن را استاندارد نورد، شبکه، پیکربندی، اسرار و خود شفا. Helm یک مدیر بسته/قالب است که اعلامیه ها را به نسخه های قابل تکرار با کنترل نسخه و وابستگی ها تبدیل می کند. آنها با هم برنامه های قابل پیش بینی، بازگشت سریع و یک زبان زیرساخت واحد را ارائه می دهند.

2) طراحی خوشه

2. 1 توپولوژی و تحمل خطا

چند AZ: کنترل هواپیما و گره استخر کارگر منطقه بندی می شوند. PDB/TopologySpreadConstraints برای یکنواختی.
چند منطقه ای/DR: خوشه های مستقل در هر منطقه ؛ تماس های بین منطقه ای - فقط در مسیرهای «سرد» (دایرکتوری ها/تله متری)، «گرم» (کیف پول) - به صورت محلی.
استخر کارگر توسط مشخصات: «عمومی»، «محاسبه»، «IO»، «نقطه» (برای وظایف پس زمینه). انتساب از طریق nodeSelector/affinity/tains.

2. 2 فضای نام و مدل چند کاربر

جداسازی فضای نام توسط دامنه ها/دستورات: «پرداخت»، «کیف پول»، «بازی ها»، «گزارش».
ResourceQuota + LimitRange: محدودیت CPU/RAM پایه و حداکثر کپی ؛ حفاظت خوشه ای در برابر «جاروبرقی».
RBAC: نقش فقط خواندنی به طور پیش فرض، نوشتن - فقط CI/CD و در تماس.

2. 3 شبکه

CNI با پشتیبانی NetworkPolicy (Calico/Cilium): L3/L4 سیاست توسط فضای نام/برچسب.
Ingress → Gateway API: تغییر به مدل 'GatewayClass/Gateway/HTTPRoute' برای قناری ها و چند اجاره ای.
مش سرویس (اختیاری): mTLS، تکرار/قطع کننده، آگاهی از محل ؛ روشن کردن نقطه برای قابلیت اطمینان بین سرویس.

3) قابلیت اطمینان و مقیاس پذیری

3. 1 پوسته پوسته شدن

HPA بر اساس معیارهای کاربر (عمق RPS/latency/queue)، نه فقط CPU.
VPA در کلاس بار پس زمینه ؛ در محصول - «فقط توصیه» یا همراه با HPA در معیارهای مختلف.
خوشه Autoscaler: گروه گره جداگانه برای خدمات حساس ؛ استخر گرم به میدارد (مسابقات/مسابقات).

3. ۲ منابع و QoS

هر Pod دارای درخواست/محدودیت است. اجتناب از «: آخرین» و «نامحدود» ظروف.
PriorityClass: خدمات حیاتی («کیف پول»، «پرداخت») جایگزین موارد غیر بحرانی می شوند.
PDB: هنگام به روز رسانی گره ها اجازه ندهید خوشه «خود را در پا شلیک کنید».

3. 3 ارتقاء بدون خرابی

RollingUpdate با maxUnavailable = 0 در مسیرهای بحرانی.
PodDisruptionBudget + ReadinessProbes (не 'startupProbe' آمادگی вместо).
ظرفیت افزایش برای انتشار سریع در طول قله - با احتیاط.

4) امنیت پلت فرم

Pod Security (Baseline/Restricted) در سطح فضای نام ؛ 'prorieged' disalling, hostPath, root.
NetworkPolicy: به طور پیش فرض انکار و لیست سفید توسط پورت/برچسب.
Seccomp/AppArmor، کاربران غیر ریشه، rootfs فقط خواندنی.
اسرار: ارائه دهنده KMS/Vault (CSI)، اسرار را در ارزش ها حفظ نمی کند. يام به شکل باز.

حداقل RBAC: ما حساب های خدمات را فقط حقوق لازم را صادر می کنیم ؛ نشانه های کوتاه مدت

کنترل پذیرش: OPA/Gatekeeper/Kyverno - اجرای برچسب ها، محدودیت ها، نقض سیاست ها.

5) قابلیت مشاهده

OpenTelemetry: ردیابی از Ingress/Gateway → سرویس → پایگاه داده/کش، برچسب های اجباری 'سرویس'، 'نسخه'، 'منطقه'، 'شریک'، 'api _ version'.

سیاهههای مربوط: ساختار، بدون PII/PAN ؛ مسیریابی به ذخیره سازی متمرکز

معیارها: RED/USE، داشبورد SLO، هشدار سوختگی.
مصنوعی: نمونه هایی از کشورهای راست/ASN ؛ محیط و بررسی سلامت داخلی.

6) GitOps и تحویل پیشرفته

Argo CD/Flux: حالت مورد نظر در Git ذخیره می شود ؛ هر فضای نام دارای مخزن/پوشه خاص خود است.
ارتقاء مصنوعات: «dev → stage → prod» از طریق PR، نه «kubectl apply».
قناری/آبی سبز: Argo Rollouts/دروازه API ؛ معیارهای موفقیت - P95/P99، نرخ خطا، SLI کسب و کار (CR سپرده).
رول بک: در هلم/آرگو - با دکمه ؛ در نمودارها - نسخه ها ثابت شده اند.

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 است. نام و نام خانوادگی. "}}" + برچسب "app. kubernetes. IO/'.
  • تظاهرات مورد نیاز: استقرار/StatefulSet، سرویس، ServiceAccount، HPA (در صورت وجود)، PDB، NetworkPolicy.

7. 2 ارزش ها استراتژی

ارزش های اساسی yaml '- پیش فرض، بدون اسرار و محیط زیست خاص.
لغو: "values- {مرحله 'prod} .yaml' + پرونده های هر منطقه.
رازها: SOPS (ارزشها) سورتمه ها yaml ') یا تزریق خرک از طریق CSI.
پارامترهای منابع و نمونه ها - در مقادیر با پیش فرض «معقول».

7. 3 وابستگی ها و کد مشترک

کتابخانه نمودار مشترک برای الگوهای (پروب، حاشیه نویسی، NetworkPolicy).
وابستگی ها ("الزامات "/" نمودار. yaml ') ثابت توسط نسخه ؛ اجتناب از «عروسک های تودرتو» عمیق.

7. 4 قالب ها و چک ها

از «required» و «fail» در _ helpers استفاده کنید. TPL 'برای مقادیر بحرانی.
اعتبارسنجی طرح ارزشها - "Values scheme. طرح. جی سون...
تست های نمودار واحد - 'helm unittest' ؛ تجزیه و تحلیل استاتیک - kubeconform/kubeval.
اشکال زدایی محلی - 'helm template' + '-- values' + 'kubeconform'.

7. 5 انتشار و ذخیره سازی

نمودار را به رجیسترهای ظرف OCI فشار دهید. برچسب ها توسط SemVer.
Helmfile/' helmfile. d 'برای ارکستراسیون قرقره چند نمودار.
مصنوعات CI: مانیفست های تولید شده + وابستگی های lockfile.

8) مثال: استقرار (قطعه قالب هلم)

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 (Vault/KMS) یا SOPS در مخزن Git (کلیدهای GPG/KMS ؛ 'kubectl edit' ممنوع است.
حاشیه نویسی ConfigMap/Secret checksum برای ماشه انتشار نورد.

PAN/PII را ذخیره نکنید استفاده از نشانه گذاری

اسرار مهر و موم شده مجاز است، اما SOPS یا CSI مستقیم ترجیح داده می شود.

10) شبکه و محیط

API دروازه برای مسیریابی L7، قناری و آبی سبز ؛ جلسات فقط در صورت لزوم

mTLS بین خدمات از طریق مش/sidecar-less (Cilium) - نقطه برای هسته پرداخت.
خروج: لیست کنترل شده از گره های خارجی (PSP/KYC)، NAT-IP ثابت، زمان بندی و بودجه بازپرداخت.

11) خدمات و داده های دولتی

برای پایگاه داده های OLTP، از سرویس های ابر مدیریت شده یا اپراتورها (Postgres/MySQL) در خوشه های جداگانه استفاده کنید.
PVC/CSI با عکس های فوری و سیاست پشتیبان گیری ؛ 'PodAntiAffinity' برای کپی.
برای صف/جریان - راه حل های مدیریت شده یا خوشه های اختصاصی ؛ در یک خوشه برنامه «مشترک»، حداقل حالت را حفظ کنید.

12) نوار نقاله CI/CD (مرجع)

1. ساخت و تست → 2) SCA/lint → 3) تصویر در ثبت نام (SBOM، امضا) →

2. Helm chart generation + 'helm unittest' + kubeconform →

3. رمزگشایی SOPS در CD → 6) زمان اجرای PR در مخزن GitOps →

4. آرگو/شار اعمال → 8) آرگو رول قناری → 9) SLO خودکار حکم → 10) ارتقاء/رول بک.

13) معیارهای بلوغ پلت فرم

سهم انتشار از طریق GitOps (هدف: 100٪).
زمان نورد (P95) تا آماده، بازگشت MTTR.
پوشش Namespace Pod Security و NetworkPolicy (هدف: 100٪).
٪ از خدمات با HPA و درخواست/محدودیت های صحیح.
% نمودار با "مقادیر. طرح. تست واحد json 'and.
رویدادهای ناشی از تغییرات «دستی» (هدف: 0).

14) چک لیست پیاده سازی

1. خوشه های مناطق، مجموعه ای از گره ها توسط پروفایل ها ؛ PDB/TopologySpreadConstraints.
2. مدل فضای نام، ResourceQuota/LimitRange، حداقل RBAC.
3. Pod Security (Restricted) и NetworkPolicy را به طور پیش فرض انکار می کند.
4. دروازه API/ورود ؛ کنترل خروج و تثبیت NAT به ارائه دهندگان.

5. قابلیت مشاهده: مسیرهای OTel، RED/USE، زمین شناسی مصنوعی ؛ داشبورد SLO

6. GitOps (Argo/Flux), canary/blue-green, auto-promotion by metrics.
7. استانداردهای هلم: ساختار، طرح. json، تستها، SOPS/Vault، ثبّاتهای OCI.
8. HPA/VPA، خوشه خودکار، استخر گرم به قله.
9. عملیات داده: عکس های فوری CSI، پشتیبان گیری ،/مدیریت اپراتورهای پایگاه داده.
10. به طور منظم DR/آزمون هرج و مرج و روز بازی.

15) ضد الگوهای

یک خوشه «غول پیکر» برای همه چیز بدون انزوا و سهمیه.
ظروف بدون محدودیت منابع، «آخرین» برچسب ها، بدون پروب.
رازها در ارزش ها yaml 'در متن روشن،' ویرایش kubectl 'در تولید.
GitOps گذشته را منتشر می کند، ویرایش های دستی در یک خوشه زنده انجام می شود.
عدم وجود NetworkPolicy/Pod Security - شبکه «مسطح».
یک سیگنال HPA مشترک در سراسر CPU برای انواع مختلف بارها.
ذخیره سازی پایگاه داده های OLTP در یک خوشه برنامه «مشترک» بدون اپراتور و پشتیبان گیری.

16) زمینه iGaming/fintech: یادداشت های عملی

وب سایت های پرداخت: ورودی/دروازه اختصاصی و خروج باریک به PSP ؛ زمان بندی دقیق/بازپرداخت ؛ استخر میزبان فردی

ترافیک VIP: اولویت بندی و مسیرهای فردی ؛ PDB و توپولوژی برای ثبات گسترش یافته است.
مسابقات/میدارد: گره گرم استخر + HPA پیش بینی ؛ گرم کردن انبارها/اتصالات.
گزارش/CDC: خوشه/استخر جداگانه به طوری که ETL کند Prod تاثیر نمی گذارد.
رگولاتوری: لاگهای تغییرناپذیر (WORM)، توکنیزاسیون PII، تقسیمبندی شبکه.

مجموع

یک پلت فرم قوی Kubernetes یک «پشته YAML» نیست، اما استانداردها: انزوا، سیاست امنیتی، منابع مدیریت شده، قابلیت مشاهده و نظم و انضباط GitOps. نمودارهای Helm - قرارداد عرضه شما: نسخه های قابل پیش بینی، الگوهای قابل آزمایش، دستکاری مخفی امن و بازپرداخت ساده. با تحکیم این اصول، خوشه هایی را به دست می آورید که از قله ها جان سالم به در می برند، سرعت انتشار را تسریع می کنند و در برابر خواسته های تجاری و نظارتی مقاومت می کنند.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

Telegram
@Gamble_GC
شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.