מיפוי דומיינים מותאמים אישית

הגדרת דומיינים מותאמים אישית לשימוש בגישה לשירותי Knative Serving. אפשר למפות דומיין מותאם אישית אחד או יותר לשירות ספציפי, או למפות דומיין יחיד לאשכול שכל השירותים משתמשים בו. מיפוי הדומיין המותאם אישית יכול להיות דומיין הבסיס כמו your-domain.com, או תת-דומיין כמו your-subdomain.your-domain.com.

כברירת מחדל, השירותים שפורסים באשכולות של Knative Serving מוגדרים לדומיין הבסיסי nip.io. כך תוכלו לבדוק מיד את השירותים שלכם בכתובת URL כמו:

http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io

מידע נוסף על דומיינים לבדיקה

לפני שמתחילים

מיפוי של דומיין מותאם אישית

אפשר להשתמש במסוף Google Cloud או בכלי שורת הפקודה כדי למפות את הדומיין המותאם אישית.

באופן כללי, כדי להגדיר דומיין מותאם אישית:

  1. אופציונלי: שומרים את כתובת ה-IP של מאזן העומסים.
  2. ממפים את השירותים או את האשכול לדומיין המותאם אישית ב-Knative serving.
  3. מעדכנים את רשומות ה-DNS ברשם הדומיינים.

שמירת כתובת ה-IP של מאזן העומסים

כש-Knative serving מותקן, בקר ה-Ingress של Istio יוצר מאזן עומסים עם כתובת IP זמינה.

בהתאם לאשכול GKE, יכול להיות שתצטרכו לשריין את כתובת ה-IP של מאזן העומסים עבור בקר הכניסה של Istio:

מחוץ לארגון Google Cloud
כדי לדעת איך כתובות ה-IP מנוהלות ולקבוע אם כתובת ה-IP של איזון העומסים היא סטטית, צריך לעיין במסמכי התיעוד של הסביבה שבה מריצים את אשכול GKE. אפשר גם לעיין בדפי ההגדרות של אשכול GKE. לדוגמה, יכול להיות שכבר שריינתם את כתובות ה-IP האלה, בהתאם לאופן שבו הגדרתם את איזון העומסים ב-Google Distributed Cloud.
‫ Google Cloudמופעל

כדי לוודא שכתובת ה-IP החיצונית תישאר זהה אם שירות ה-Ingress יימחק, צריך לשמור את כתובת ה-IP החיצונית של מאזן העומסים. בהתאם להגדרת האשכול, כתובת ה-IP זמינה חיצונית או פנימית בלבד, למשל, אשכולות פרטיים.

מאזני עומסים פנימיים בתאריך Google Cloud
בקישור הבא מוסבר איך לשמור את כתובת ה-IP של איזון העומסים הפנימי: שמירת כתובת IP פנימית סטטית
מאזני עומסים חיצוניים ב- Google Cloud
כדי לשמור את כתובת ה-IP של מאזן העומסים החיצוני:
  1. מקבלים את כתובת ה-IP של מאזן העומסים:

    המסוף

    כדי לקבל את כתובת ה-IP החיצונית של מאזן העומסים ממסוף Google Cloud :
    1. נכנסים לדף GKE במסוף Google Cloud :
      כניסה ל-GKE
    2. לוחצים על Services and ingress (שירותים ותעבורת נכנסת).
    3. מזהים את השירות שמשמש כ-ingress של Istio באשכול. הסוג של השירות יהיה מאזן עומסים חיצוני, והשם יהיה istio-ingressgateway.
    4. אחרי שמוצאים את שירות הכניסה של Istio באשכול, מעתיקים את נקודת הקצה שלו. זו תהיה כתובת ה-IP ללא מספר היציאה. לדוגמה, יכול להיות שתראו את 00.000.000.000:11 ברשימה כנקודת קצה, אבל תצטרכו להעתיק רק את 00.000.000.000.

    kubectl

    כדי לקבל את כתובת ה-IP החיצונית של מאזן העומסים, מריצים את הפקודה הבאה:

    kubectl get svc istio-ingressgateway -n ASM-INGRESS-NAMESPACE

    מחליפים את ASM-INGRESS-NAMESPACE במרחב השמות שבו נמצאת הכניסה של Cloud Service Mesh. מציינים istio-system אם התקנתם את Cloud Service Mesh באמצעות הגדרת ברירת המחדל שלו.

    הפלט שיתקבל ייראה כך:

    NAME                   TYPE           CLUSTER-IP     EXTERNAL-IP  PORT(S)
    istio-ingressgateway   LoadBalancer   XX.XX.XXX.XX   pending      80:32380/TCP,443:32390/TCP,32400:32400/TCP

    כאשר הערך EXTERNAL-IP הוא כתובת ה-IP החיצונית של מאזן העומסים.

  2. שומרים את כתובת ה-IP ככתובת IP סטטית:

    gcloud compute addresses create ADDRESS-NAME --addresses EXTERNAL-IP --region REGION

    מחליפים את:

    • ADDRESS-NAME בשם שרוצים לתת לכתובת ה-IP הסטטית.
    • EXTERNAL-IP בכתובת ה-IP החיצונית של מאזן העומסים שקיבלתם בשלב הקודם.
    • REGION עם האזור שבו נמצא האשכול.

