Kubernetes skalowania a logi aplikacji

0

Witajcie.

Mam apkę wdrożoną na klaster minikuba i jest endpoint udostępniony /test gdzie tylko wypisuje logi w konsoli.
Mam też zaimplementowany HPA z custom metrics gdzie scrapuje metryki z tej apki.

Wszystko działa spoko tylko mam zagwozdkę.
Gdy posiadam 3 pody tej aplikacji i używam endpointu /test to loguje mi tylko na jednym podzie.

Wizualizacja:
Pod1:
LOG
LOG
LOG
Pod2:
Pod3:

Jak myślę że powinno.

Pod1:
LOG
Pod2:
LOG
Pod3:
LOG

Czy dobrze to rozumuje czy tak powinno być czy ja coś mam źle ustawione ?

EDIT:

Czy on daje więcej zasobów do tej aplikacji a nie rozdziela zadania ?

1

Jeśli stosujesz HPA lub ogólnie korzystasz z więcej niż 1 repliki swojego serwisu (choćbyś na sztywno wbił np. replicas: 3 bez HPA) to siłą rzeczy będziesz mieć wiele instancji.

Co do zasady wiele instancji może być pożądane z różnych względów:

  • Żeby utrzymać dostępność aplikacji / serwisu nawet w przypadku, gdy jeden przestanie odpowiadać (zatka się, proces zostanie ubity lub zcrashuje, jesteś w trakcie rolling upgrade i instancje są kolejno wymieniane)
  • Żeby móc obsłużyć większy ruch np dzięki replikacji lub partycjonowaniu

W obu przypadkach replikacja straciła by sens, gdyby odpowiedź była oczekiwana od każdej instancji, a nie od jednej (generalnie wybranej przez load balancer / reverse proxy, który rozkłada ruch na dostępne instancje).

Co prawda możesz pewnie skonfigurować LB lub reverse proxy tak, aby każde żądanie kierował do więcej niż jednej instancji, tylko zastanów się czy to ma sens, co miałbyś dzięki temu osiągnąć i jak zareaguje aplikacja gdy np. będzie dostawać zduplikowane żądania, które modyfikują dane lub jakkolwiek zmieniają stan, wywołują jakieś akcje i tak dalej (czy aplikacja jest idempotentna).

Co do zbierania logów z wielu instancji - tak, to bywa uciążliwe jak przekopujesz sobie logi bezpośrednio w dashboardzie lub konsoli k8s i próbujesz znaleźć np. dokąd trafiło konkretne żądanie. Ale zawsze możesz użyć agregatora logów, który dodatkowo pozwoli je przetwarzać ;) z tych które kojarzę Sumo Logic mnie nie urzekł, za to ostatnio zachłysnąłem się Datadog - IMO znacznie wygodniejszy i pozwala zbierać również logi i metryki w jednym miejscu

1 użytkowników online, w tym zalogowanych: 0, gości: 1