GH GambleHub

集裝箱化和編排

1)為什麼在iGaming容器和k8s

更改速度:可預測的圖像,單個CI/CD管道。
可持續性:自動重啟,水平滑冰,自旋爬坡。
數據隔離/區域隔離:管轄範圍內的neimspace/群集。
運營標準:資源策略,單個邏輯/度量/跟蹤。

不需要時:小團隊,2-3服務,稀有版本-從PaaS/模塊化整體開始。

2)圖像和註冊表(OCI/Docker)

2.1映像組裝-原理

多階段:bold → rantime(細微的基本圖像「distroless」,「alpine」謹慎)。
可重復性:在BuildKit 中捕獲/sha 256、「COPY -chown」、「-mount=type=cache」版本。
SBOM和簽名:「cosign sign/verify」,「slsa provenance」,政策「僅簽名」。
Slim-down:刪除dev-tools,包括「USER nonroot」、「readOnlyRootFilesystem」。

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名冊和政策

私人registry+geo復制品(EU/NA)可降低潛伏期和GDPR合規性。
Retention/immutability:禁止覆蓋標簽,在PoP中加熱緩存。
管理控制:僅限簽名/掃描純映像(cosign+Trivy/Grype)。

3)管弦樂隊: 基本的Kubernetes模式

3.1個原語

部署是無狀態服務(大廳,API)。
StatefulSet是錢包/隊列/存儲(虛名、穩定卷)。
DaemonSet-邏輯代理/網絡組件。
Job/CronJob-遷移,報告,ETL。

3.2資源和QoS

指定「requests/limits」 (CPU/Memory) → QoS類和可預測的調度。
Burstable僅在有意識的地方;關鍵的是保證。
將關鍵的支付POD放在專用池上(taints/tolerations, node-affinity)。

3.3可持續性和發布

Probes:「startup」,「liveness」,「readiness」(帶有時間表和時期)。

Rollout: `maxSurge/maxUnavailable`, canary через вес в Ingress/Gateway/Service Mesh.

PDB (PodDisruptionBudget) + graceful shutdown (PreStop hook, `terminationGracePeriodSeconds`).

升級時為Drain/cordon。

4)網絡: CNI,服務,輸入流量

4.1個CNI層

Calico/Cilium/Weave是用於性能的eBPF網絡策略(NetworkPolicy)。
神經間規則:最低要求的egress/ingress。

4.2服務和登錄

Service: `ClusterIP/NodePort/LoadBalancer`.

L7的Ingress或Gateway API:路徑/頭/主機,TLS,金絲雀重量。
集群內的mTLS:通過服務mesh (Istio/Linkerd)-攔截TLS和策略。

HTTPRoute示例(網關API,金絲雀重量)

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)+帶有性能設置的「storageClass」。
用於Sharing的RWX (NFS/FSx/Filestore)-註意鎖定。
Backup/restore: Velero/Kasten、周期性快照、恢復檢查。
加密:磁盤級別和DB級別(KMS)。

6)自動縮放: HPA/VPA/KEDA

HPA(根據CPU/RAM/定制度標準-RPS,p95):用於API/遊說。
VPA(指南/汽車)-用於穩定操作員。
KEDA(事件驅動)-按隊列Kafka/SQS/Redis, Cron-shedula進行縮放。
Cluster Autoscaler-負載節點;高峰的warm池(比賽/流)。

7) Mesh服務(視需要)

mTLS/ servis↔servis政策,身份授權(SPIFFE)。
電路斷路器/定時/復出,outlier-ejection,鏡像(影子)。
開箱即用的電視度量:單一度量和軌跡。
在需要精簡流量管理(支付、遊戲提供商)的地方使用。

8)安全: 秘密,政策,合規性

保密:外部經理(AWS/GCP/Azure KMS,外部保密),輪換。
策略即代碼:OPA/Gatekeeper/Kyverno-禁令「:最新」,root-USER,hostPath,特權。
權利升級:Namespaces+RBAC,Dev/Stage/Prod拆分,審核。
Image Security: CI/CD中的掃描,簽名(cosign),簽名管理。
內部的mTLS和JWT(mesh),入口處的WAF/Rate-limit(Ingress/Gateway)。

9)可觀察性和SLO

Metrics: Prometheus/OpenTelemetry, p50/95/99, 4xx/5xx, saturations.