אחרי שמקבלים את כתובת ה-IP של מאזן העומסים, אפשר להשתמש בה כדי למפות את הדומיין המותאם אישית:

שירותי מיפוי

אפשר לבחור אחת מהשיטות הבאות כדי למפות את הדומיין המותאם אישית לשירות Knative serving. אפשר למפות כל שירות בנפרד לכמה דומיינים.

המסוף

  1. פותחים את הדף 'מיפוי דומיינים' במסוף Google Cloud :

    מעבר למיפוי דומיינים

    שימו לב: אם חלון התצוגה קטן מדי, הלחצן 'מיפוי דומיינים בהתאמה אישית' לא מוצג, ותצטרכו ללחוץ על סמל האליפסה האנכית (3 נקודות) בפינה השמאלית של הדף.

  2. לוחצים על הוספת מיפוי ובוחרים באפשרות הוספת מיפוי של דומיין לשירות כדי למפות דומיין לשירות מסוים. אפשר למפות כמה דומיינים לכל שירות.

  3. בתפריט הנפתח בטופס Add Mapping, בוחרים את השירות שאליו רוצים למפות את הדומיין המותאם אישית:

  4. כאן מזינים את שם הדומיין. לדוגמה, your-domain.com או subdomain.your-domain.com. דרישות לגבי דומיין:

    • אין תמיכה במיפוי נתיב בסיסי. המונח נתיב בסיס מתייחס לשם הנתיב בכתובת ה-URL שמופיע אחרי שם הדומיין. לדוגמה, users היא נתיב הבסיס של your-domain.com/users. מילוי בקשות מסוג Knative מאפשר למפות דומיין רק ל-/, ולא לנתיב בסיס ספציפי. לכן, כל ניתוב נתיבים צריך להתבצע באמצעות נתב בתוך הקונטיינר של השירות או באמצעות אירוח ב-Firebase.
    • אי אפשר למפות את הדומיין לתת-דומיין שתואם לכתובת ה-URL של השירותים שלכם. כתובות URL לשירות מוגדרות כ-http://{service}.{namespace}.{your-domain.com}, ולכן אם יש לכם שירות ב-test.default.your-domain.com, אסור ליצור מיפוי דומיין לאותו תת-דומיין test.default.your-domain.com.

  5. לוחצים על Continue.

  6. מעדכנים את רשומות ה-DNS באתר של רשם הדומיין באמצעות רשומות ה-DNS שמוצגות בשלב האחרון. אפשר להציג את הרשומות בכל שלב. לשם כך, לוחצים על רשומות DNS בתפריט הפעולות '…' של מיפוי דומיין.

  7. לוחצים על סיום.

gcloud

  1. ממפים את השירות לדומיין המותאם אישית:

    gcloud run domain-mappings create --service SERVICE --domain DOMAIN

    מחליפים את:

    • SERVICE מחליפים בשם השירות.
    • DOMAIN בדומיין המותאם אישית שלכם. לדוגמה, your-domain.com או subdomain.your-domain.com. דרישות לגבי הדומיין:
      • אין תמיכה במיפוי נתיב בסיסי. המונח נתיב בסיס מתייחס לשם הנתיב בכתובת ה-URL שמופיע אחרי שם הדומיין. לדוגמה, users היא נתיב הבסיס של your-domain.com/users. מילוי בקשות מסוג Knative מאפשר למפות דומיין רק ל-/, ולא לנתיב בסיס ספציפי. לכן, כל ניתוב נתיבים צריך להתבצע באמצעות נתב בתוך הקונטיינר של השירות או באמצעות אירוח ב-Firebase.
      • אי אפשר למפות את הדומיין לתת-דומיין שתואם לכתובת ה-URL של השירותים שלכם. כתובות URL לשירות מוגדרות כ-http://{service}.{namespace}.{your-domain.com}, ולכן אם יש לכם שירות ב-test.default.your-domain.com, אסור ליצור מיפוי דומיין לאותו תת-דומיין test.default.your-domain.com.

עכשיו, אחרי שמיפיתם את הדומיין המותאם אישית ל-Knative serving, אתם צריכים להוסיף רשומות DNS לרשם הדומיינים.

