เรามีคลัสเตอร์ AKS 2 คลัสเตอร์ (ไม่เป็นส่วนตัว) ที่ใช้งานในยุโรปตะวันตกและสหรัฐอเมริกาตะวันออก โดยไม่มี Availability Zone, เครือข่าย Azure CNI, นโยบายเครือข่าย Azure (ไม่ใช่ผ้าดิบ) และทุกอย่างจัดเตรียมด้วย Terraform
เรากำลังพยายามตั้งค่าโครงสร้างพื้นฐานสำหรับชุดแบบจำลอง MongoDB ซึ่งคล้ายกับบทความนี้: https://docs.couchbase.com/operator/2.0/tutorial-remote-dns.html
เราต้องการพ็อดในแต่ละคลัสเตอร์เพื่อให้สามารถเข้าถึง IP ของบริการ (Cluster IP) ได้ แต่จากที่เราเข้าใจ การดำเนินการนี้ไม่ใช่เรื่องง่าย ClusterIP มีอยู่ในเครือข่ายเสมือน พวกมันไม่ได้เป็นส่วนหนึ่งของเครือข่ายย่อยใดๆ ที่กำหนดไว้ มีวิธีแก้ไขปัญหานี้หรือไม่? ฉันแน่ใจว่านี่เป็นสถานการณ์ทั่วไป เรียกใช้คลัสเตอร์ Mongo/RabbitMQ/Redis ข้ามภูมิภาค (เรากำลังมองหาการจำลองแบบของข้อมูลมาสเตอร์-มาสเตอร์)
ฉันได้ตรวจสอบวิธีแก้ปัญหาโดยใช้ปลั๊กอิน CoreDNS Kubernetai: https://www.cockroachlabs.com/blog/experience-report-running-across-multiple-kubernetes-clusters/ (เฉลยข้อ 4)
แต่นี่ไม่ใช่อิมเมจ CoreDNS ในตัวที่ AKS ใช้ (1.6.6) โชคไม่ดี
เครือข่ายเสมือนสำหรับคลัสเตอร์เป็นแบบเพียร์ พ็อดสามารถเข้าถึงได้ผ่าน IP พ็อด แต่เราไม่สามารถเข้าถึงบริการผ่าน IP ที่กำหนดให้
VNET West EU: 10.0.0.0/8 เครือข่ายย่อย Pods: 10.240.0.0/16 เครือข่ายย่อยบริการ: 10.0.0.0/16
VNET East US: 20.0.0.0/8 เครือข่ายย่อย Pods: 20.240.0.0/16 เครือข่ายย่อยบริการ: 20.0.0.0/16
การเพียร์ทำได้ทั้งสองวิธี โดยตั้งค่า allow-vnet-access เป็น true