שני מודלי פריסה
| מודל | מה מקבלים | לאן לפנות |
|---|---|---|
| Docker Compose | אפליקציית הדוגמה עם כל התלויות, על המחשב שלך, בתוך דקות | מדריך למפתחים — הרצת האפליקציה |
| Kubernetes (Terraform + Helm) | פריסת דוגמה לסביבת ייצור: אופרטורים, מסדי נתונים, אימות, סודות, ניטור — הכול | העמוד הזה |
מקומית: Docker Compose
מאגר הפריימוורק כולל שתי סביבות מלאות — אפליקציה, PostgreSQL (עם pgvector), Redis, Vault וסביבת ניטור:
docker compose -f compose-grafana.yml up --build # Grafana stack
docker compose -f compose-opensearch.yml up --build # OpenSearch Dashboards stackפרויקטים שנוצרו מהשלד מקבלים compose.yml משלהם (app + postgres + redis + vault) —
ראו הסוכן הראשון שלך.
סביבת ייצור: Kubernetes עם Terraform
Agent-Lab מספק סקריפטים של Terraform שפורסים את האפליקציה ואת התלויות שלה ב-Kubernetes. ההדרכה הזו משתמשת באשכול Minikube לצורכי הדגמה — לפריסות אמיתיות יש להשתמש באשכול המוכן לסביבת ייצור.
דרישות מוקדמות
הקמת אשכול Kubernetes
Minikube (Linux) — מקצים מספיק משאבים (סביבת הדוגמה כבדה):
minikube start --memory=20g --cpus=4מאתרים את כתובת ה-IP של האשכול וממפים אליה את דומיינים של השירותים:
minikube ip
# 192.168.49.2192.168.49.2 vault.my-domain.com kibana.my-domain.com elasticsearch.my-domain.com agent-lab.my-domain.com litellm.my-domain.comDocker Desktop (Mac / Windows) — מפעילים את ה-Kubernetes המובנה:

עם Docker Desktop, הדומיינים מופנים דרך localhost:
127.0.0.1 vault.my-domain.com kibana.my-domain.com elasticsearch.my-domain.com agent-lab.my-domain.com litellm.my-domain.comהקצאת התלויות
כל המודולים שלהלן נמצאים ב-terraform/ — מחילים אותם עם terraform init && terraform apply בכל תיקייה, בסדר הזה:
| מודול | מה הוא מקצה |
|---|---|
01_traefik/ |
בקר ingress של Traefik |
02_cert-manager/ |
cert-manager עבור TLS |
03_cert-cluster-issuer/ |
ClusterIssuer של Let's Encrypt לסביבת ייצור |
04_redis-operator/ |
אופרטור Redis (עדכוני סטטוס ב-pub/sub) |
05_postgres-operator/ |
אופרטור PostgreSQL — שלושה מסדי נתונים: רלציוני, pgvector, checkpoints |
06_keycloak-operator/ |
אופרטור Keycloak |
08_vault-instance/ |
Vault לסודות |
מופע Keycloak (09_keycloak-instance/), ולאחר מכן שולפים את סיסמת המנהל:
echo "$(kubectl --namespace keycloak get secret/keycloak-initial-admin -o go-template='{{index .data "password" | base64decode}}')"מגדירים את חיבור ה-OIDC לפי אימות עם Keycloak, או נותנים למודול
12_agent-lab-auth-realm/ לעשות זאת (בהמשך).
אתחול Vault (לאחר החלת 08_vault-instance/) — מאתחלים ומבצעים unseal:
kubectl --namespace vault exec vault-0 -- vault operator init \
-key-shares=1 \
-key-threshold=1 \
-format=json > cluster-keys.json
export VAULT_UNSEAL_KEY=$(jq -r ".unseal_keys_b64[]" cluster-keys.json)
kubectl --namespace vault exec vault-0 -- vault operator unseal $VAULT_UNSEAL_KEYניטור (אופציונלי אך מומלץ) — פלטפורמות ניטור ה-LLM שבהן משתמשות חבילת הסימולציות וה-backends של ה-tracing:
| מודול | מה הוא מקצה |
|---|---|
13_langfuse-instance/ |
Langfuse — traces של LLM וניסויי סימולציה |
14_langwatch-instance/ |
LangWatch — סימולציות ודשבורדים |
07_elastic-operator/ + 10_elastic-instance/ |
ECK (Elastic) ללוגים ול-APM |
שליפת פרטי ההתחברות של Elastic:
echo "$(kubectl --namespace elastic get secret elasticsearch-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode)"
echo "$(kubectl --namespace elastic get secret/elastic-eck-apm-server-apm-token \
-o go-template='{{index .data "secret-token" | base64decode}}')"OpenTelemetry Collector (11_otel-instance/) — נקודת הקצה של OTLP שאליה
האפליקציה מייצאת (ניטור).
שער LiteLLM (17_litellm-instance/) — שער LLM באירוח עצמי ותואם OpenAI, עם מפתחות
וירטואליים, מעקב הוצאות וממשק ניהול (/ui):
echo "$(kubectl --namespace litellm get secret/litellm-masterkey -o go-template='{{index .data "masterkey" | base64decode}}')"
curl -s https://<litellm_fqdn>/health/readinessפריסת Agent-Lab
שלושה מודולים מחברים את הכול יחד:
| מודול | מה הוא מגדיר |
|---|---|
12_agent-lab-auth-realm/ |
ה-realm, הלקוח וחשבון השירות של Keycloak עבור האפליקציה |
15_agent-lab-dependencies/ |
חיווט תלויות זמן הריצה (מסדי נתונים, broker, מפתחות LANGFUSE_*, …) |
16_agent-lab-instance/ |
אפליקציית Agent-Lab עצמה |
cd terraform/12_agent-lab-auth-realm/ && terraform init && terraform apply
cd terraform/15_agent-lab-dependencies/ && terraform init && terraform apply
cd terraform/16_agent-lab-instance/ && terraform init && terraform apply
הערה לגבי סודות: הפריסה קוראת את התצורה שלה מ-Vault בעת העלייה (
secret/app_secrets) — מפתחות המטען מפורטים בחומר העזר לתצורה.
Helm chart
המאגר כולל גם Helm chart, charts/agent-lab, שאורז את פריסת האפליקציה יחד עם ה-sidecars
שלה: Headless Chrome (CDP) לסוכני רשת, HPA, ingress, תצורה וחשבון שירות. משתמשים בו
כשכבר מתפעלים את התלויות בעצמך ורוצים להתקין רק את האפליקציה.
רשימת תיוג
לפני שמסיימים, מוודאים ש:
-
GET /status/livenessו-GET /status/readinessמחזירים 200 -
GET /docsמוצג ו-GET /agents/listמגיב (עם טוקן כשהאימות מופעל) - traces מגיעים לנקודת הקצה של OTLP (ראו ניטור)
- Vault מכיל את
secret/app_secretsעם כל מפתחות המטען - ל-realm של Keycloak יש לקוח וחשבון שירות