מיפוי אשכולות

כדי למפות את הדומיין המותאם אישית לאשכול, בוחרים אחת מהשיטות הבאות:

המסוף

  1. פותחים את הדף 'מיפוי דומיינים' במסוף Google Cloud :

    מעבר למיפוי דומיינים

    שימו לב: אם חלון התצוגה קטן מדי, הלחצן 'מיפוי דומיינים בהתאמה אישית' לא מוצג, ותצטרכו ללחוץ על סמל האליפסה האנכית (3 נקודות) בפינה השמאלית של הדף.

  2. לוחצים על Add Mapping (הוספת מיפוי) ובוחרים באפשרות Add default domain (הוספת דומיין ברירת מחדל) כדי למפות דומיין לכל השירותים באשכול. כברירת מחדל, שירותים חדשים שפורסים משתמשים בדומיין הממופה.

  3. מסמנים את תיבת הסימון כדי להחיל את מיפוי הדומיין החדש על כל השירותים הקיימים באשכול.

  4. בתפריט הנפתח בטופס Add Mapping, בוחרים את האשכול שאליו רוצים למפות את הדומיין המותאם אישית:

  5. כאן מזינים את שם הדומיין. לדוגמה, your-domain.com או subdomain.your-domain.com. דרישות לגבי דומיין:

    • אין תמיכה במיפוי נתיב בסיסי. המונח נתיב בסיס מתייחס לשם הנתיב בכתובת ה-URL שמופיע אחרי שם הדומיין. לדוגמה, users היא נתיב הבסיס של your-domain.com/users. מילוי בקשות מסוג Knative מאפשר למפות דומיין רק ל-/, ולא לנתיב בסיס ספציפי. לכן, כל ניתוב נתיבים צריך להתבצע באמצעות נתב בתוך הקונטיינר של השירות או באמצעות אירוח ב-Firebase.
    • אי אפשר למפות את הדומיין לתת-דומיין שתואם לכתובת ה-URL של השירותים שלכם. כתובות URL לשירות מוגדרות כ-http://{service}.{namespace}.{your-domain.com}, ולכן אם יש לכם שירות ב-test.default.your-domain.com, אסור ליצור מיפוי דומיין לאותו תת-דומיין test.default.your-domain.com.

  6. לוחצים על Continue.

  7. מעדכנים את רשומות ה-DNS באתר של רשם הדומיין באמצעות רשומות ה-DNS שמוצגות בשלב האחרון. אפשר להציג את הרשומות בכל שלב. לשם כך, לוחצים על רשומות DNS בתפריט הפעולות '…' של מיפוי דומיין.

  8. לוחצים על סיום.

kubectl

  1. מריצים את הפקודה הבאה כדי להסיר את דומיין הבסיס הקיים מ-config-domain ConfigMap ולהחליף אותו בדומיין המותאם אישית:

    kubectl patch configmap config-domain --namespace knative-serving --patch \
    '{"data": {"nip.io": null, "DOMAIN": ""}}'

    מחליפים את DOMAIN בדומיין המותאם אישית. לדוגמה, your-domain.com או subdomain.your-domain.com. דרישות לגבי דומיין:

    • אין תמיכה במיפוי נתיב בסיסי. המונח נתיב בסיס מתייחס לשם הנתיב בכתובת ה-URL שמופיע אחרי שם הדומיין. לדוגמה, users היא נתיב הבסיס של your-domain.com/users. מילוי בקשות מסוג Knative מאפשר למפות דומיין רק ל-/, ולא לנתיב בסיס ספציפי. לכן, כל ניתוב נתיבים צריך להתבצע באמצעות נתב בתוך הקונטיינר של השירות או באמצעות אירוח ב-Firebase.
    • אי אפשר למפות את הדומיין לתת-דומיין שתואם לכתובת ה-URL של השירותים שלכם. כתובות URL לשירות מוגדרות כ-http://{service}.{namespace}.{your-domain.com}, לכן אם יש לכם שירות ב-test.default.your-domain.com, אסור ליצור מיפוי דומיין לאותו תת-דומיין test.default.your-domain.com.

עכשיו, אחרי שמיפיתם את הדומיין המותאם אישית ל-Knative serving, אתם צריכים להוסיף רשומות DNS לרשם הדומיינים.

הוספה של רשומות ה-DNS ברשם הדומיינים

אחרי שמיפיתם את השירות לדומיין בהתאמה אישית ב-Knative serving, צריך לעדכן את רשומות ה-DNS אצל רשם הדומיינים. לנוחיותכם, Knative serving יוצרת ומציגה את רשומות ה-DNS שצריך להזין. כדי שהמיפוי ייכנס לתוקף, צריך להוסיף את הרשומות האלה שמפנות לשירות Knative serving אצל רשם הדומיינים.

