Jeśli to zamknięta serwerownia z zainstalowanym K8s, to można przypuszczać, że infrastruktura jest współdzielona (= wspólny klaster ; np. dołożenie node do klastra, to fizycznie dostawienie maszyny, albo jeśli klient ma prywatnego clouda, dostawienie kolejnej instancji maszyny) i trzeba by myśleć o wejściu nie tyle do konkretnego systemu, ale do klastra, w ramach którego możesz mieć wiele systemów. Samo użycie serwisu typu "LoadBalancer" nie wystawi go na świat, bo taki load balancer najpierw trzeba: a) mieć b) skonfigurować.
W przypadku instalacji w "prywatnej serwerowni" , możesz doprecyzować:
- jaka jest implementacja tego k8s?
- jaka jest implementacja LoadBalancera?
Goły k8s, czy w ramach np. OpenStacka, inny? Goły k8s nie ma load balancera i wymaga dodatkowego komponentu, który ten Load Balancing zapewni. Dla k8s czasem używa się MetalLB, które może być zdeployowane w Layer2 mode, albo w trybie BGP. Przy MetalLB i layer2, nie będziesz miał prawdziwego load balancingu, a failover potrwa "wieki" (w sensie sieciowym), co może kłócić się z wizją wydajności.
Przy wyborze docelowej architektury starałbym się zrozumieć, nad którymi elementami nie będę miał kontroli i czy to może boleć, np. pomijając to co dzieje się za api gatewayem, chcę zaktualizować
KrakenD z wersji N do wersji N+1. Czy wystawiając via LoadBalancer 2 serwisy (API GW v.N i API GW v.N+1) będę w stanie 95% ruchu puścić przez serwis v.N ? Jak to zrobić? (mając ingressa raczej proste, bez ingressa? Kto mi zrobi taki load balancing? Czy to będzie kontrolowane z poziomu jakiegoś CRD, czy request do adminów, że mają coś ręcznie zmieniać w konfiguracji LoadBalancera, czy rollback takiej konfiguracji będzie prosty/automatyczny?).
Do tego zastanowiłbym się jak ma wyglądać obsługa szyfrowania E2E (zarządzania certyfikatami - czy wspierać centralne zarządzanie i korzystać z CA klienta, czy mieć w**ne i niech klient się martwi certyfikatami).