Avem 2 clustere AKS (nu private) implementate în Europa de Vest și estul SUA, fără zone de disponibilitate, rețea Azure CNI, politică de rețea Azure (nu calico) și totul este furnizat cu Terraform.
Încercăm să creăm o infrastructură pentru seturile de replica MongoDB, ceva similar cu acest articol: https://docs.couchbase.com/operator/2.0/tutorial-remote-dns.html
Avem nevoie de pod-uri în fiecare cluster pentru a putea accesa Service IP-uri (Cluster IP-uri), dar din câte înțelegem, acest lucru nu este ușor de realizat, ClusterIP-urile există într-o rețea virtuală, nu fac parte dintr-o subrețea definită. Există o cale de a ocoli asta? Sunt sigur că acesta este un scenariu comun, care rulează clustere Mongo/RabbitMQ/Redis în regiuni (căutăm să realizăm replicarea master-master a datelor).
De asemenea, am aruncat o privire asupra unei soluții folosind pluginul CoreDNS Kubernetai: https://www.cockroachlabs.com/blog/experience-report-running-across-multiple-kubernetes-clusters/ (soluția nr. 4)
Dar, aceasta nu este încorporată în imaginea CoreDNS personalizată pe care AKS o folosește (1.6.6), din păcate.
Rețelele virtuale pentru cluster sunt interconectate, podurile se pot accesa unele pe altele prin IP-urile podului, dar nu putem accesa serviciile prin IP-urile atribuite lor.
VNET West EU: 10.0.0.0/8 Subrețea pods: 10.240.0.0/16 Subrețea serviciilor: 10.0.0.0/16
VNET Est SUA: 20.0.0.0/8 Subrețea pods: 20.240.0.0/16 Subrețea serviciilor: 20.0.0.0/16
Peering-ul se face în ambele sensuri, allow-vnet-access este setat la true.