Logs:結構JSON → Loki/Elastic,PII/PAN/IBAN掩碼。
Traces:OTLP → Tempo/Jaeger;「trace_id」來自網關。
SLO:例如,'Deposit p 95 ≤ 300 ms,success ≥ 98。5%',alerta burn-rate。
主動性:按服務/按路線行駛,通過DLQ和隊列陣列的看門狗。

10) CI/CD, Helm, GitOps

CI:linters,測試(單位/合同/集成),SAST/DAST,SBOM。
Helm/Jsonnet/Kustomize:環境中帶有「價值」的聲明性圖表。
GitOps (ArgoCD/Flux):單個來源的真相,公關評論清單,滾回按鈕。
策略:藍綠色,金絲雀,陰影;模式遷移-擴展和合同。

values片段。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:將付款/錢包拆分為「低噪音」快速磁盤節點。
Taints/Tolerations:用於臨界負載的安全池。
(Anti-)Affinity:在區域/節點(HA)上塗抹副本。
ResourceQuota/LimitRange for neimspace-防止「噪音鄰居」。

12) Multiclaster,多區域,DR

按司法管轄區劃分:歐盟/LatAm/ROW集群;居民數據是本地數據。
入口處的GSLB/Anycast,先驗可觀察性和異常值。

DR級別:
  • Warm standby(推薦):關鍵數據庫的合成復制品,定期故障檢查。
  • 主動讀取/區域路由。
  • 備份:備份(Velero),重建恢復。

13) iGaming特點

付款/錢包: p95 ≤ 300-500毫秒,單獨的池和嚴格的PDB;canary 1→5→10%.

大廳/內容:激進的HPA RPS/INP,變暖映像/矢量凱什。
Live games/strims: LC/minimum retrais、長套接字定時器、粘合。
合規性:強硬政策的neimspace,通過KMS的秘密,Helm版本更改的審核。
負責任的遊戲:限制/鎖定服務-優先流量(通過策略失敗打開/關閉)。

14)支票單

在發布服務之前

  • 多階段映像、USER nonroot、cosign簽名、掃描通過。
  • 來自外部經理的Requests/limits, probes, env/secret。
[] PDB, `maxUnavailable ≤ 1`, graceful shutdown.
  • SLO/Alerts,從網關到DB的跟蹤。
  • 金絲雀計劃和回滾計劃。
  • OPA/Kyverno策略通過(no root,no hostPath,no:latest)。

集群/平臺

  • 包括CNI和NetworkPolicy;mTLS (mesh)在哪裏需要。
  • StorageClass/重建,備份/還原驗證。
  • HPA/VPA/KEDA定制;Cluster Autoscaler и warm-pool.
  • RBAC最低,審計包括在內,秘密來自KMS。
  • GitOps:存儲庫中的圖表/清單,PR審查是必需的。

15)反模式

「最新」映像,根用戶,「厚」基層。
沒有'requests/limits' → evicia/trottling。
Readiness=liveness(重新開始)。
在單個池上混合statful/stateless,而無需觸摸。
「正面」遷移方案,而無需擴展和合同。
唯一沒有區域隔離的「進入所有市場」集群。
使用PII/PAN的邏輯,ConfigMap中的秘密。
缺少PDB/阻力 →尖峰和升級中的懸崖。

16)平臺度量(最低)

Кластер: CPU/mem requests vs allocatable, pod-churn, node-pressure.

網絡:p95 per-route,4xx/5xx,reset/timeout,retry-rate,mTLS錯誤。
存儲:IOPS/latency, queue-depth, CSI錯誤。
自動軌道:HPA決定,CA事件,熱身時間。
業務:TTP,TtW,FTD-success,供應商付款拒絕。
安全: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通過custom-metrics)

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,監視/識別/跟蹤以及StorageClass。
3.CI/CD和GitOps:Helm圖表,環境,canary/rollback,圖形遷移。
4.滑板和彈性:HPA/VPA/KEDA,PDB,node池,taints/affinity,DR計劃。

最終的spargalka

微妙、簽名的映像+公差策略=安全基礎。
樣本,資源,PDB,drain=發行版的可持續性。
HPA/VPA/KEDA+調諧池=沒有縮放的比例。
Gateway/Ingress+mTLS/OPA=安全周長和內部通信。
Observability+SLO+GitOps=托管更改。
區域隔離和DR=合規性和容錯性。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

Telegram
@Gamble_GC
開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。