דלג לתוכן הראשי
מדריך זה מפרוס את ערימת AgentEye המלאה על אשכול Kubernetes ייעודי:
  • 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
  • צג חידוש תעודות — התראות כאשר תעודות לקוח קרובות לתפוגה
זמן משוער: 60-90 דקות לפריסה ראשונה. עבור מודל הפריסה המנוהל בו Exosphere מטפלת בכל זה בשמך, ראה enterprise-docs/managed-deployment.md.

דרישות מוקדמות

הרץ כל פקודת אימות לפני התחלה. כל בדיקה חייבת להיות מוצלחת.
דרישהמינימוםפקודת אימותצפוי
אשכול Kubernetes1.27+kubectl versionServer Version >= v1.27
Kustomize (מלאי עם kubectl)Kustomize v1.14+ (משלוח בתוך kubectl 1.27+)kubectl kustomize --helpהדפסת טקסט שימוש
Helmv3helm versionVersion:"v3.x.x"
cluster-admin RBACkubectl auth can-i create namespacesyes
StorageClass ברירת המחדלkubectl get storageclassלפחות שורה אחת מסומנת (default)
תמיכת LoadBalancerתלוי בעננן (EKS, GKE, AKS כולם תומכים בברירת מחדל)
GitHub PATecho $AGENTEYE_TOKENלא ריק (ראה enterprise-docs/github-token.md)
opensslopenssl versionOpenSSL 1.x או 3.x
דלי אחסון בעננןל-PostgreSQL + ClickHouse גיבויים (S3, GCS, או Azure Blob)
גודל אשכול: מינימום 3 צמתים, 4 vCPU / 8 GB RAM כל אחד. ראה enterprise-docs/managed-deployment.md לדרישות מלאות.

הרץ את כל הבדיקות בבת אחת

צורת הפריסה

נקודת הסיום של ספיגה מוגשת על כתובת שאתה שולט בה (למשל 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 שלך. מבנה ספריה:
הבסיס מכיל כל משאב הנדרש לפריסה מלאה, כולל תעודות Let’s Encrypt לשני שמות המשתמשים הציבוריים שתעבור תצורה בשלב 3.1. עקיפה תיקע את הבסיס לסביבה ספציפית (למשל תגי תמונה מותאמים, מגבלות משאבים, חיווט env). ספריית third-party מכילה קובצי ערכי Helm עבור תשתיות חיצוניות.
ניטור בריאות (אופציונלי): הבדיקה הערות של השרת כבר משקפת בריאות 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.
בדוק את זה:
צפוי: 3 פודים הכל Runningcert-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 (אימות תעודת לקוח) בנקודת הסיום של ספיגה.
בדוק את זה:
צפוי: 1 פוד Running.
צפוי: ה-IngressClass קיים (זה לא מחלקת ברירת המחדל). אם נכשל: בדוק 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 חדש:
כדי להוסיף בבטחה IP מבלי לאבד ערכים קיימים, קרא תחילה את הרשימה הנוכחית, ואז תיקע עם הסט המשולב:
Patches בזמן ריצה אינם מתמשכים חזרה ל-values-dashboard.yaml. כדי לשמור את השינוי על פני שדרוגי Helm עתידיים, עדכן גם את קובץ הערכים ותחייב אותו.
ואז התקן:
בדוק את זה:
צפוי: 1 פוד Running.
צפוי: ה-IngressClass קיים.

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 מנהל

המפתח של המנהל הוא אישור ההתחלה. השרת upserts אותו עם הרשאות מלאות בכל הפעלה. השתמש בו כדי ליצור מפתחות מכללים בעלי היקף בשלב 7. ראה enterprise-docs/api-keys.md עבור מודל ההרשאות המלא.
שמור 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, ומגבלות משאבים; הם יורשים מינויי תעודות של הבסיס ותיתור):
overlay כולל את הבסיס באופן אוטומטי; החל אחד, לא שניהם.

3.3 חכה לפודים

ההמתנה מוגבלת לפודי מישור נתונים ליבה. הפודים אופציוניים agent (עוזר AI) ו-redis באים בצדם; העוזר נשאר לא פעיל עד שתספק את נקודת הקצה שלו של LLM (ראה enterprise-docs/assistant.md), Redis היא מטמון best-effort, אז לא צריך שניים להיות Ready עבור הפלטפורמה לגדיש תעבורה. בדוק את זה:
צפוי (הפודים אופציוניים agent ו-redis גם מופיעים והשגות Running):
אם נכשל:
סטטוס פודסיבה סבירהפקודת Debug
ImagePullBackOffסוד pull תמונה גרוע או PATkubectl describe pod <name> -n agenteye
CrashLoopBackOffמשתנים env גרועים (למשל DATABASE_URL)kubectl logs <name> -n agenteye
PendingCPU/זיכרון בלתי מספיק או אין צמתיםkubectl describe pod <name> -n agenteye (בדוק אירועים)

3.4 אימות אחסון

צפוי, שניהם עם סטטוס Bound:
PVCקיבולתגב
postgres-data-postgres-050Giאחסן PostgreSQL יחסי/metadata
clickhouse-data-clickhouse-0100Giאחסן ClickHouse אירועים + הערכות אנליטיקה
PVC redis-data-redis-0 (1Gi) גם מופיע עבור המטמון אופציונלי. אם נכשל: Pending פירושו שום StorageClass יכול להתקין את הנפח. בדוק kubectl get storageclass וודא ברירת מחדל קיימת. לייצור, חפץ את נפח ClickHouse ל-StorageClass SSD מהיר (למשל gp3 ב-AWS, pd-ssd ב-GCP); תפוקת תופעה סובלת על דיסקים איטיים.

3.5 תעודות אימות

צפוי: 3 תעודות, הכל Ready: True:
שםמנפיקתכלית
mtls-caselfsignedCA פרטי לנפיקת תעודות לקוח mTLS (תוקף 10 שנים)
ingest-tlsletsencrypt-prodתעודת TLS ציבורית עבור נקודת הסיום של ספיגה (90 יום, חידוש אוטומטי)
dashboard-tlsletsencrypt-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-backup0 3 * * *יומי Postgres + ClickHouse גיבוי ב-03:00 UTC
cert-renewal-check0 3,15 * * *התראות תפוגת תעודות ב-03:00 ו-15:00 UTC

3.7 אימות השרת הופעל בהצלחה

בדוק את זה: חפש קו הפעלה המציע השרת מקשיב בפורט 8080. לא צריך להיות שגיאות חיבור בסיס נתונים (השרת דורש גם PostgreSQL וגם ClickHouse להיות ניתנים להשגה לפני זה דו”ח Ready). אם נכשל: הסיבה הנפוצה ביותר היא 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