דלגו לתוכן

פריסת Kubernetes

לייצור מנוהל או מדורג, ה-backend של RedCloud רץ על Kubernetes.

ה-manifest‏ k8s/deployment.yaml מגדיר שלושה אובייקטים ל-backend.‏ PostgreSQL ושרת הרישוי מסופקים חיצונית במודל הזה, וה-Secrets וה-ServiceAccount הנדרשים נוצרים על ידכם.

אובייקטפרטים
Deployment redcloud2 replicas, תמונה redcloud/cspm:latest, פורט קונטיינר 9900. משתמש ב-service account של Workload Identity‏ (redcloud-vertex-ksa) הקשור ל-SA של GCP עבור Vertex AI. הסביבה מגיעה מה-Secret‏ redcloud-secrets. מבקש 512Mi / 250m, מגביל 2Gi / 1000m. בדיקות liveness ו-readiness פונות ל-/health.
Service redcloudClusterIP, פורט 80 → targetPort 9900.
PersistentVolumeClaim redcloud-scans-pvcReadWriteOnce,‏ 10Gi, ממופה ל-/app/out לפלט הסריקה.

האובייקטים האלה מופנים מה-manifest אך נוצרים בנפרד:

אובייקטמטרה
Secret redcloud-secretsכל תצורת הסביבה (ראו תצורה) — HMAC_KEY,‏ API_KEY,‏ ENCRYPTION_KEY,‏ DATABASE_URL, רישיון וכו’.
Secret gcp-sa-keyמפתח Service Account של GCP, ממופה בקריאה-בלבד ל-/app/credentials.
ServiceAccount redcloud-vertex-ksaSA של Kubernetes המחובר ל-SA של GCP דרך Workload Identity (למשל roles/aiplatform.user).
PostgreSQL 16נגיש דרך ה-DATABASE_URL שב-redcloud-secrets (שירות מנוהל או בתוך הקלאסטר).
שרת רישוינגיש דרך LICENSE_SERVER_URL (HTTPS בייצור).
Terminal window
# צרו את הסודות תחילה (דוגמה — השתמשו בניהול הסודות שלכם)
kubectl create secret generic redcloud-secrets --from-env-file=.env
kubectl create secret generic gcp-sa-key --from-file=sa-key.json=./credentials/sa-key.json
# החילו את ה-manifest של ה-backend
kubectl apply -f k8s/deployment.yaml
# חשפו אותו (Ingress / Gateway לפני ה-Service מסוג ClusterIP)
kubectl get pods -l app=redcloud

הציבו את ה-Service‏ redcloud מאחורי ה-Ingress / load balancer שלכם, עם סיום TLS שם. אם אתם משתמשים ב-Google Cloud IAP, הגדירו את משתני הסביבה של IAP ואת ה-audience של ה-backend (ראו תצורה).

  • ה-manifest המצורף מכסה את ה-backend בלבד; הביאו PostgreSQL, שרת רישוי ו-Ingress משלכם.
  • פלט הסריקה משתמש ב-PVC יחיד מסוג ReadWriteOnce; התאימו את גודלו לנפח הסריקות ולשמירה.