GH GambleHub

컨테이너화 및 오케스트레이션

1) iGaming에서 컨테이너와 k8의 이유

변경 속도: 예측 가능한 이미지, 단일 CI/CD 파이프 라인.
안정성: 자동 재시작, 수평 스케일, 자기 치유.
데이터/지역 격리: 관할 지역의 네임 스페이스/클러스터.
운영 표준: 리소스 정책, 단일 로그/메트릭/트레일.

필요하지 않은 경우: 소규모 팀, 2-3 서비스, 드문 릴리스-PaaS/모듈 식 모놀리스로 시작하십시오.

2) 이미지 및 레지스트리 (OCI/Docker)

2. 1 이미지 어셈블리 - 원칙

다단계: → 런타임을 빌드하십시오 (얇은 기본 이미지는 '디스트로리스', '알파인' 은주의해서).
반복성: BuildKit에서 버전/sha256, 'COPY-chown', '-mount = Type = cash' 를 수정하십시오.
SBOM 및 서명: 'cosign sign/celevation', 'slsa provenance', 'sign Only' 정책.
슬림 다운: 개발 도구를 삭제하고 'USER 비 루트', 'readOnlyRootFilesystem' 을 포함하십시오.

예 도커 파일 (노드. 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 개의 등록 및 정책

대기 시간 및 GDPR 준수를 줄이기위한 개인 레지스트리 + 지리 복제품 (EU/NA).
보존/면역-태그 덮어 쓰기를 방지하고 PoP에서 캐시를 예열하십시오.
입학 제어: 서명/스캔 된 이미지 (cosign + Trivy/Grype) 만 있습니다.

3) 오케스트레이션: 기본 Kubernetes 패턴

3. 1 기본 요소

배포 - 무국적 서비스 (로비, API).
StatefulSet-지갑/대기열/스토리지 (고정 이름, 안정적인 볼륨).
DaemonSet-로그 에이전트/네트워크 구성 요소.
직업/CronJob-이주, 보고서, ETL.

3. 2 개의 리소스 및 QoS

'요청/제한' (CPU/메모리) → QoS 클래스 및 예측 가능한 일정을 지정하십시오.
의식이있는 곳에서만 불안정; 중요-보장.
전용 수영장 (테인/공차, 노드 친 화성) 에 중요한 결제 포드를 배치하십시오.

3. 3 지속 가능성 및 릴리스

프로브: '시작', '활력', '준비' (타임 아웃 및 기간 포함).

롤아웃: 'maxSurge/maxUnageable', 카나리아

PDB (PodDisruptionBudget) + 우아한 셧다운 (PreStop hook, 'terminationGracePeriodSecones').
업그레이드를위한 배수/코르 돈 노드.

4) 네트워크: CNI, 서비스, 입력 트래픽

4. 1 CNI 레이어

Calico/Cilium/Weave-성능을위한 네트워크 정책, eBPF.
공간 간 규칙: 최소 필요한 출구/침입.

4. 2 서비스 및 로그인

서비스: 'ClusterIP/NodePort/LoadBalancer'.
L7 용 침입 또는 게이트웨이 API: 경로/헤더/호스트 경로, TLS, 카나리아 가중치.
클러스터 내에서 mTLS: 서비스-메시 (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'

공유 용 RWX (NFS/FSx/Filestore) -잠금 장치에주의하십시오.
백업/복원: Velero/Kasten, 주기적 스냅 샷, 복구 확인.
디스크 레벨 및 데이터베이스 레벨 (KMS) 암호화.

6) 자동 스케일링: HPA/VPA/KEDA

HPA (CPU/RAM/맞춤형 메트릭-RPS, p95): API/roby용.
안정적인 근로자를위한 VPA (권장 사항/자동).
KEDA (이벤트 중심) -Kafka/SQS/Redis 대기열, Cron-shedula 스케일.
클러스터 오토 스케일러-로드 노드; 봉우리를위한 따뜻한 수영장 (토너먼트/스트림).

7) 서비스 메시 (필요한 경우)

mSL/servis 서비스 정책, 신원 인증 (SPIFFE).
회로 차단기/타임 아웃/재 시도, 특이 치 배출, 그림자.
상자에서 원격 측정: 균일 한 메트릭 및 트랙.
미묘한 트래픽 관리 (결제, 게임 제공 업체) 가 필요한 곳에서 사용하십시오.

8) 보안: 비밀, 정치, 준수

비밀: 외부 관리자 (AWS/GCP/Azure KMS, 외부 비밀), 교체.
코드 정책: OPA/Gatekeeper/Kyverno-거부 ': 최신', 루트 -USER, hostPath, 권한.
권리 상승: Namespaces + RBAC, Dev/Stage/Prod 분할, 감사.
이미지 보안: CI/CD로 스캔, 서명 (cosign), 서명 입학.
mTLS 및 JWT 내부 (메시), WAF/속도 제한 입력 (침입/게이트웨이).

9) 관찰 및 SLO

