GH GambleHub

קוברנטס: אשכולות ותרשימי הלם

קוברנטס: אשכולות ותרשימי הלם

1) ארכיטקטורת אשכול - תצוגה עליונה

מטוס בקרה: ”kube-apiserver”, ”etcd”, ”kube-linzuler”, ”kube-controller-manager”, (חלק מוסתר בעננים מבוקרים).
פועל: ”kubelet”, CRI runtime (בלימה/CRI-O), תוסף CNI, kube-proxy/ebpf-proxy.
רשת תוך-קלוסטר: Pod-to-Pod, Service-VIP/Clouglouster IP, DNS CoreyDNS.
אחסון: נהגי CSI, PVC דינמי = PV provisioning ( Class).
גבולות כישלון: צומת/אזור AZ. הצב העתקים לפי אזור (TopologyServantaints/anti-affinity).

תפקידים טיפוסיים

פקודת פלטפורמה: יוצר/משדרג אשכולות, CNI/CSI/Ingress, מדיניות ו-GitOps.
צוותי מוצר: טבלאות הפקדה/שחרור, המשך מדיניות אבטחה ומשאבים.

2) אופן חיים של אשכול

יצירה: kOps, kubeadm, Rancher, EKS/AKS/GKE. אפשר אימות OIDC וביקורת מייד.
שדרוגים: גרסאות קטנות בתורו (control plason ach nodes), הנשלטות על ידי MaxUnavable, בדיקות על ההיערכות.
תוספות (כולן באמצעות Helm/GitOps): CNI (Calico/Cilium), Ingress, Ingress (NGINX/GATEway API/Contour/Traefik), Metrics-Server, Cluster-Autoscaler, Node-Local DNS, רישום/מדדים/עקבות.
גיבויים: etcd snapshot (אם מנוהל בעצמו), Velero עבור שם/PVC.

3) רשתות, שירותים וחדירה

CNI: Calico (NetworkPolicy), Cilium (ראשי תיבות של eBPF/servicemesh).
שירות: "Clouglough IP", "NodePort'," LoodBalancer "(איזון ענן L4)," שם ".
Ingress/Gateway API: ניתוב L7, TLS, מגבלת קצב/WAF בהיקפו.
מדיניות Networks: מכחיש כל + מפורש מאפשר על ידי שם/תווית כברירת מחדל.
שירות ללא ראש (”Clought IP: None”) עבור State Set ותגלית שירות.

4) אחסון (CSI) ומצבים

מחלקה : 'reclimePolicy', ' Binnament Mode' ('הצרכן הראשון למיקום טוב יותר').
StatFound Set: שמות יציבים/כרכים ( Templates), PoddGround Policy: מקבילים לסריקות מהירות.
ReadImage Many: השתמש בקובץ מבוזר (EFS/Filestore) בזהירות - הערכת איחור.
תמונות: "גיבויים של Snaphire Class' + Cron.

5) עמידות מרובה בפוליטיקה

אספות שם על ידי מוצר/סביבה.
RBAC: תפקידים מינימליים, חשבונות שירות נפרדים, 'תפקיד '/' Bullending Binding' במקום 'Clough Role' היכן שאפשר.
(PSA (Pod Security Administration: "Basseline '/' lected 'modes (PSP.
Quota/LaughtBalancer: Memory/PVC/LocalBalancer.
אופ "א שומר שער/קיוורנו: מדיניות הכניסה (למשל: איסור ": האחרונה", דרישה "משאבים", "Readly Name Filesystem').
ImagePolicy/webhooks: אימות חתימת תמונה (cosign/policy-controller).

6) יכולת תצפית ותפעול

מחסנית פרומתאוס, מדדי קוב, צומת יצוא.
יומנים: Fluent Bit/Vector = אובייקט/ES/OpenSearch, סיבוב על צמתים.
שבילים: OpenTelemetry Collector.
לוחות מחוונים: מודל אדום על חדירה ושירותי מפתח.
Autoscale: HPA (by application metrics), VPA לרקע, Cluster-Autoscaler לצמתים.

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 }
StatholdSet (קטע):
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 (תקציב פודה):
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 - יסודות ומבנה

תרשים = תבניות + ערכים + metadata.


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 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) תבניות עזר - מנהגים

השתמש בעוזרים in '_ עוזרים. tpl' לשמות/תוויות/הערות.
ציין ”משאבים”, ”הקשר ”, ”מוכנות/לביאה” בכל מקום.
צור תוויות לפי סכימה סטנדרטית ('ap. kubernetes. io/').
הפוך תכונות אופציונליות באמצעות 'values' (כניסה/hpa/pdb/servicemonitor).
כולל 'vallues. סכימה. ג 'סון - להפסיק תצורות שגויות.
למידע רגיש - סודות מפעילים חיצוניים (סודות חיצוניים, 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

הגה v3 תומך ברישומי OCI: ”oci ://registry/org/charts”.
תלות נעילה בגרסאות ('í1. 2. 0`, `~1. 2 ') ולהפעיל' תלות הגה לבנות '.
חתום על התרשים (מש), לאחסן חפצים במאגר החפץ המודיעיני.
תרשימי ספרייה: תבניות כלליות (ingress/servicemonitor) לשימוש חוזר.

11) הוקס, CRD וסדר פעולות

