במאמר הזה מוסבר איך להגדיר אפשרויות של ספק DNS (Domain Name System) ב-Google Distributed Cloud במודל מחובר. הגדרת ה-DNS של אשכול מאוחסנת במשאב מותאם אישית של ClusterDNS בשם default. המשאב הזה הוא ברמת האשכול, כלומר הוא לא מוגדר במרחב שמות. המשאב המותאם אישית ClusterDNS חל על כל סוגי האשכולות.
יצירת המשאב ClusterDNS
יוצרים מניפסט למשאב ClusterDNS בשם default. ממלאים את הפרטים בspec כדי להגדיר את ההגדרות של המשאב הרצוי. לדוגמה:
apiVersion: networking.gke.io/v1alpha1
kind: ClusterDNS
metadata:
name: default
spec:
upstreamNameservers:
- serverIP: 8.8.8.8
- serverIP: 8.8.4.4
domains:
- name: altostrat.com
nameservers:
- serverIP: 198.51.100.1
- name: my-own-personal-domain.com
nameservers:
- serverIP: 203.0.113.1
- serverIP: 203.0.113.2
serverPort: 54
googleAccess: default
כדי לשמור את המניפסט בקובץ בשם my-dns.yaml ולהחיל את המשאב על האשכול, מריצים את הפקודה הבאה:
kubectl --kubeconfig KUBECONFIG apply -f my-dns.yamlמחליפים את KUBECONFIG בנתיב לקובץ kubeconfig של האשכול.
הצגת משאב ClusterDNS
כדי להציג את משאב ClusterDNS, מריצים את הפקודה הבאה:
kubectl --kubeconfig KUBECONFIG get clusterdns default --output yamlמחליפים את KUBECONFIG בנתיב לקובץ kubeconfig של האשכול.
מפרט ClusterDNS
בקטעים הבאים מתוארים החלקים בהגדרת המשאב המותאם אישית ClusterDNS שבהם משתמשים כדי להגדיר DNS לאשכולות. אפשר לעדכן את המשאב ClusterDNS של אשכול בכל שלב.
spec.upstreamNameservers
משתמשים בשדה spec.upstreamNameservers כדי לציין את שרתי השמות של ברירת המחדל שלכם במעלה הזרם באמצעות מערך של אובייקטים. לכל אובייקט יש כתובת IP של שרת, ויציאת שרת (אופציונלי). יציאת השרת שמוגדרת כברירת מחדל היא 53.
כברירת מחדל, בקשות לדומיינים שאינם שייכים לאשכול מועברות לקבוצת השרתים הזו.
הנה דוגמה להגדרה upstreamNameservers:
spec:
upstreamNameservers:
- serverIP: 8.8.8.8
- serverIP: 1.2.3.4
serverPort: 54
אם לא מציינים ערכים ל-upstreamNameservers, ספק ה-DNS משתמש בקובץ /etc/resolv.conf בצומת כדי למצוא את רשימת שרתי השמות במעלה הזרם.
spec.domains
משתמשים בשדה spec.domains כדי להגדיר שרתי שמות שונים במעלה הזרם עבור דומיינים מסוימים. הגדרות שרתי השמות הספציפיות לדומיין האלה מבטלות את ההגדרה ב-upstreamNameservers.
אפשר גם להפעיל רישום ביומן של שאילתות עבור דומיין. אפשר להפעיל רישום של שאילתות עבור דומיין ספציפי או עבור דומיין האשכול, cluster.local.
הנה דוגמה להגדרה spec.domains:
spec:
domains:
- name: altostrat.com
nameservers:
- serverIP: 198.51.100.1
- name: my-own-personal-domain.com
nameservers:
- serverIP: 203.0.113.1
- serverIP: 203.0.113.2
serverPort: 50000
- name: cluster.local
queryLogging: true
spec.googleAccess
השדה spec.googleAccess הוא מחרוזת שמגדירה את פעולת ה-DNS עבור דומיינים שמשמשים את ממשקי ה-API והשירותים הגלובליים של Google. אפשר להזין בשדה הזה את הערכים הבאים:
default: כברירת מחדל, פתרון ה-DNS ממפה דומיינים גלובליים של Google API לכתובות ה-IP שמוגדרות כברירת מחדל. האשכול לא מבצע התאמה אישית של פענוח ה-DNS לדומיינים גלובליים של Google API. מידע נוסף מופיע במאמר בנושא כתובות IP לדומיינים שמוגדרים כברירת מחדל. אם לא מציינים ערך בשדהgoogleAccess, המערכת משתמשת בערךdefault.
private: מיפוי של פתרון DNS לדומיינים גלובליים של Google API לכתובות ה-IP שמשמשות אתprivate.googleapis.com.
restricted: מיפוי של פתרון DNS לדומיינים גלובליים של Google API לכתובות ה-IP שמשמשות אתrestricted.googleapis.com.
בדוגמה הבאה מוצג איך להגדיר את פענוח ה-DNS לשימוש ב-private.googleapis.com:
spec:
googleAccess: private
מידע נוסף זמין במאמר הגדרת גישה פרטית ל-Google למארחים מקומיים.