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