측정 항목: Prometheus/OpenTelemetry, p50/95/99, 4xx/5xx, 포화.
로그: 구조적 JSON → Loki/Elastic, PII/PAN/IBAN 마스킹.
흔적: OTLP → Tempo/Jaeger; 'trace _ id' 는 게이트웨이에서 나옵니다.
SLO: 예: '예금 p95 λ300 ms, 성공 98. 5% ', 연소율 경고.
생산성: 서비스 당/경로 별 대시 보드, DLQ 워치 독 및 대기열 지연.

10) CI/CD, 헬름, GitOps

CI: 인쇄기, 테스트 (단위/계약/통합), SAST/DAST, SBOM.
Helm/Jsonnet/Kustomize: '값이있는 선언적 차트. '환경에.
GitOps (ArgoCD/Flux): 단일 소스 진실, PR 매니페스트 리뷰, 롤백 버튼.
전략: 청록색, 카나리아, 그림자; 스키마 마이그레이션-확장 및 계약.

값 조각. 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) 별 스미어 복제본.
네임 스페이스의 ResourceQuote/LimitRange-" 잡음 이웃 "으로부터 보호합니다.

12) 멀티 클러스터, 다중 지역, DR

관할권 별 분할: EU/LatAm/ROW 클러스터; 상주 데이터-로컬.
GSLB/Anycast 입력, 클래스 별 관찰 및 경고.

DR 수준:
  • 따뜻한 대기 (권장): 중요한 데이터베이스의 복제, 정기적 인 장애 조치 검사.
  • 읽기/지역 라우팅에 적극적으로 참여합니다.
  • 백업: 백업 (Velero), 리허설 복구.

13) iGaming 특이성

지불/지갑: p95 λ300-500 ms, 개별 수영장 및 엄격한 PDB; 카나리아 1 → 5 → 10%.
로비/컨텐츠: RPS/INP의 공격적인 HPA, 가열 된 이미지/벡터 캐시.
라이브 게임/스트림: LC/최소 리트레이, 긴 소켓 타임 아웃, 연결에 끈적 끈적한.
규정 준수: 엄격한 정책, KMS를 통한 비밀, Helm 릴리스 변경 감사가있는 공간.
책임있는 게임: 제한/차단 서비스-우선 순위 트래픽 (정책에 따라 실패/닫기).

14) 점검표

서비스를 배치하기 전에

  • 다단계 이미지, USER 비 루트, 코사인 서명, 스캔이 통과되었습니다.
  • 외부 관리자의 요청/제한, 조사, env/비밀.
  • PDB, '최대한 활용할 수없는 자동 1', 우아한 셧다운.
  • SLO/경고, 게이트웨이에서 DB로 추적.
  • 카나리아 패턴 및 롤백 계획.
  • OPA/Kyverno 정책 통과 (루트, 호스트 경로 없음, 아니오: 최신).

클러스터/플랫폼

  • CNI 및 네트워크 정책 활성화; (PHP 3 = 3.0.6, PHP 4)
  • StorageClass/보존, 백업/복원 확인.
  • HPA/VPA/KEDA 구성; 클러스터 Autoscaler! warm-pool.
  • RBAC는 최소화되고 감사가 활성화되며 비밀은 KMS의 것입니다.
  • GitOps: 저장소의 차트/표시, PR 검토가 필요합니다.

15) 반 패턴

'최신 이미지, 루트 사용자, 두꺼운 기본 레이어.
'요청/제한' → 퇴거/조절 없음.
준비 = 활력.
오염없이 같은 수영장에서 국가/무국적자를 혼합합니다.
확장 및 계약없이 "정면" 체계의 마이그레이션.
지역 격리없이 "모든 시장에" 유일한 클러스터.
PII/PAN이있는 로그, ConfigMap의 비밀.
PDB/배수 부족 → 정점과 업그레이드 중에 중단됩니다.

16) 플랫폼 지표 (최소)

차이나: CPU/mem 요청 vs 할당 가능, 포드 터닝, 노드 압력.
네트워크: 경로 당 p95, 4xx/5xx, 재설정/시간 초과, 재 시도 속도, mSL 오류.
스토리지: IOPS/대기 시간, 대기열 깊이, CSI 오류.
Autoscale: 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. 기본 플랫폼 k8: CNI, Ingress/Gateway, 모니터링/로그/트레일, StorageClass.
3. CI/CD 및 GitOps: 헬름 차트, 수요일, 카나리아/롤백, 스키마 마이그레이션.
4. 규모 및 복원력: HPA/VPA/KEDA, PDB, 노드 풀, 테인/친 화성, DR 계획.

최종 치트 시트

얇고 서명 된 이미지 + 입학 정책 = 보안 기초.
샘플, 리소스, PDB, 드레인 = 방출 견고성.
HPA/VPA/KEDA + 튜닝 풀 = 단점이없는 스케일.
Gateway/Ingress + mSL/OPA = 보안 경계 및 인터콤.
관찰 가능성 + SLO + GitOps = 관리 변경.

지역 격리 및 DR = 규정 준수 및 결함 허용

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

Telegram
@Gamble_GC
통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.