במאמר הזה מוסבר איך GKE ב-AWS מתקשר עם שירותי שמות דומיינים (DNS) גם בענן הווירטואלי הפרטי (VPC) של AWS וגם באשכולות.
AWS VPC DNS
בקטע הזה מוסבר איך להגדיר ענן וירטואלי פרטי (VPC) של AWS ל-GKE ב-AWS.
הגדרת DNS של VPC
GKE ב-AWS תומך במגוון הגדרות DNS ב-AWS VPC. מגדירים את הגדרות ה-DNS של ה-VPC כשיוצרים קבוצת אפשרויות DHCP. מידע נוסף זמין במאמר בנושא תמיכה ב-DNS עבור VPC.
אפשר להגדיר את האפשרויות הבאות:
- שמות מארחים ב-DNS
- ההגדרה הזו קובעת אם מכונות EC2 עם כתובות IP ציבוריות יקבלו שמות מארח תואמים ב-DNS ציבורי. מגדירים את הערך הזה באמצעות השדה
enableDNSHostnamesבסט אפשרויות ה-DHCP של ה-VPC. מידע נוסף זמין במאמרים בנושא שמות מארחים של DNS ב-VPC וערכות אפשרויות DHCP ל-VPC. - שמות מארחים ב-DNS של EC2
- ההגדרה הזו קובעת אם מופעלת קבלת שם מארח ב-DNS שמוגדר כברירת מחדל או שם מארח ב-DNS בהתאמה אישית במופעי EC2.
- שרת DNS
- אם קבוצת האפשרויות של ה-DHCP ב-VPC משתמשת בשרת ה-DNS של AWS Route53 (עם האפשרות
AmazonProvidedDNS) או בשרת DNS מארח.
הגדרות DNS נתמכות ב-VPC
הטבלה הבאה כוללת הגדרות DNS שנתמכות על ידי GKE ב-AWS:
| הפעלת שמות מארחים של DNS | שמות מארחים של DNS ב-EC2 | שרת DNS | האם יש תמיכה? |
|---|---|---|---|
true |
ברירת מחדל | AWS Route53 | כן |
false |
ברירת מחדל | AWS Route53 | כן |
true |
בהתאמה אישית | AWS Route53 | כן |
false |
בהתאמה אישית | AWS Route53 | כן |
true |
בהתאמה אישית | מתארח | כן |
false |
בהתאמה אישית | מתארח | כן |
true |
ברירת מחדל | מתארח | לא |
false |
ברירת מחדל | מתארח | לא |
זיהוי שירותים
זיהוי שירותים הוא תהליך שבו עומסי עבודה מזהים שירותים בלי לדעת את כתובת ה-IP שלהם. בקטע הזה מוסבר איך GKE on AWS מטמיע גילוי שירותים ו-DNS מנוהל.
מערכת Kubernetes יוצרת באופן אוטומטי שמות של שירותים לפי המפרט הבא:
service.namespace.svc.zone
כאשר:
-
service: השם של השירות -
namespace: מרחב השמות של השירות -
zone: האזור ב-AWS שבו נמצא השירות שלכם
עומסי עבודה ניגשים גם לשירותים חיצוניים – לדוגמה example.net – באמצעות שמות DNS. מידע נוסף על התנהגות ה-DNS ב-Kubernetes זמין במאמר DNS for Services and Pods.
CoreDNS
ב-GKE on AWS נעשה שימוש ב-CoreDNS כדי לפתור שמות DNS בתוך אשכולות. CoreDNS פועל כפריסה מגובה וניתנת להרחבה במרחב השמות kube-system. לפריסת CoreDNS יש Service שמקבץ את ה-Pods של CoreDNS ומקצה להם כתובת IP אחת. הפריסה של CoreDNS מתרחבת בהתאם לגודל של האשכול ולשימוש בו.
NodeLocal DNSCache
GKE ב-AWS משתמש ב-NodeLocal DNSCache כדי לשפר את הביצועים של חיפוש DNS. NodeLocal DNSCache פועל כ-DaemonSet בכל צומת באשכול. כש-Pod שולח בקשת DNS, הבקשה מועברת קודם למטמון ה-DNS באותו צומת. אם המטמון לא יכול לפתור את בקשת ה-DNS, הוא מעביר את הבקשה לאחת מהאפשרויות הבאות:
- CoreDNS עבור שם פנימי – לדוגמה
foo.bar.svc.cluster.local - שרת ה-DNS של אמזון, לשם חיצוני – לדוגמה
example.net
Calico
GKE ב-AWS משתמש ב-Calico כדי ליצור ניתוב BGP בין צמתי האשכול.
המאמרים הבאים
- מידע נוסף על תמיכת DNS ב-VPC ב-AWS
- סקירה כללית על השימוש ב-DNS באשכולות Kubernetes זמינה במאמר DNS לשירותים ול-Pods.