Εμπορευματοκιβώτιο και ενορχήστρωση
1) Γιατί τα δοχεία και τα k8 στο iGaming
Ρυθμός μεταβολής: προβλέψιμες εικόνες, ενιαίος αγωγός CI/CD.
Σταθερότητα: αυτόματη επανεκκίνηση, οριζόντια κλίμακα, αυτοθεραπεία.
Απομόνωση δεδομένων/περιφέρειας: χώροι ονομάτων/ομάδες που υπάγονται στη δικαιοδοσία.
Επιχειρησιακά πρότυπα: πολιτικές πόρων, ενιαίο ημερολόγιο/μετρήσεις/μονοπάτια.
Όταν δεν χρειάζεται: μια μικρή ομάδα, 2-3 υπηρεσίες, σπάνιες κυκλοφορίες - ξεκινήστε με PaaS/αρθρωτή μονόλιθο.
2) Εικόνες και μητρώα (OCI/Docker)
2. 1 Συγκρότημα εικόνων - Αρχές
Πολλαπλά στάδια: κατασκευή χρόνου εκτέλεσης (λεπτές εικόνες βάσης 'απερίσκεπτες', 'αλπικές' με προσοχή).
Επαναληψιμότητα: fix versions/sha256, 'COPY --chown', '-mount = type = cache' in BuildingKit.
SBOM και υπογραφή: «συνημμένο σήμα/επαλήθευση», «slsa προέλευση», «υπογεγραμμένη μόνο» πολιτική.
Slim-down: διαγραφή εργαλείων dev, συμπεριλαμβανομένου του 'USER nonroot', 'ReadRootFilesystem'.
Παράδειγμα Dockerfile (κόμβος. js)
dockerfile build
FROM node:22-bookworm AS build
WORKDIR /app
COPY package. json./
RUN npm ci --omit=dev
COPY..
RUN npm run build
runtime (distroless)
FROM gcr. io/distroless/nodejs22
WORKDIR /srv
COPY --from=build /app/dist./dist
COPY --from=build /app/node_modules./node_modules
USER 10001
ENV NODE_ENV=production
CMD ["dist/server. js"]
2. 2 Μητρώα και πολιτικές
Ιδιωτικό μητρώο + γεω-αντίγραφα (EU/NA) για τη μείωση της καθυστέρησης και της συμμόρφωσης GDPR.
Κατακράτηση/ατρωσία - πρόληψη της αντικατάστασης ετικετών, προθέρμανση της κρύπτης σε PoP.
Έλεγχος εισαγωγής: μόνο υπογεγραμμένες/σαρωμένες εικόνες (cosign + Trivy/Grype).
3) Ενορχήστρωση: βασικά μοτίβα Kubernetes
3. 1 Πρωτόγονα
Ανάπτυξη - απάτριδες (lobby, API).
Stat Set - πορτοφόλι/ουρές/αποθήκευση (σταθερή ονομασία, σταθεροί όγκοι).
DaemonSet - συνδετήρες/δομικά στοιχεία δικτύου.
Job/CronJob - μεταναστεύσεις, εκθέσεις, ETL.
3. 2 Πόροι και QoS
Προσδιορίστε τις «επαναλήψεις/όρια» (ΚΜΕ/μνήμη) → τις τάξεις QoS και τον προβλέψιμο προγραμματισμό.
Καίγεται μόνο όταν έχει τις αισθήσεις του. Κρίσιμη - Εγγυημένη.
Τοποθετήστε κρίσιμες δεξαμενές πληρωμών σε ειδικές δεξαμενές (ρυμουλκούμενες/ανοχές, συγγένεια κόμβου).
3. 3 Βιωσιμότητα και ελευθερώσεις
Ανιχνευτές: "startup", "livenes ," ετοιμότητα "(με χρονοδιαγράμματα και περιόδους).
Rollout: 'maxSurge/maxUnailable', καναρίνι через вес в Ingress/Gateway/Service Mesh.
PDB (PodDislicenBudget) + χαριτωμένο κλείσιμο (PreStop γάντζο, 'terminedGraceRetureSeconds').
Κόμβοι αποστράγγισης/κλοιού για αναβαθμίσεις.
4) Δίκτυο: CNI, υπηρεσίες, κίνηση εισόδου
4. 1 στρώμα CNI
Calico/Cilium/Weave - NetworkPolicy, eBPF για τις επιδόσεις.
Κανόνες χώρου: ελάχιστη απαιτούμενη έξοδος/είσοδος.
4. 2 Υπηρεσίες και σύνδεση
Υπηρεσία: «ClusterIP/NodePort/ Balancer».
Είσοδος ή πύλη API για L7: διαδρομή/κεφαλίδα/διαδρομές ξενιστή, TLS, βάρος καναρινιού.
mTLS εντός του συμπλέγματος: μέσω πλέγματος υπηρεσιών (Istio/Linkerd) - παρακολούθηση του TLS και της πολιτικής.
HTTPRoute Παράδειγμα (Gateway API, Canary Weight)
yaml apiVersion: gateway. networking. k8s. io/v1 kind: HTTPRoute spec:
rules:
- backendRefs:
- name: lobby-v1 weight: 90 port: 8080
- name: lobby-v2 weight: 10 port: 8080
5) Αποθήκευση: CSI/PV/PVC, τάξεις όγκου
Οδηγοί CSI του παρόχου (EBS/PD/Premium SSD) + 'storage Class' με παραμέτρους επιδόσεων.
RWX για κοινή χρήση (NFS/FSx/Filestore) - προσεκτικός με κλειδαριές.
Backup/restore: Velero/Kasten, περιοδικά στιγμιότυπα, έλεγχος ανάκτησης.
Κρυπτογράφηση επιπέδου δίσκου και βάσης δεδομένων (KMS).
6) Αυτόματη κλιμάκωση: HPA/VPA/KEDA
HPA (από CPU/RAM/προσαρμοσμένες μετρήσεις - RPS, p95): για API/λόμπι.
VPA (συστάσεις/αυτόματο) - για σταθερούς εργαζόμενους.
KEDA - κλίμακα Kafka/SQS/Redis, Cron-shedula.
Autoscaler δέσμης - κόμβοι φορτίου· θερμές πισίνες για κορυφές (τουρνουά/ρεύματα).
7) Πλέγμα υπηρεσίας (εάν είναι απαραίτητο)
mTLS/ servis↔servis πολιτικές, έγκριση ταυτότητας (SPIFFE).
Διακόπτης κυκλώματος/χρονοδιακόπτης/επανάληψη δοκιμής, εξερχόμενη εξώθηση, σκιά.
Τηλεμετρία εκτός πλαισίου: ομοιόμορφες μετρήσεις και ίχνη.
Χρησιμοποιήστε όπου χρειάζεστε λεπτή διαχείριση της κυκλοφορίας (πληρωμές, πάροχοι παιχνιδιών).
8) Ασφάλεια: Μυστικά, Πολιτική, Συμμόρφωση
Μυστικά: εξωτερικός διαχειριστής (AWS/GCP/Azure KMS, εξωτερικά μυστικά), εναλλαγή.
Κωδικός πολιτικής: OPA/Gatekeeper/Kyverno - αρνηθείτε ': τελευταία', root-USER, hostPath, προνόμια.
Κλιμάκωση δικαιωμάτων: χώροι ονομάτων + RBAC, Dev/Stage/Prod split, έλεγχος.
Ασφάλεια εικόνας: σάρωση σε CI/CD, υπογραφή (συνυπογραφή), εισαγωγή με υπογραφή.
mTLS και JWT εντός (ματιών), WAF/Οριακή τιμή εισόδου (είσοδος/πύλη).
9) Παρατηρησιμότητα και SLO
Μετρήσεις: Προμηθέας/OpenTelemetry, p50/95/99, 4xx/5xx, κορεσμοί.
Καταγραφές: δομική JSON → Loki/Elastic, PII/PAN/IBAN κάλυψη.
Ίχνη: OTLP-Tempo/Jaeger Το "trace _ i προέρχεται από την πύλη.
SLO: π.χ. 'Deposit p95 ≤ 300 ms, επιτυχία ≥ 98. 5% ", το ποσοστό καύσης των συναγερμών.
Προδραστικότητα: per-service/per-route dashboards, DLQ watchdog και queue lags.
10) CI/CD, Helm, GitOps
CI: linters, tests (μονάδα/σύμβαση/ολοκλήρωση), SAST/DAST, SBOM.
Helm/Jsonnet/Kustomize: δηλωτικά διαγράμματα με 'τιμές. 'στα περιβάλλοντα.
GitOps (ArgoCD/Flux): single-source-of-truth, PR velifest review, rollback button.
Στρατηγικές: γαλάζιο-πράσινο, καναρίνι, σκιά. μετανάστευση σχήματος - επέκταση και σύναψη σύμβασης.
Θραύσμα αξιών. yaml (πόροι/δείγματα)
yaml resources:
requests: { cpu: "200m", memory: "256Mi" }
limits: { cpu: "500m", memory: "512Mi" }
livenessProbe: { httpGet: { path: /healthz, port: 8080 }, initialDelaySeconds: 20, periodSeconds: 10 }
readinessProbe: { httpGet: { path: /readyz, port: 8080 }, initialDelaySeconds: 5, periodSeconds: 5 }
11) Προγραμματισμός και απομόνωση
NodePools: Ξεχωριστές πληρωμές/πορτοφόλι σε κόμβους «χαμηλού θορύβου» με γρήγορο δίσκο.
Πινακίδες/ανοχές: προστατευόμενες δεξαμενές για κρίσιμα φορτία.
(Anti-) Συγγένεια: αντίγραφα κηλίδας ανά ζώνη/κόμβο (HA).
ResourceΠοσοστώσεις/LimitRange σε χώρους ονομάτων - προστασία από «θορυβώδεις γείτονες».
12) Multicluster, πολυπεριφέρεια, DR
Διαχωρισμός ανά δικαιοδοσία: ομάδες ΕΕ/LatAm/ROW. στοιχεία κατοίκων - τοπικά.
Εισαγωγή GSLB/Anycast, παρατηρησιμότητα ανά κατηγορία και καταχωρίσεις.
- Θερμή αναμονή (συνιστάται): αντίγραφο κρίσιμων βάσεων δεδομένων, περιοδικοί έλεγχοι αστοχίας.
- Ενεργός για ανάγνωση/περιφερειακή δρομολόγηση.
- Backup: backups (Velero), ανάκτηση πρόβας.
13) Ιδιαιτερότητα iGaming
Πληρωμές/πορτοφόλι: p95 ≤ 300-500 ms, μεμονωμένες ομάδες και αυστηρό ΠΣΠ. καναρίνι 1→5→10%.
Λόμπι/περιεχόμενο: επιθετική HPA από RPS/INP, θερμαινόμενες εικόνες/διανυσματική μνήμη.
Live games/streams: LC/minimum retrays, long socket timeouts, sticky on the connection.
Συμμόρφωση: νέοι χώροι με σκληρή πολιτική, μυστικά μέσω του KMS, έλεγχος των αλλαγών στις κυκλοφορίες του Helm.
Υπεύθυνο παιχνίδι: υπηρεσία περιορισμού/εμπλοκής - κίνηση προτεραιότητας (ανοικτή/κοντά στην πολιτική).
14) Κατάλογοι ελέγχου
Πριν από τον καθορισμό της υπηρεσίας
- Εικόνα πολλαπλών σταδίων, μη ρίζα χρήστη, συνημίτονη υπογραφή, πέρασμα σάρωσης.
- Αιτήματα/όρια, ανιχνευτές, env/μυστικά από εξωτερικό διαχειριστή.
- PDB, 'maxUnailable ≤ 1', χαριτωμένο κλείσιμο.
- SLO/καταχωρίσεις, από την πύλη στην DB.
- Canary μοτίβο και σχέδιο rollback.
- Οι πολιτικές OPA/Kyverno περνούν (χωρίς ρίζα, χωρίς hostPath, όχι: τελευταία).
Δέσμη/Πλατφόρμα
- Ενεργοποιήθηκε η CNI και η NetworkPolicy. mTLS (μάτια), όπου είναι απαραίτητο.
- Stories Class/κατακράτηση, εφεδρεία/αποκατάσταση ελέγχεται.
- Ρυθμισμένο HPA/VPA/KEDA. Δέσμη Autoscaler и θερμή δεξαμενή.
- Το RBAC είναι ελάχιστο, ο έλεγχος ενεργοποιείται, τα μυστικά προέρχονται από το KMS.
- GitOps: απαιτούμενα διαγράμματα/δηλωτικά στο αποθετήριο, επανεξέταση δημοσίων σχέσεων.
15) Αντι-μοτίβα
'Τελευταία' images, χρήστης ρίζας, παχιά βασικά στρώματα.
Όχι 'αναζωογονήσεις/όρια' → εξώσεις/στραγγαλισμός.
Ετοιμότητα = ζωντάνια.
Ανάμειξη statefull/ανιθαγενών στην ίδια δεξαμενή χωρίς ράμματα.
Μετακίνηση συστημάτων «κατά μέτωπο» χωρίς επέκταση και σύναψη σύμβασης.
Το μοναδικό σύμπλεγμα «σε όλες τις αγορές» χωρίς περιφερειακή απομόνωση.
Αρχεία με PII/PAN, μυστικά στο ConfigMap.
Έλλειψη PDB/αποστράγγισης → σπάει στις κορυφές και κατά τη διάρκεια αναβαθμίσεων.
16) Μετρήσεις της πλατφόρμας (ελάχιστο)
: CPU/mem αιτήματα vs κατανεμημένα, pod-churn, κόμβος-πίεση.
Δίκτυο: p95 per-route, 4xx/5xx, reset/timeout, ret-rate, mTLS σφάλματα.
Αποθήκευση: IOPS/καθυστέρηση, βάθος αναμονής, σφάλματα CSI.
Αυτόματη κλίμακα: αποφάσεις HPA, εκδηλώσεις CA, χρόνος προθέρμανσης.
Επιχειρήσεις: TTP, TtW, FTD-επιτυχία, άρνηση πληρωμών για τον πάροχο.
Ασφάλεια: ασυνέπειες του OPA, μη υπογεγραμμένες εικόνες, ληγμένα μυστικά.
17) Παραδείγματα μανιφέστων
Εγκατάσταση (API, ετικέτα καναρινιού)
yaml apiVersion: apps/v1 kind: Deployment metadata: { name: wallet-api, labels: { app: wallet, track: stable } }
spec:
replicas: 4 strategy: { type: RollingUpdate, rollingUpdate: { maxSurge: 1, maxUnavailable: 1 } }
selector: { matchLabels: { app: wallet, track: stable } }
template:
metadata: { labels: { app: wallet, track: stable } }
spec:
serviceAccountName: wallet-sa containers:
- name: api image: registry. local/wallet/api@sha256:...
ports: [{ containerPort: 8080 }]
resources:
requests: { cpu: "250m", memory: "256Mi" }
limits: { cpu: "500m", memory: "512Mi" }
readinessProbe: { httpGet: { path: /readyz, port: 8080 }, periodSeconds: 5 }
livenessProbe: { httpGet: { path: /healthz, port: 8080 }, initialDelaySeconds: 20 }
securityContext:
runAsNonRoot: true readOnlyRootFilesystem: true
PDB (πορτοφόλι)
yaml apiVersion: policy/v1 kind: PodDisruptionBudget spec:
minAvailable: 3 selector: { matchLabels: { app: wallet } }
HPA (μέσω RPS μέσω προσαρμοσμένων μετρήσεων)
yaml apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler spec:
minReplicas: 4 maxReplicas: 40 metrics:
- type: Pods pods:
metric:
name: http_requests_per_second target:
type: AverageValue averageValue: "50"
18) Διαδικασία εφαρμογής (με σπριντ)
1. Συναρμολόγηση εικόνας και ασφάλεια: πολλαπλά στάδια, SBOM, υπογραφές, πολιτική εισδοχής.
2. Βασική πλατφόρμα k8s: CNI, Ingress/Gateway, παρακολούθηση/καταγραφές/μονοπάτια, Stories Class.
3. CI/CD και GitOps: Διαγράμματα Helm, Τετάρτες, Canary/rollback, σχήματα μετανάστευσης.
4. Κλίμακα και ανθεκτικότητα: HPA/VPA/KEDA, PDB, δεξαμενές κόμβων, ράβδοι/συγγένεια, σχέδιο DR.
Τελικό φύλλο εξαπάτησης
Λεπτές, υπογεγραμμένες εικόνες + πολιτική εισδοχής = ίδρυμα ασφαλείας.
Δείγματα, πόροι, PDB, αποστράγγιση = ανθεκτικότητα έκλυσης.
HPA/VPA/KEDA + ομάδες ρύθμισης = κλίμακα χωρίς αναλήψεις.
Πύλη/Είσοδος + mTLS/OPA = ασφαλής περίμετρος και ενδοεπικοινωνία.
Παρατηρησιμότητα + SLO + GitOps = Διαχειριστικές αλλαγές.
Περιφερειακή απομόνωση και DR = συμμόρφωση και ανοχή βλάβης.