เมื่อมี VM ภายนอกจำนวนมากซึ่งเข้าถึงได้ผ่านไฟร์วอลล์เท่านั้น และมีเนมสเปซหลายตัวในคลัสเตอร์ โดยแต่ละอันมีชุด VM ภายนอกของตัวเอง คุณจะได้ ServiceEntries จำนวนมาก ซึ่งส่งผลให้เกิดการสืบค้น DNS จำนวนมาก สำหรับ
$host.$ns.svc.cluster.local
$host.svc.cluster.local
$host.cluster.local
โดยที่ $host เป็นตัวอย่างเช่น: vm-1.vm-cluster.example.com โดยสมมติว่ามี 10 เนมสเปซและ 100 พ็อดในแต่ละเนมสเปซ นั่นคือจำนวนการสืบค้น DNS ที่ค่อนข้างมาก ทั้งหมดตอบด้วย NXDOMAIN ดังนั้นแคชพร็อกซี DNS ของ istio ในเครื่อง ไม่ได้ผล. สิ่งนี้สามารถนำไปสู่สถานการณ์โอเวอร์โหลดของ coreDNS Pods (ขนาดหน่วยความจำรวมถึงบัฟเฟอร์เพิ่มขึ้นและทำให้ DNS Pod เป็น OOM)
คำถามของฉันคือ ฉันจะป้องกันคำถามเหล่านั้นได้อย่างไร วิธีแก้ปัญหาที่ฉันพบคือ:
การแทนที่ $host ด้วย FQDN ซึ่งมีจุดต่อท้ายไม่ทำงานเนื่องจากใบรับรอง X.509 มีชื่อโฮสต์โดยไม่มีจุดต่อท้าย
เปลี่ยนการกำหนดค่า DNS ของแต่ละ Pod และตั้งค่า ndots เป็น 3 แต่สิ่งนี้ฟังดูเหมือนฝันร้ายในการบำรุงรักษา
ฉันต้องการแก้ปัญหานี้ด้วยการรวมกันของคำจำกัดความของ ServiceEntry, VirtualService และ Gateway
K8s เวอร์ชัน 1.19 (รุ่น vmware) Istio เวอร์ชัน 1.9 (รุ่น vmware ด้วย)