- ClickHouse 24.8 — אחסן הנתונים הקנוני לאנליטיקה של אירועים והערכות (StatefulSet עם נפח קבוע של 100Gi). נדרש: השרת מסרב להתחיל בלעדיו.
- PostgreSQL 16 — אחסן מטא-נתונים ויחסי למארגנויות, מפתחות API, משתמשים, לוחות בקרה, שאילתות שמורות והרשאות (StatefulSet עם נפח קבוע של 50Gi)
- Redis 7.2 — מטמון משותף אופציונלי ותשתית הגבלת קצב; השרת ולוח הבקרה מתכלים בחן אם הוא אינו זמין
- שרת AgentEye — Rust API לספיגת אירועים, אנליטיקה וניהול מפתחות (2 העתקים)
- לוח בקרה AgentEye — ממשק משתמש Next.js (2 העתקים)
- עוזר AI (שירות סוכן) — עוזר אופציונלי קריאה-בלבד בתוך לוח הבקרה בפורט 9100; לא פעיל עד שנקודת קצה LLM תעבור תצורה
- Traefik (ציבורי) — בקר ingress לתעבורת כללים, מוגן ב-mTLS
- Traefik (לוח בקרה) — בקר ingress ללוח הבקרה, VPN/רשימת IP-בלבד
- cert-manager — תעודות TLS ו-CA של mTLS
- CronJob גיבוי — יומי של PostgreSQL + ClickHouse משולב ב-03:00 UTC
- צג חידוש תעודות — התראות כאשר תעודות לקוח קרובות לתפוגה
דרישות מוקדמות
הרץ כל פקודת אימות לפני התחלה. כל בדיקה חייבת להיות מוצלחת.| דרישה | מינימום | פקודת אימות | צפוי |
|---|---|---|---|
| אשכול Kubernetes | 1.27+ | kubectl version | Server Version >= v1.27 |
| Kustomize (מלאי עם kubectl) | Kustomize v1.14+ (משלוח בתוך kubectl 1.27+) | kubectl kustomize --help | הדפסת טקסט שימוש |
| Helm | v3 | helm version | Version:"v3.x.x" |
| cluster-admin RBAC | — | kubectl auth can-i create namespaces | yes |
| StorageClass ברירת המחדל | — | kubectl get storageclass | לפחות שורה אחת מסומנת (default) |
| תמיכת LoadBalancer | — | תלוי בעננן (EKS, GKE, AKS כולם תומכים בברירת מחדל) | — |
| GitHub PAT | — | echo $AGENTEYE_TOKEN | לא ריק (ראה enterprise-docs/github-token.md) |
| openssl | — | openssl version | OpenSSL 1.x או 3.x |
| דלי אחסון בעננן | — | ל-PostgreSQL + ClickHouse גיבויים (S3, GCS, או Azure Blob) | — |
הרץ את כל הבדיקות בבת אחת
צורת הפריסה
נקודת הסיום של ספיגה מוגשת על כתובת שאתה שולט בה (למשלingest.your-company.example). cert-manager מבקש תעודת TLS המהימנה בציבור מ-Let’s Encrypt דרך HTTP-01, כך שמכללים מאומתים את תעודת השרת כנגד חנות ההאמנה של המערכת, ללא PIN CA לכל לקוח.
נקודת הסיום של לוח הבקרה עובדת בדרך זהה: היא מוגשת על כתובת שנייה שאתה שולט בה (למשל agenteye.your-company.example) המצביעה על LoadBalancer של Traefik של לוח הבקרה, ו-cert-manager מנפיק את תעודת Let’s Encrypt שלה דרך LoadBalancer זה. דפדפנים מקבלים תעודה מהימנה ללא אזהרה.
הנפקת תעודות וחידוש אימות דרך HTTP-01, כך שגם LoadBalancers חייבים להיות ניתנים להשגה מהאינטרנט הציבורי בפורט 80. אם אתה צריך הגבלת IP ללוח הבקרה LoadBalancer, תאם עם תמיכה תחילה על פותר DNS-01 — אחרת חידושים נכשלים בשקט ותעודות מתפוגות.
קבל את המניפסטים
AGENTEYE_TOKEN שלך.
מבנה ספריה:
ניטור בריאות (אופציונלי): הבדיקה הערות של השרת כבר משקפת בריאות Postgres + ClickHouse, ו-third-party/robusta/ מוסיף התראות כשל pod מובנות-Kubernetes opt-in ל-Slack. ראה enterprise-docs/health-monitoring.md.
שלב 1 — תשתיות צד שלישי (~30 דקות)
1.1 התקן את cert-manager
cert-manager מנהל תעודות TLS עבור HTTPS וה-CA הפרטי המשמש ללקוחות mTLS.Running — cert-manager, cert-manager-cainjector, cert-manager-webhook.
certificates.cert-manager.io, clusterissuers.cert-manager.io, issuers.cert-manager.io.
אם נכשל: פודים ב-CrashLoopBackOff בדרך כלל פירושו ש-CRDs לא התקנו. הרץ מחדש עם --set crds.install=true. אם פודי webhook נכשלים readiness, חכה 30 שניות ובדוק שוב — זה יכול לקחת רגע להתחיל.
1.2 התקן את Traefik — בקר Ingest ציבורי
מופע Traefik זה טוען את תעבורת מכללים על LoadBalancer חיצוני. זה מסיים TLS וכופה mTLS (אימות תעודת לקוח) בנקודת הסיום של ספיגה.Running.
kubectl describe pod -n traefik-public <pod-name> לשגיאות pull תמונה או אילוצי משאבים.
1.3 התקן את Traefik — בקר לוח בקרה
מופע Traefik זה מגדיש את לוח הבקרה ב-LoadBalancer ייעודי, מוגבל על ידי רשימת IP.שני מנגנוני רשימה הלבנה משלחים עבור מופע זה. מדריך זה משתמש ב-לפני ההתקנה, ערוך אתvalues-dashboard.yaml, המגביל גישה עם שדהservice.loadBalancerSourceRangesהניידים. מקבילvalues-internal.yamlגם מסופק לסביבות AWS המעדיפות את הביאורservice.beta.kubernetes.io/aws-load-balancer-source-rangesבמקום. בחר אחד והשתמש בו בעקביות; השלבים להלן מניחיםvalues-dashboard.yaml.
third-party/traefik/values-dashboard.yaml כדי להגדיר את כתובות ה-IP המותרות. השדה loadBalancerSourceRanges שולט על אילו IP יכולים להגיע ללוח הבקרה. כברירת מחדל הוא מוגדר ל-0.0.0.0/0 (כל ה-IP); הגבל אותו ל-VPN, משרד או ה-IPs של יציאה ידועות שלך.
הוסף IP יחיד לרשימה הלבנה
הוסף כמה IP לרשימה הלבנה
הוסף ערך אחד ל-IP או בלוק CIDR. סיומת/32 תואמת כתובת IPv4 יחידה; בלוק CIDR (למשל /24) תואמת טווח. אתה יכול לערבב IP בודדים וטווחים בחופשיות:
- שמור ערך אחד לכל שורה והוסף הערה קצרה
#המזהה כל בעל IP או תכלית; זה מה שמפעילים עתידיים משתמשים בו כדי להחליט אם ערך עדיין דרוש. - השתמש תמיד בסימן CIDR. IP חשוף כמו
203.0.113.10נדחה על ידי ספק הענן; השתמש ב-203.0.113.10/32. - עבור טווחי IPv6, השתמש בערך שקול
/128(כתובת יחידה) או CIDR גדול יותר, למשל2001:db8::1/128. לא כל ספקי עננן תומכים בטווחי מקור IPv6; בדוק את תיעוד LoadBalancer של ספק שלך. - הרשימה היא OR: התעבורה מותרת אם המקור תואם כל ערך.
helm install להלן. אם הבקר כבר התקנו, הרץ helm upgrade עם אותות הדגלים, או patch את ה-Service בזמן ריצה (קטע הבא).
עדכן את רשימת ההלבנה בזמן ריצה
אתה יכול לשנות את ה-IPs המותרים ללא שדרוג Helm על ידי patching Service ישירות. ה-patch מחליף את כל הרשימה; הכלול תמיד כל IP שברצונך לשמור, לא רק את החדש. כדי להחליף את הרשימה בסט IP חדש:
Patches בזמן ריצה אינם מתמשכים חזרה ל-values-dashboard.yaml. כדי לשמור את השינוי על פני שדרוגי Helm עתידיים, עדכן גם את קובץ הערכים ותחייב אותו.
ואז התקן:
Running.
1.4 חכה ל-LoadBalancers
שני מופעי Traefik צריכים IP חיצוניים לפני המשך.EXTERNAL-IP (לא <pending>).
אם עדיין ממתין, צפה להקצאה:
Ctrl+C ברגע שה-IP מופיע. הקצאת IP בדרך כלל לוקחת 2-5 דקות.
אם נכשל: <pending> אחרי 10 דקות בדרך כלל פירושו שספק הענן לא יכול להתקין LoadBalancer. בדוק: תגי תת-רשת (EKS דורש kubernetes.io/role/elb), תצורת VPC, מכסות שירות, וכי ההערה הנכונה של LB פנימי מוגדרת לדוגמה הפנימית.
שלב 2 — יצירת סודות (~10 דקות)
כל הסודות נוצרים באופן ידני לפני פריסת היישום. זה מבטיח שערכים רגישים אינם מופיעים בקבצי מניפסט.2.1 יצור את ה-namespace
Active.
2.2 סוד pull תמונה
סוד זה מאומת עםghcr.io כדי לשלוף את תמונות המיכל של AgentEye. ראה enterprise-docs/github-token.md כיצד לייצר את ה-PAT שלך.
kubernetes.io/dockerconfigjson.
בדוק את זה (עמוק) — אימות שהטוקן יכול בעצם לשלוף תמונות:
השתמש בתג תמונת server המעוגן בקובץ kustomization.yaml של overlay שלך (כרגע v0.0.1-beta.48 גם בשכבה acme המלאה וגם בפריסה בסיס). החלף את התג למטה לזה שאתה פורס כך בדיקה זו לא תסחוף על פני הוצאות.
ok מודפס ברישומים.
אם נכשל: ErrImagePull או 401 Unauthorized פירושו ש-PAT אינו תקף או חסר read:packages היקף. בדוק מחדש enterprise-docs/github-token.md.
2.3 אישורי PostgreSQL
חשוב: אנחנו משתמשים ב--hex(לא-base64) כדי ליצור את הסיסמה. פלט Base64 יכול להכיל+,/ו-=אשר שוברים את מחרוזת חיבורDATABASE_URL. ראה enterprise-docs/troubleshooting.md לפרטים.
שמור POSTGRES_PASSWORD במנהל הסודות שלך מיד. תצטרך אותו אם אי פעם תשחזר מגיבוי או תתחבר ישירות למסד הנתונים.
בדוק את זה:
48 (24 בתים hex = 48 תווים).
2.4 מפתח API מנהל
שמור ADMIN_KEY במנהל הסודות שלך מיד.
בדוק את זה:
2.5 תצורת אימות (כניסת לוח בקרה)
לוח הבקרה משתמש ב-OTP של דוא”ל + ל-כניסת משתמש. ללא סוד זה השרת עדיין מתחיל ונתיבADMIN_KEY API שמור עובד, אך לא משתמש יכול להיכנס דרך ממשק ה-משתמש.
כל המפתחות מיוחס כ-optional: true במניפסט הבסיס, כך סודות חלקיים (או ללא סוד בכלל) בסדר; השרת חוזר לערכי ברירת המחדל המתועדים. פריסת הכל לסוד agenteye-auth אחד משמרת את פני המשטח של auth ניתנת להחלפה במקום אחד.
| מפתח | תכלית |
|---|---|
ADMIN_EMAIL | משתמש מנהל בתחום. Upserted בכל הפעלה עם הרשאות מלאות והוגן מחיקה/עריכת הרשאות דרך לוח הבקרה. ללא זה, לא מנהל זורע וכניסה ראשונה בלתי אפשרית. |
ALLOWED_EMAILS | רשימת הלבנה מופרדת בפסיקים. תומך כתובות מדויקות (user@example.com) וכללי תחום (*@example.com). ללא זה, לא משתמש יכול להיכנס או להיווצר. |
SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD, SMTP_FROM | ממסר SMTP לשליחת קודי OTP. אם SMTP_HOST אינו מוגדר, קודי OTP מוגדלים ל-stdout של השרת במקום שליחה בדוא”ל (שימושי לבדיקות smoke ראשונות-בוט). ספק את כל המפתחות של SMTP ביחד להפקת דוא”ל אמיתית. |
SMTP_TLS | אחד מ-starttls (ברירת מחדל), tls, או none. |
DEFAULT_ORG_NAME, DEFAULT_ORG_SLUG | אופציונלי. תן למארגנות default המובנות שם תצוגה ידידותי וחלקאי URL כך זה חי בדוגמה /acme במקום /default. הוחל בבוט ראשון בלבד; ברגע שתשנה את שם המארגנות עם agenteye-orgctl org rename (ראה §7.6) אלה יתעלמו. ה-slug חייב להיות 1-40 alphanumerics קטנים עם מקצועות פנימיים יחידים. השאר שניהם לא מוגדרים כדי לשמור על default גנרי. |
שמור את אישורי SMTP במנהל הסודות שלך.בדוק את זה:
2.6 מפתח בידוד מארגנות מרובות דיירות (אופציונלי)
דלג זה לפריסה בעלת דיירת אחת; השרת רץ על בסיס dev בנוי שכן ומגדיש את המארגנותdefault בסדר. לפני שתיצור מארגנות שנייה, קבע חזק, ערך ORG_CH_SECRET יציב: סיסמת ClickHouse של כל מארגנות נגזרת כ-HMAC(ORG_CH_SECRET, org_id), אז ה-dev בנוי בציבור ידוע ייתן אישורים מובנעים הנגזרים לפי מארגנות. פקודת agenteye-orgctl org create (ראה §7.6 מארגנויות Provision) מסרב לרוץ בזמן שהשרת עדיין ב-dev בנוי ברירת מחדל.
secretKeyRef אופציונלי, אז אשכול בעל דיירת אחד שלעולם לא יוצר זה עדיין בוטס בדרך כלל. שמור את הערך יציב וזהה על פני כל העתקים; סיבוב זה מבטל סיסמת ClickHouse הנגזרת של כל מארגנות עד פעם הבוטה ההבאה תשלים מחדש (יציאה מחדש גלגלת עם הערך עקבי במקום כל מקום מרפא זה). ראה deploy/base/server/secret.example.yaml.
שמור ORG_CH_SECRET במנהל הסודות שלך וא”ל לסובב אותו בזלזול.
2.7 אימות כל הסודות
agenteye-admin-key, agenteye-auth, agenteye-image-pull, agenteye-postgres) חייבים להיות נוכחים לפני המשך. agenteye-org-ch-secret נדרש רק לפריסות מרובות דיירות (ראה §2.6).
שלב 3 — פרוס את היישום (~5 דקות)
3.1 הגדר את שמות המשתמשים הציבוריים
cert-manager צריך את שמות המשתמשים של ספיגה ולוח בקרה לפני שזה יכול לבקש תעודות Let’s Encrypt שלהם. העתק את התבנית והגדר שניהם:domain.env הוא gitignored; זה נשאר מקומי לכל פריסה. כישור kustomize נכשל בקול אם כל מפתח חסר.
DNS חייב להיפתר תחילה. אתה לא צריך להצביע DNS בעדיין בעת LBs (הם לא קיימים עד שלב 1.2 שלם), אך הנפקת ACME בשלב 3.2 יישנה עד כל כתובת המשתמש מיפוי ל-LoadBalancer שלה. אתה יכול להגדיר DNS עכשיו (באמצעות שם המשתמשים של הלוח המחזיקים בשלב 1.4) או להמשיך והוסף את הרשומות בשלב 4.
3.2 החל מניפסטים
החל את הבסיס ישירות לדוגמה רטובה, או overlay אם חיתכת אחד לסביבה זו (overlays פשוט תגי תמונה pin, משתנים env, ומגבלות משאבים; הם יורשים מינויי תעודות של הבסיס ותיתור):3.3 חכה לפודים
agent (עוזר AI) ו-redis באים בצדם; העוזר נשאר לא פעיל עד שתספק את נקודת הקצה שלו של LLM (ראה enterprise-docs/assistant.md), Redis היא מטמון best-effort, אז לא צריך שניים להיות Ready עבור הפלטפורמה לגדיש תעבורה.
בדוק את זה:
agent ו-redis גם מופיעים והשגות Running):
| סטטוס פוד | סיבה סבירה | פקודת Debug |
|---|---|---|
ImagePullBackOff | סוד pull תמונה גרוע או PAT | kubectl describe pod <name> -n agenteye |
CrashLoopBackOff | משתנים env גרועים (למשל DATABASE_URL) | kubectl logs <name> -n agenteye |
Pending | CPU/זיכרון בלתי מספיק או אין צמתים | kubectl describe pod <name> -n agenteye (בדוק אירועים) |
3.4 אימות אחסון
Bound:
| PVC | קיבולת | גב |
|---|---|---|
postgres-data-postgres-0 | 50Gi | אחסן PostgreSQL יחסי/metadata |
clickhouse-data-clickhouse-0 | 100Gi | אחסן ClickHouse אירועים + הערכות אנליטיקה |
redis-data-redis-0 (1Gi) גם מופיע עבור המטמון אופציונלי.
אם נכשל: Pending פירושו שום StorageClass יכול להתקין את הנפח. בדוק kubectl get storageclass וודא ברירת מחדל קיימת. לייצור, חפץ את נפח ClickHouse ל-StorageClass SSD מהיר (למשל gp3 ב-AWS, pd-ssd ב-GCP); תפוקת תופעה סובלת על דיסקים איטיים.
3.5 תעודות אימות
Ready: True:
| שם | מנפיק | תכלית |
|---|---|---|
mtls-ca | selfsigned | CA פרטי לנפיקת תעודות לקוח mTLS (תוקף 10 שנים) |
ingest-tls | letsencrypt-prod | תעודת TLS ציבורית עבור נקודת הסיום של ספיגה (90 יום, חידוש אוטומטי) |
dashboard-tls | letsencrypt-prod | תעודת TLS ציבורית עבור לוח הבקרה (90 יום, חידוש אוטומטי) |
ingest-tls או dashboard-tls אינו Ready:
kubectl describe certificate <name> -n agenteye וקרא את האירועים. הסיבות הנפוצות:
- DNS עדיין לא מצביע בעדיין בלוח הבקרה. Let’s Encrypt מיפוי כתובת המשתמש והכה בפורט 80 כדי לאמת —
INGEST_DOMAINחייב מיפוי ל-LB ציבורי,DASHBOARD_DOMAINל-LB לוח הבקרה. עד CNAME/Alias מתפשט, ההזמנה נשארpending. ברגע DNS נכון, cert-manager משנה באופן אוטומטי (אין צורך למחוק את Certificate). - כתובת משתמש לא החלפה. אם
dnsNamesעדיין קוראINGEST_DOMAIN_PLACEHOLDER/DASHBOARD_DOMAIN_PLACEHOLDER, דילגת על שלב 3.1 — יצורbase/certificates/domain.envוההחל מחדש. - לוח הבקרה Traefik לא יכול לגדיש את אתגר (
dashboard-tlsבלבד). מופע לוח בקרה Traefik חייב להתקנו עם קובץ ערכים משלוח (שלב 1.2), המאפשר ספק Ingress כעמית אשר גדיש אתגר HTTP-01 של cert-manager. דוגמה התקנו ללא זה משאיר אתגר ללא מסלול וההזמנהpendingלעולם.
mtls-ca אינו Ready: cert-manager עצמו לא בריא. בדוק מחדש פודי cert-manager משלב 1.1.
3.6 אימות CronJobs
| שם | לוח זמנים | תכלית |
|---|---|---|
agenteye-backup | 0 3 * * * | יומי Postgres + ClickHouse גיבוי ב-03:00 UTC |
cert-renewal-check | 0 3,15 * * * | התראות תפוגת תעודות ב-03:00 ו-15:00 UTC |
3.7 אימות השרת הופעל בהצלחה
POSTGRES_PASSWORD מכיל תווים בעלי URL לא בטוחים שוברים את DATABASE_URL. ראה enterprise-docs/troubleshooting.md.
3.8 אימות לוח בקרה מחובר לשרת
Ready בפלט ללא ECONNREFUSED או שגיאות דומות.
אם נכשל: בדוק ש-server Service קיים (kubectl get svc server -n agenteye) וכי AGENTEYE_SERVER_URL מוגדר ל-http://server:8080 בפריסת לוח הבקרה.
שלב 4 — גישה ברשת (~5 דקות)
4.1 קחו כתובות LoadBalancer
ב-AWS EKS, LoadBalancers חוזרים שם משתמש במקום IP. החלףבדוק את זה:.ipעם.hostnameבפקודות למעלה.
4.2 הצב DNS בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיין בעדיים LoadBalancers בנקודות הסיום שלהם — INGEST_DOMAIN לבקר Traefik ציבורי LB, DASHBOARD_DOMAIN לבקר Traefik לוח בקרה LB:
- AWS Route 53: רשומת
AעםAlias = Yes, קביעת mục tiêu = LB שם משתמש. אל תשתמש ב-A פשוט → IP; ELB IPs מסתובבות. - ספק אחר:
CNAMEמכתובת המשתמש ל-LB שם משתמש.
$PUBLIC_IP ו-$INTERNAL_IP בהתאמה (או, ב-EKS, לפתור ל-*.elb.amazonaws.com אותו בעצם אם).
ברגע DNS מיפוי, cert-manager מסיים ההזמנות ACME המנוהלות מ-3.5 בדקה אחת. הרץ מחדש `kubectl get
