במאמר הזה מוסבר איך GKE on AWS מתקשר עם שירותי שמות דומיין (DNS) גם בענן הווירטואלי הפרטי (VPC) של AWS וגם באשכולות.
AWS VPC DNS
בקטע הזה מוסבר איך להגדיר VPC ל-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 מארח
כדי להשתמש ב-DNS מתארח, קבוצות האבטחה של מישור הבקרה ושל מאגר הצמתים צריכות לאפשר תנועה יוצאת ביציאות TCP ו-UDP מספר 53.
הגדרות 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.cluster.local
כאשר:
-
service: השם של השירות -
namespace: מרחב השמות של השירות
עומסי עבודה ניגשים גם לשירותים חיצוניים – לדוגמה 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
המאמרים הבאים
- מידע נוסף על תמיכת DNS ב-VPC ב-AWS
- סקירה כללית על השימוש ב-DNS באשכולות Kubernetes זמינה במאמר DNS לשירותים ול-Pods.