הדרכה זו מנחה אותך כיצד להגדיר פענוח DNS לדומיין חדש ב-Google Distributed Cloud (GDC) עם air gap, באמצעות תחומי DNS. אפשר להשתמש בתחום DNS כדי לקבץ יחד קבוצה של רשומות DNS, ולקבוע אם הרשומות האלה יהיו גלויות מחוץ לענן הווירטואלי הפרטי (VPC) ב-GDC.
קהל היעד של המסמך הזה הוא אדמינים של פלטפורמות ומפעילים של אפליקציות שאחראים על ניהול של חיפוש DNS בארגון שלהם.
אתם יכולים ליצור אזורי DNS ציבוריים או פרטיים בסביבת GDC כדי להתאים לדרישות החשיפה והגישה של השירותים שלכם:
- בשירותים שנדרשת בהם גישה לרשת חיצונית: מגדירים אזור DNS ציבורי כדי לאפשר למשתמשים ולמערכות מחוץ לרשת לגשת לשירות. אם יש לכם אתר, API שפונה לציבור או שירות כלשהו שצריך להיות נגיש מחוץ לסביבת GDC Cloud, אתם צריכים תחום DNS ציבורי כדי למפות את שם הדומיין לכתובות ה-IP המתאימות.
- לשירותים שנדרשת עבורם גישה מאובטחת ומוגבלת למערכות פנימיות: מגדירים אזור DNS פרטי כדי להסתיר את שם הדומיין הפנימי ולהגביל את הגישה לשירותים הפנימיים. אם יש לכם אפליקציה פנימית, מסד נתונים או מיקרו-שירות שצריכים לתקשר עם שירותים פנימיים אחרים באמצעות פרוטוקולים מאובטחים בלבד וכתובות IP פרטיות, אתם צריכים אזור DNS פרטי כדי למפות את שם הדומיין לכתובות ה-IP המתאימות. אזור DNS פרטי מבטיח שהשירותים האלה יוכלו למצוא אחד את השני באמצעות שמות דומיין פנימיים בלי לחשוף את קיומם או את כתובות ה-IP שלהם לרשת החיצונית. הפעולה הזו משפרת את האבטחה ומפשטת את הרשת הפנימית.
מידע נוסף על ההבדל בין אזורי DNS ציבוריים לשרתי DNS פרטיים זמין במאמר סוגי אזורים ב-Cloud DNS.
לפני שמתחילים
כדי להגדיר אזורי DNS ב-GDC ולהוסיף רשומות, צריך לוודא שיש לכם את הדברים הבאים:
- פרויקט קיים. מידע נוסף זמין במאמר יצירת פרויקט.
- תפקידי הזהות והגישה הנדרשים. כדי לנהל אזורי DNS בפרויקט, צריך לבקש מאדמין IAM של פרויקט להקצות לכם את התפקיד אדמין פרויקט של DNS מנוהל (
managed-dns-project-admin). - כדי להשתמש ב-gdcloud CLI, צריך לוודא שהוא מותקן. מידע נוסף זמין במאמר בנושא התקנת gdcloud CLI.
- אם אתם משתמשים ב-
kubectl, קובץ kubeconfig לשרת ה-API הגלובלי. אם עדיין לא יצרתם את הקובץ הזה, אפשר לעיין במאמר בנושא כניסה לחשבון. מידע נוסף זמין במאמר בנושא שרתי API גלובליים ואזוריים.
יצירת תחום DNS ציבורי
אחרי שיוצרים תחום DNS ציבורי, צריך להגדיר את מפענח ה-DNS של הרשת להעברת בקשות לשרתי השמות המתאימים.
יצירת האזור
אפשר ליצור תחום DNS ציבורי באמצעות ה-CLI של gcloud או Kubernetes API.
gdcloud
כדי ליצור תחום DNS ציבורי, משתמשים בפקודה gdcloud dns managed-zones create:
gdcloud dns managed-zones create DNS_ZONE_NAME \
--dns-name=DOMAIN_NAME \
--visibility=PUBLIC \
--description="DESCRIPTION" \
[--project=PROJECT_NAMESPACE] \
[--async]
מחליפים את מה שכתוב בשדות הבאים:
-
DNS_ZONE_NAME: השם של תחום ה-DNS. -
DOMAIN_NAME: שם הדומיין של תחום ה-DNS הציבורי, למשלexample.com. -
DESCRIPTION: תיאור של תחום ה-DNS. לדוגמה,Public DNS zone for example.com. השדה הזה הוא אופציונלי. -
PROJECT_NAMESPACE: מרחב השמות של הפרויקט. הדגל הזה הוא אופציונלי אם הגדרתם פרויקט ברירת מחדל באופן גלובלי באמצעותgdcloud config set project. -
--async: מציינים את האפשרות הזו אם רוצים שהפקודה תחזיר ערך באופן מיידי, במקום להמתין לסיום הפעולה. אפשר להשתמש ב-methoddescribeכדי לבדוק את סטטוס הפעולה.
API
משתמשים ב-Kubernetes API ב-GDC כדי ליצור תחום DNS ציבורי:
יוצרים ומחילים משאב
ManagedDNSZoneכדי ליצור תחום DNS שאפשר לגשת אליו מחוץ ל-GDC:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: DOMAIN_NAME description: DESCRIPTION visibility: PUBLIC EOFמחליפים את מה שכתוב בשדות הבאים:
-
GLOBAL_API_SERVER: הנתיב של kubeconfig בשרת ה-API הגלובלי. מידע נוסף זמין במאמר שרתי API גלובליים ואזוריים. אם עדיין לא יצרתם קובץ kubeconfig לשרת ה-API, תוכלו לקרוא פרטים נוספים במאמר בנושא כניסה. -
DNS_ZONE_NAME: השם של תחום ה-DNS. -
PROJECT_NAMESPACE: מרחב השמות של הפרויקט. -
DOMAIN_NAME: שם הדומיין של תחום ה-DNS הציבורי, למשלexample.com. -
DESCRIPTION: תיאור של תחום ה-DNS. לדוגמה,Public DNS zone for example.com. השדה הזה הוא אופציונלי.
שימו לב שהערך
visibilityהוא תלוי אותיות רישיות, וחייב להיות בדיוקPUBLIC.-
הגדרת מפענח DNS
במקרה של תחום DNS ציבורי, צריך להגדיר את מפענח ה-DNS ברשת כך שיעביר בקשות DNS לתחום ה-DNS הזה לשרתי השמות ב-GDC שמארחים את תחום ה-DNS הזה.
מאחזרים את שרתי השמות של
ManagedDNSZoneשיצרתם. צריך להשתמש ב-kubectlבשלב הזה.kubectl --kubeconfig GLOBAL_API_SERVER get manageddnszones DNS_ZONE_NAME -n PROJECT_NAMESPACE -oyamlמחליפים את מה שכתוב בשדות הבאים:
-
GLOBAL_API_SERVER: הנתיב של kubeconfig בשרת ה-API הגלובלי. מידע נוסף זמין במאמר שרתי API גלובליים ואזוריים. אם עדיין לא יצרתם קובץ kubeconfig לשרת ה-API, תוכלו לקרוא פרטים נוספים במאמר בנושא כניסה. -
DNS_ZONE_NAME: השם של תחום ה-DNS. -
PROJECT_NAMESPACE: מרחב השמות של הפרויקט. הדגל הזה הוא אופציונלי אם הגדרתם פרויקט ברירת מחדל באופן גלובלי באמצעותgdcloud config set project.
שרתי השמות יופיעו בפלט הסטטוס:
apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: example.com description: "Public DNS zone for example.com" visibility: PUBLIC status: … nameServers: - ns.managed-dns-public.gdc1.staging.gpcdemolabs.com-
מעדכנים את מפענח ה-DNS ברשת כדי להעביר בקשות DNS לאזור החדש. בדוגמה הזו, צריך לעדכן את מפענח ה-DNS כדי להעביר בקשות ל-
example.comאלns.managed-dns-public.gdc1.staging.gpcdemolabs.com. הגדרה זו מניחה שלמפענח DNS כבר יש את ההגדרה שנדרשת כדי להעביר כראוי בקשות DNS לתחום ה-DNS של התשתית של GDCgdc1.staging.gpcdemolabs.com.
יצירת תחום DNS פרטי
אפשר ליצור אזור DNS פרטי באמצעות ה-CLI של gcloud או Kubernetes API.
gdcloud
כדי ליצור אזור DNS פרטי, משתמשים בפקודה gdcloud dns managed-zones create:
gdcloud dns managed-zones create DNS_ZONE_NAME \
--dns-name=DOMAIN_NAME \
--visibility=PRIVATE \
--description="DESCRIPTION" \
[--project=PROJECT_NAMESPACE] \
[--async]
מחליפים את מה שכתוב בשדות הבאים:
-
DNS_ZONE_NAME: השם של תחום ה-DNS. -
DOMAIN_NAME: שם הדומיין של תחום ה-DNS הפרטי, למשלexample.com. -
DESCRIPTION: תיאור של תחום ה-DNS. לדוגמה,Private DNS zone for example.com. השדה הזה הוא אופציונלי. -
PROJECT_NAMESPACE: מרחב השמות של הפרויקט. הדגל הזה הוא אופציונלי אם הגדרתם פרויקט ברירת מחדל באופן גלובלי באמצעותgdcloud config set project. -
--async: מציינים את האפשרות הזו אם רוצים שהפקודה תחזיר ערך באופן מיידי, במקום להמתין לסיום הפעולה. אפשר להשתמש ב-methoddescribeכדי לבדוק את סטטוס הפעולה.
API
משתמשים ב-Kubernetes API כדי ליצור אזור DNS פרטי:
יוצרים ומחילים משאב
ManagedDNSZoneכדי ליצור תחום DNS שאפשר לגשת אליו רק מתוך ה-VPC של הלקוח שמוגדר כברירת מחדל:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: DOMAIN_NAME description: DESCRIPTION visibility: PRIVATE EOFמחליפים את מה שכתוב בשדות הבאים:
-
GLOBAL_API_SERVER: הנתיב של kubeconfig בשרת ה-API הגלובלי. מידע נוסף זמין במאמר שרתי API גלובליים ואזוריים. אם עדיין לא יצרתם קובץ kubeconfig לשרת ה-API, תוכלו לקרוא פרטים נוספים במאמר בנושא כניסה. -
DNS_ZONE_NAME: השם של תחום ה-DNS. -
PROJECT_NAMESPACE: מרחב השמות של הפרויקט. -
DOMAIN_NAME: שם הדומיין של תחום ה-DNS הפרטי, למשלexample.com. -
DESCRIPTION: תיאור של תחום ה-DNS. לדוגמה,Private DNS zone for example.com. השדה הזה הוא אופציונלי.
שימו לב שהערך
visibilityהוא תלוי אותיות רישיות, וחייב להיות בדיוקPRIVATE.-