ข้ามไปเนื้อหาหลัก
คอนเทนเนอร์· ~11 นาที

DNS และ Service Discovery ในคลัสเตอร์

เรียก service ด้วยชื่อแทน IP ผ่าน DNS ภายใน

เปรียบเทียบให้เห็นภาพ

DNS ภายในคลัสเตอร์เหมือนสมุดโทรศัพท์ของออฟฟิศ — อยากคุยกับแผนกบัญชีก็โทรหา "บัญชี" ไม่ต้องจำเบอร์ · Pod เรียก service อื่นด้วยชื่อ ระบบแปลงเป็น IP ให้เอง

K8s รัน DNS ภายใน (CoreDNS) ที่ให้ทุก Service มีชื่อโดเมนคงที่ · Pod เรียก service อื่นได้ด้วยชื่อสั้น ๆ โดยไม่ต้องรู้ IP เลย

# ภายใน namespace เดียวกัน — ใช้ชื่อสั้น
http://web

# ข้าม namespace — เติมชื่อ namespace
http://web.production

# ชื่อเต็ม (FQDN)
http://web.production.svc.cluster.local
รูปแบบชื่อ DNS ของ Service

สรุป Key Takeaways

  • CoreDNS ให้ทุก Service มีชื่อ DNS คงที่ — เรียกด้วยชื่อ ไม่ใช่ IP
  • namespace เดียวกันใช้ชื่อสั้น · ข้าม namespace เติม .<namespace>
  • เป็นพื้นฐานของสถาปัตยกรรม microservices บน K8s
อ่านจบแล้วอย่าลืมทำเครื่องหมาย