אם אתם משתמשים ב-Cloud DNS כספק ה-DNS, תוכלו לעיין במאמר בנושא הוספת רשומה.

  1. מאחזרים את פרטי רשומת ה-DNS של מיפויי הדומיין באמצעות:

    המסוף

    1. עוברים לדף מיפויי הדומיינים של Knative serving:

      מעבר למיפוי דומיינים

    2. לוחצים על סמל האליפסה האנכית (3 נקודות) משמאל לשירות ואז על רשומות DNS כדי להציג את כל רשומות ה-DNS:

    gcloud

    gcloud run domain-mappings describe --domain DOMAIN

    מחליפים את DOMAIN בדומיין המותאם אישית. לדוגמה, your-domain.com או subdomain.your-domain.com.

    צריך את כל הרשומות שמוחזרות בכותרת resourceRecords.

  2. מתחברים לחשבון ברשם הדומיין ופותחים את דף ההגדרות של ה-DNS.

  3. מאתרים את הקטע של רשומות המארח בדף ההגדרות של הדומיין, ואז מוסיפים כל אחת מרשומות המשאבים שקיבלתם כשמיפיתם את הדומיין לשירות Knative serving.

  4. כשמוסיפים כל אחת מרשומות ה-DNS שלמעלה לחשבון אצל ספק ה-DNS:

    • בוחרים את הסוג שמוחזר ברשומת ה-DNS בשלב הקודם: A, או AAAA, או CNAME.
    • משתמשים בשם www למיפוי אל www.your-domain.com.
    • משתמשים בשם @ כדי למפות את your-domain.com.
    • משתמשים בתו כללי לחיפוש * כדי למפות ל-*.your-domain.com.
  5. שומרים את השינויים בדף הגדרות ה-DNS בחשבון של הדומיין. ברוב המקרים, השינויים האלה נכנסים לתוקף תוך כמה דקות, אבל במקרים מסוימים יכול להיות שיחלפו כמה שעות, בהתאם לרשם ולזמן החיים (TTL) של רשומות DNS קודמות בדומיין. אפשר להשתמש בכלי dig, כמו הגרסה הזו אונליין של dig, כדי לוודא שרשומות ה-DNS עודכנו בהצלחה.

  6. כדי לבדוק שההעברה הצליחה, עוברים לשירות בכתובת ה-URL החדשה שלו, למשל https://www.your-domain.com. שימו לב: יכול להיות שיעברו כמה דקות עד שאישור SSL/TLS המנוהל יונפק.

הוספת בעלי דומיין מאומתים למשתמשים אחרים או לחשבונות שירות

כשמשתמש מאמת דומיין, הדומיין הזה מאומת רק בחשבון של המשתמש. המשמעות היא שרק המשתמש הזה יכול להוסיף מיפויים נוספים של דומיינים שמשתמשים בדומיין הזה. לכן, כדי לאפשר למשתמשים אחרים להוסיף מיפויים שמשתמשים בדומיין הזה, צריך להוסיף אותם כבעלים מאומתים.

אם אתם צריכים להוסיף בעלים מאומתים של הדומיין למשתמשים אחרים או לחשבונות שירות, אתם יכולים להוסיף הרשאה דרך הדף Search Console:

  1. עוברים לכתובת הזו בדפדפן האינטרנט:

    https://search.google.com/search-console/welcome

  2. בקטע נכסים, לוחצים על הדומיין שרוצים להוסיף לו משתמש או חשבון שירות.

  3. גוללים למטה לרשימה בעלים מאומתים, לוחצים על הוספת בעלים ומזינים כתובת אימייל של חשבון Google או מזהה של חשבון שירות.

    כדי לראות רשימה של חשבונות השירות, פותחים את הדף Service Accounts במסוף Google Cloud :

    כניסה לדף Service Accounts

רישום דומיין ב-Cloud Domains במסוף Knative serving

כדי לרשום דומיין ב-Cloud Domains מתוך מסוף Knative serving:

  1. עוברים לדף מיפויי הדומיינים של Knative serving:

    מעבר למיפוי דומיינים

  2. לוחצים על Register domain (רישום דומיין).

  3. משלימים את תהליך ההרשמה לפי ההוראות לרישום דומיין.

  4. צריך לבצע את השלבים שמופיעים למעלה בדף הזה כדי למפות את הדומיין ל-Knative serving ואז להוסיף רשומות DNS ברשם הדומיינים.

פתרון בעיות

אפשר לעיין בבעיות הנפוצות במאמר פתרון בעיות בדומיינים בהתאמה אישית וב-TLS מנוהל.