Routing Sorunları
Client IP Adresinin 10.244.x.x Şeklinde Görülmesi
Problem
Client IP adresi Kubernetes ortamında 10.244.x.x şeklinde görülmektedir.
Sebep/Neden
Kubernetes NodePort yapısında eğer client'dan X-Forwarded-For değer gelmiyorsa default olarak arka taraftaki uygulamaya pod'un IP adresini yönlendiriyor. Çözüm olarak externalTrafficPolicy değer Local yaparak çözebiliyoruz ancak bu defa NodePort gelen isteği Cluster'daki diğer sunuculara yönlendirmediğinden erişim sıkıntısı oluşuyor. İlgili Node'u bilip ona gitmek gerekiyor.
Çözüm
Apinizer Worker'ları Nginx veya F5 gibi bir yapının arkasına konacağı için, ilgili loadbalancer'ın konfigürasyon dosyasına aşağıdaki gibi header'a xff bilgisinin eklenmesi gerekiyor.
Nginx için bu ayar aşağıdaki gibi yapılabilir:
location /apigateway/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://api.inst.com/apigateway/;
} # end location
SOAP Servislerde WS-S/WS-STS Token Alma Routing Sorunu
Problem
SOAP servislerde kullanılan WS-S ya da WS-STS politikaları "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target" hatası nedeniyle token alamıyor.
Sebep/Neden
SOAP servis çağrımında Apinizer'a yüklenmiş sertifikayı görememesi nedeniyle bu servisin token alımının reverse proxy üzerinden yapılması gerekiyor.
Çözüm
İlgili token alma adresi ile routing yapan bir reverse proxy oluşturulur ve token kullanan servisteki wss/wssts politikasının token alma adresi bu servis olarak verilir. Nadir durumlarda reverse proxy üzerinden script ile xml mesajındaki adresin değiştirilmesi gerekebilir.
DNS Çözümleme Sorunları
Problem
Yoğun environment kullanımı veya yüksek sayıda rate limit tanımı olan sistemlerde, bazı servis adreslerinin anlık olarak çözülememesi.
Sebep/Neden
Bu durum, DNS çözümleme performansının yetersiz kalmasından kaynaklanmaktadır.
Çözüm
CPU ve RAM kaynakları yükseltilerek daha fazla sorgunun aynı anda işlenebilmesi sağlanmalıdır.
Her worker node üzerinde bir adet CoreDNS podu olacak şekilde deployment yeniden yapılandırılmalıdır. Bu sayede DNS sorguları merkezi bir noktaya yığılmadan dağıtık şekilde işlenebilmektedir.
Coğrafi Bilgi Sistemleri Servislerinde GetCapabilities Routing Sorunu
Problem
Coğrafi Bilgi Sistemleri servislerinde GetCapabilities ile dönmekte olan WSDL içerisindeki adreslerin Apinizer'a taşınması gerekmektedir.
Çözüm
- bölgeye eklenecek bir Business Rule veya Script poliçesi ile url'de query param olarak 'request' anahtarında 'GetCapabilities' değeri geliyorsa string replace ile buradaki adres Apinizer'da ilgili proxy'e yönlenecek şekilde değiştirilmelidir.