סקירה כללית על זיהוי שירותים ו-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

המאמרים הבאים