הגדרת דומיינים מותאמים אישית לשימוש בגישה לשירותי Knative Serving. אפשר למפות דומיין מותאם אישית אחד או יותר לשירות ספציפי, או למפות דומיין יחיד לאשכול שכל השירותים משתמשים בו. מיפוי הדומיין המותאם אישית יכול להיות דומיין הבסיס כמו your-domain.com, או תת-דומיין כמו your-subdomain.your-domain.com.
כברירת מחדל, השירותים שפורסים באשכולות של Knative Serving מוגדרים לדומיין הבסיסי nip.io. כך תוכלו לבדוק מיד את השירותים שלכם בכתובת URL כמו:
http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io
לפני שמתחילים
אתם צריכים לרכוש את הדומיין שאתם רוצים למפות לשירותים שלכם. אתם יכולים להשתמש בכל רשם שמות דומיין, אבל אם אתם משתמשים ב-Cloud Domains, הדומיין מאומת אוטומטית לשימוש ב-Knative serving, כך שלא תצטרכו לבצע את תהליך אימות הדומיין.
אם אתם רוצים לרשום דומיין באמצעות Cloud Domains, תוכלו לעיין במאמר רישום דומיין באמצעות Cloud Domains בקונסולת Knative serving.
צריכה להיות לכם לפחות הרשאת Kubernetes Engine Developer בממשק לניהול זהויות והרשאות גישה (IAM) או הרשאות שוות ערך.
כדי להפעיל HTTPS עם מיפויים של דומיינים מותאמים אישית, צריך להגדיר אישורי TLS מנוהלים או להגדיר אישורים משלכם.
כדי למפות דומיין בהתאמה אישית לאשכול או לשירותים ברשת פרטית פנימית, צריך להשבית אישורי TLS מנוהלים.
מיפוי של דומיין מותאם אישית
אפשר להשתמש במסוף Google Cloud או בכלי שורת הפקודה כדי למפות את הדומיין המותאם אישית.
באופן כללי, כדי להגדיר דומיין מותאם אישית:
- אופציונלי: שומרים את כתובת ה-IP של מאזן העומסים.
- ממפים את השירותים או את האשכול לדומיין המותאם אישית ב-Knative serving.
- מעדכנים את רשומות ה-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 של מאזן העומסים החיצוני:
מקבלים את כתובת ה-IP של מאזן העומסים:
המסוף
כדי לקבל את כתובת ה-IP החיצונית של מאזן העומסים ממסוף Google Cloud :- נכנסים לדף GKE במסוף Google Cloud :
כניסה ל-GKE - לוחצים על Services and ingress (שירותים ותעבורת נכנסת).
- מזהים את השירות שמשמש כ-ingress של Istio באשכול. הסוג של השירות יהיה מאזן עומסים חיצוני, והשם יהיה
istio-ingressgateway. - אחרי שמוצאים את שירות הכניסה של 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 החיצונית של מאזן העומסים.
- נכנסים לדף GKE במסוף Google Cloud :
שומרים את כתובת ה-IP ככתובת IP סטטית:
gcloud compute addresses create ADDRESS-NAME --addresses EXTERNAL-IP --region REGION
מחליפים את:
- ADDRESS-NAME בשם שרוצים לתת לכתובת ה-IP הסטטית.
- EXTERNAL-IP בכתובת ה-IP החיצונית של מאזן העומסים שקיבלתם בשלב הקודם.
- REGION עם האזור שבו נמצא האשכול.
אחרי שמקבלים את כתובת ה-IP של מאזן העומסים, אפשר להשתמש בה כדי למפות את הדומיין המותאם אישית:
שירותי מיפוי
אפשר לבחור אחת מהשיטות הבאות כדי למפות את הדומיין המותאם אישית לשירות Knative serving. אפשר למפות כל שירות בנפרד לכמה דומיינים.
המסוף
פותחים את הדף 'מיפוי דומיינים' במסוף Google Cloud :
שימו לב: אם חלון התצוגה קטן מדי, הלחצן 'מיפוי דומיינים בהתאמה אישית' לא מוצג, ותצטרכו ללחוץ על סמל האליפסה האנכית (3 נקודות) בפינה השמאלית של הדף.
לוחצים על הוספת מיפוי ובוחרים באפשרות הוספת מיפוי של דומיין לשירות כדי למפות דומיין לשירות מסוים. אפשר למפות כמה דומיינים לכל שירות.
בתפריט הנפתח בטופס Add Mapping, בוחרים את השירות שאליו רוצים למפות את הדומיין המותאם אישית:
כאן מזינים את שם הדומיין. לדוגמה,
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.
- אין תמיכה במיפוי נתיב בסיסי. המונח נתיב בסיס מתייחס לשם הנתיב בכתובת ה-URL שמופיע אחרי שם הדומיין. לדוגמה,
לוחצים על Continue.
מעדכנים את רשומות ה-DNS באתר של רשם הדומיין באמצעות רשומות ה-DNS שמוצגות בשלב האחרון. אפשר להציג את הרשומות בכל שלב. לשם כך, לוחצים על רשומות DNS בתפריט הפעולות '…' של מיפוי דומיין.
לוחצים על סיום.
gcloud
ממפים את השירות לדומיין המותאם אישית:
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.
- אין תמיכה במיפוי נתיב בסיסי. המונח נתיב בסיס מתייחס לשם הנתיב בכתובת ה-URL שמופיע אחרי שם הדומיין. לדוגמה,
עכשיו, אחרי שמיפיתם את הדומיין המותאם אישית ל-Knative serving, אתם צריכים להוסיף רשומות DNS לרשם הדומיינים.
מיפוי אשכולות
כדי למפות את הדומיין המותאם אישית לאשכול, בוחרים אחת מהשיטות הבאות:
המסוף
פותחים את הדף 'מיפוי דומיינים' במסוף Google Cloud :
שימו לב: אם חלון התצוגה קטן מדי, הלחצן 'מיפוי דומיינים בהתאמה אישית' לא מוצג, ותצטרכו ללחוץ על סמל האליפסה האנכית (3 נקודות) בפינה השמאלית של הדף.
לוחצים על Add Mapping (הוספת מיפוי) ובוחרים באפשרות Add default domain (הוספת דומיין ברירת מחדל) כדי למפות דומיין לכל השירותים באשכול. כברירת מחדל, שירותים חדשים שפורסים משתמשים בדומיין הממופה.
מסמנים את תיבת הסימון כדי להחיל את מיפוי הדומיין החדש על כל השירותים הקיימים באשכול.
בתפריט הנפתח בטופס Add Mapping, בוחרים את האשכול שאליו רוצים למפות את הדומיין המותאם אישית:
כאן מזינים את שם הדומיין. לדוגמה,
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.
- אין תמיכה במיפוי נתיב בסיסי. המונח נתיב בסיס מתייחס לשם הנתיב בכתובת ה-URL שמופיע אחרי שם הדומיין. לדוגמה,
לוחצים על Continue.
מעדכנים את רשומות ה-DNS באתר של רשם הדומיין באמצעות רשומות ה-DNS שמוצגות בשלב האחרון. אפשר להציג את הרשומות בכל שלב. לשם כך, לוחצים על רשומות DNS בתפריט הפעולות '…' של מיפוי דומיין.
לוחצים על סיום.
kubectl
מריצים את הפקודה הבאה כדי להסיר את דומיין הבסיס הקיים מ-
config-domainConfigMap ולהחליף אותו בדומיין המותאם אישית: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.
- אין תמיכה במיפוי נתיב בסיסי. המונח נתיב בסיס מתייחס לשם הנתיב בכתובת ה-URL שמופיע אחרי שם הדומיין. לדוגמה,
עכשיו, אחרי שמיפיתם את הדומיין המותאם אישית ל-Knative serving, אתם צריכים להוסיף רשומות DNS לרשם הדומיינים.
הוספה של רשומות ה-DNS ברשם הדומיינים
אחרי שמיפיתם את השירות לדומיין בהתאמה אישית ב-Knative serving, צריך לעדכן את רשומות ה-DNS אצל רשם הדומיינים. לנוחיותכם, Knative serving יוצרת ומציגה את רשומות ה-DNS שצריך להזין. כדי שהמיפוי ייכנס לתוקף, צריך להוסיף את הרשומות האלה שמפנות לשירות Knative serving אצל רשם הדומיינים.
אם אתם משתמשים ב-Cloud DNS כספק ה-DNS, תוכלו לעיין במאמר בנושא הוספת רשומה.
מאחזרים את פרטי רשומת ה-DNS של מיפויי הדומיין באמצעות:
המסוף
עוברים לדף מיפויי הדומיינים של Knative serving:
לוחצים על סמל האליפסה האנכית (3 נקודות) משמאל לשירות ואז על רשומות DNS כדי להציג את כל רשומות ה-DNS:
gcloud
gcloud run domain-mappings describe --domain DOMAIN
מחליפים את DOMAIN בדומיין המותאם אישית. לדוגמה,
your-domain.comאוsubdomain.your-domain.com.צריך את כל הרשומות שמוחזרות בכותרת
resourceRecords.מתחברים לחשבון ברשם הדומיין ופותחים את דף ההגדרות של ה-DNS.
מאתרים את הקטע של רשומות המארח בדף ההגדרות של הדומיין, ואז מוסיפים כל אחת מרשומות המשאבים שקיבלתם כשמיפיתם את הדומיין לשירות Knative serving.
כשמוסיפים כל אחת מרשומות ה-DNS שלמעלה לחשבון אצל ספק ה-DNS:
- בוחרים את הסוג שמוחזר ברשומת ה-DNS בשלב הקודם:
A, אוAAAA, אוCNAME. - משתמשים בשם
wwwלמיפוי אלwww.your-domain.com. - משתמשים בשם
@כדי למפות אתyour-domain.com. - משתמשים בתו כללי לחיפוש
*כדי למפות ל-*.your-domain.com.
- בוחרים את הסוג שמוחזר ברשומת ה-DNS בשלב הקודם:
שומרים את השינויים בדף הגדרות ה-DNS בחשבון של הדומיין. ברוב המקרים, השינויים האלה נכנסים לתוקף תוך כמה דקות, אבל במקרים מסוימים יכול להיות שיחלפו כמה שעות, בהתאם לרשם ולזמן החיים (TTL) של רשומות DNS קודמות בדומיין. אפשר להשתמש בכלי
dig, כמו הגרסה הזו אונליין שלdig, כדי לוודא שרשומות ה-DNS עודכנו בהצלחה.כדי לבדוק שההעברה הצליחה, עוברים לשירות בכתובת ה-URL החדשה שלו, למשל
https://www.your-domain.com. שימו לב: יכול להיות שיעברו כמה דקות עד שאישור SSL/TLS המנוהל יונפק.
הוספת בעלי דומיין מאומתים למשתמשים אחרים או לחשבונות שירות
כשמשתמש מאמת דומיין, הדומיין הזה מאומת רק בחשבון של המשתמש. המשמעות היא שרק המשתמש הזה יכול להוסיף מיפויים נוספים של דומיינים שמשתמשים בדומיין הזה. לכן, כדי לאפשר למשתמשים אחרים להוסיף מיפויים שמשתמשים בדומיין הזה, צריך להוסיף אותם כבעלים מאומתים.
אם אתם צריכים להוסיף בעלים מאומתים של הדומיין למשתמשים אחרים או לחשבונות שירות, אתם יכולים להוסיף הרשאה דרך הדף Search Console:
עוברים לכתובת הזו בדפדפן האינטרנט:
בקטע נכסים, לוחצים על הדומיין שרוצים להוסיף לו משתמש או חשבון שירות.
גוללים למטה לרשימה בעלים מאומתים, לוחצים על הוספת בעלים ומזינים כתובת אימייל של חשבון Google או מזהה של חשבון שירות.
כדי לראות רשימה של חשבונות השירות, פותחים את הדף Service Accounts במסוף Google Cloud :
רישום דומיין ב-Cloud Domains במסוף Knative serving
כדי לרשום דומיין ב-Cloud Domains מתוך מסוף Knative serving:
עוברים לדף מיפויי הדומיינים של Knative serving:
לוחצים על Register domain (רישום דומיין).
משלימים את תהליך ההרשמה לפי ההוראות לרישום דומיין.
צריך לבצע את השלבים שמופיעים למעלה בדף הזה כדי למפות את הדומיין ל-Knative serving ואז להוסיף רשומות DNS ברשם הדומיינים.
פתרון בעיות
אפשר לעיין בבעיות הנפוצות במאמר פתרון בעיות בדומיינים בהתאמה אישית וב-TLS מנוהל.