गाइड
Kubernetes पर डिप्लॉय करें
साथ दिए गए Helm chart के साथ प्रोडक्शन HA परिनियोजन।
उन टीमों के लिए जिन्हें HA, मल्टी-रीजन चाहिए, या जो एकल होस्ट पर निर्भर रहने में सहज नहीं हैं। हम deploy/helm/singlink/ पर एक पूर्ण Helm chart प्रदान करते हैं।
आर्किटेक्चर
Ingress (nginx / Cloudflare)
│
┌──────────┼──────────┐
│ │ │
web (×N) ws (×N) worker (×N)
│ │ │
└────┬─────┴────┬─────┘
│ │
Postgres Redis S3
(managed) (managed) (managed)इंस्टॉल
helm install singlink ./deploy/helm/singlink \
--namespace singlink --create-namespace \
--set domain.app=chat.acme.com \
--set secret.authSecret="$(openssl rand -base64 32)" \
--set secret.postgresPassword="$(openssl rand -base64 24)" \
--set secret.redisPassword="$(openssl rand -base64 24)" \
--set s3.endpoint="https://s3.us-east-1.amazonaws.com" \
--set s3.bucket="acme-singlink" \
--set s3.accessKey="AKIA..." \
--set s3.secretKey="..."क्या-क्या बनता है
- 3 Deployments:
web,ws,worker - 2 Services (web HTTP, ws sticky-session)
- WS अपग्रेड नियम वाला 1 Ingress
- वैकल्पिक एम्बेडेड postgres + redis StatefulSets
- इंस्टॉल के बाद चलने वाला Job जो
prisma migrate deployचलाता है - कॉन्फ़िग और क्रेडेंशियल्स के लिए ConfigMap + Secret
प्रोडक्शन चेकलिस्ट
- एम्बेडेड डेटाबेस अक्षम करें और प्रबंधित RDS / ElastiCache की ओर इंगित करें:
--set embedded.postgres.enabled=false --set externalDatabaseUrl=... - ऑटोस्केलिंग सक्षम करें:
--set autoscaling.enabled=true --set autoscaling.maxReplicas=20 - ingress पर TLS: cert-manager इंस्टॉल करें और सेट करें
ingress.tls.secretName="singlink-tls" - WS के लिए sticky session पहले से ही Service स्तर पर कॉन्फ़िगर है (
sessionAffinity: ClientIP) —— किसी अतिरिक्त ingress एनोटेशन की आवश्यकता नहीं - सीक्रेट प्रबंधन: CLI के माध्यम से मान पास करने के बजाय Sealed Secrets या External Secrets का उपयोग करें
- S3: AWS S3, R2, GCS, या एक प्रबंधित MinIO। यह chart नहीं MinIO के साथ आता —— K8s में स्टेटफुल ऑब्जेक्ट स्टोरेज चलाना कोई मज़ेदार बात नहीं है
स्केलिंग
# Manual scale
kubectl -n singlink scale deploy singlink-web --replicas=5
kubectl -n singlink scale deploy singlink-worker --replicas=10
# With autoscaling.enabled=true, HPAs do this automatically based on CPU.अपग्रेड
helm upgrade singlink ./deploy/helm/singlink -n singlink \
--set image.tag=v0.2.0 \
--reuse-values
# Helm hook runs the migrate Job post-upgrade automatically.ऑब्ज़र्वेबिलिटी
Next.js का healthcheck /api/healthz पर है (पहले से ही readiness/liveness प्रोब में जुड़ा हुआ)। मेट्रिक्स के लिए, Prometheus को अपनी पसंद के मानक sidecar की ओर इंगित करें। ट्रेसिंग के लिए, ConfigMap में OTEL_EXPORTER_OTLP_ENDPOINTसेट करें।
एंटरप्राइज़
EE सुविधाएं सक्षम करने के लिए, पब्लिक की + ग्राहक का लाइसेंस पास करें:
helm upgrade singlink ./deploy/helm/singlink -n singlink \
--reuse-values \
--set secret.licensePublicKey="..." \
--set secret.licenseKey="..."पूरे लाइसेंसिंग फ़्लो के लिए CE vs EE देखें।