הוק: ”התקנה מראש”, ”לאחר התקנה”, ”טרום שדרוג”, ”לאחר שדרוג”, ”מבחן”. הוסף מדיניות ('לפני-הוו-יצירה', 'וו-הצליח').
CRD: להכניס 'קראדים/' (להגדיר לתבניות), להימנע מעדכוני CRD על הזבוב - להגר בנפרד.
נדידת מסד נתונים/אתחול - וו עבודה עם אידמפוטנטיות ופסקי זמן.

12) תרשים ובדיקת מודיע

'helm מוך' + אימות של המזימה.
הגה unitest (יחידה), תרשים-בדיקה (ct) - הרכבה/התקנה בסוג/מיניקובה ב CI.
בדיקות Snapshot של תבניות (”helm template”).
מבחני עשן "בדיקת הגה" (להעלות "Pod' with צ 'קים).

13) גיטופס (ארגו תקליטור/שטף)

מקור האמת הוא המאגר. התרשים מאוחסן בשם HelmRelease/HelmChart (שטף) או Application (ארגו).
מדיניות כיור: סינכרון אוטומטי עם שזיפים/ריפוי עצמי, סטטוסים ובדיקות בריאות.
גרסאות קידום: tag-bots/semver-range, PR-flow.
חלוקת repo לאפליקציות (תרשימים) ו ־ env (עוקף/ערכים).
ניהול סודי: SOPS (גיל/KMS), סודות חיצוניים.

14) בטיחות: מינימום נדרש

PSA מוגבל: אין הרשאות, אין hostPath Path, יכולות מוגבלות, גגות קריאה בלבד.
מדיניות גיבוש - תמונות חתומות/אמינות בלבד.
מדיניות Networks: ”נעול כברירת מחדל”.
RBAC: לכל חשבון שירות אפליקציה, ”תפקיד ”/” מחייב” בשמות.
בקרת כניסה: Gatekeeeper/Kyverno rules (משאבים/מגבלות, תוויות, אין חדש).
סודות: SOPS/סודות חיצוניים; לא לשים סודות בערכים/פשוט Git.

15) אנטי דפוסים

”: האחרון” בתרשימים ודימויים; היעדר אמצעים. סכימה. ג 'סון'.
תרשים אחד ענק ”לכל דבר” במקום מודולרי.
CRDs מעודכנים עם תבניות בתבניות '/' תוהו ובוהו על שדרוגים.
שמות קשיחים/פורט/שם בתבנית.
מחסור במשאבים/מגבלות ודגימות.
אין PDB = אפס זמן השבתה אינו אפשרי עם ניקוז/שדרוגים.
סודות בגיט ללא הצפנה; מניפסטים ללא בדיקות מדיניות.

16) רשימת מימושים (0-45 ימים)

0-10 ימים

צור שלד תרשים בסיסי עם '_ עוזרים. Tpl ', תוויות, גשושיות, משאבים, PDB/Ingress אופציונלי.
PSA מוגבלת, Networklics Policy Detective All, LockQuate/LaunCare Range.
הגדרות GitOps (ארגו/שטף), רישום פרטי, חתימת תמונה/תרשים.

11-25 ימים

לחלק את התרשים למודולים/תלויות, להוסיף 'values. סכימה. ג 'סון, בדיקות (' מוך הגאי ', יחידה, ct).
חיבור יכולת תצפית (Service Monitor/PodMonitor), סוכני רישום, Otel.
הזן את תהליך השדרוג: היערכות ach canary prod, הנדידה עם rollback.

26-45 ימים

עדכוני תלות אוטומטיים (bots/semver-ranges + PR).
הוסף את מדיניות שומר השער/קיוורנו ואת דו "חות המדיניות למודיע.
תיעד את ספר ההפעלה של אשכול, הליכי DR (Velero/etcd snapshot).

17) מדדי בגרות

100% מהיישומים מתרוקנים באמצעות Helm/GitOps, ללא 'kubectl' יישום ידני.
לכל הגיליונות יש ערך. סכימה. ג 'סון, בדיקות, חתימה, וגרסאות תלות מבוצעות.
PSA מוגבלת/NetworkPolicy מופעלת בכל שם.
PDB ו HPA נוכחים בכל השירותים הקריטיים.
SOPS/סודות חיצוניים, אין מדיניות עדכנית, חתימת תמונה.
אשכול ושדרוג תרשימים מבוצעים ללא השבתה (כנרית/כחול-ירוק), בדיקות שחזור הן סדירות.

18) מסקנה

קרן סטרונג קוברנטס (Strong Kubernetes foundation) - ארכיטקטורת אשכול חזקה + מדיניות קפדנית + תרשימי הלם באיכות תעשייתית המנוהלים על ידי GitOps. תקן תבניות, אבטח את סביבת PSA/Networks Policy/RBAC, תאמת ערכים, ומבחנים אוטומטיים, חתימה וקידום. ואז שדרוגים ושחרורים יהפכו להיות צפויים, והפלטפורמה תהיה יציבה ונוחה לצוותי מוצרים.

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

Telegram
@Gamble_GC
התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.