Trzy mechanizmy obecne w każdym demonie sprawiają, że aktualizacja na gorąco jest bezpieczna z definicji. Sonda <code>/readyz</code> zmienia odpowiedź na <code>503</code> w momencie rozpoczęcia zamykania, dzięki czemu load balancer lub brama widzi, że węzeł opuszcza rotację, podczas gdy <code>/livez</code> pozostaje <code>200</code>, więc proces nie jest natychmiast zabijany <a href="#ref-1">[1]</a>. Konfigurowalny czas oczekiwania na drenaż utrzymuje węzeł w stanie drenażu wystarczająco długo, aby schedulery przestały wysyłać nowe zadania, zanim proces przestanie je przyjmować. Brama sonduje <code>/readyz</code>, a nie tylko liveness, a jej przełączanie awaryjne na poziomie pojedynczych żądań obsługuje garstkę żądań, które wyprzedzają okno drenażu <a href="#ref-1">[1]</a>.

Drenaż, nie odrzucanie

Gdy worker otrzymuje sygnał zatrzymania, przechodzi w tryb drenażu: <code>/readyz</code> zwraca <code>503</code>, żądania w trakcie realizacji są kończone, a dopiero potem proces się kończy <a href="#ref-2">[2]</a>. Czas drenażu ustawia się za pomocą <code>AISUITE_DRAIN_SECONDS</code>, a osobny budżet zamknięcia ogranicza, jak długo proces czeka na zakończenie zadań w trakcie realizacji. Wpis w puli nigdy się nie zmienia; ten sam adres wraca jako zdrowy w nowej wersji, a brama wznawia kierowanie do niego ruchu.

Brama robi resztę

W farmie zatrzymujesz jednego workera na raz. Panel bramy pokazuje, że worker przechodzi w stan DRAINING, potem DOWN, podczas gdy ruch jest kontynuowany na pozostałych; wymieniasz obraz, a węzeł wraca jako HEALTHY na nowej wersji, zanim przejdziesz do następnego <a href="#ref-1">[1]</a>. W trakcie tego procesu nie zmienia się konfiguracja bramy. To sondowanie stanu zdrowia, a nie edycja konfiguracji, kieruje ruchem.

Kubernetes: zero przestojów z założenia

Na Kubernetes te same sondy sprawiają, że <code>kubectl rollout</code> jest bezpieczne bez dodatkowych narzędzi: sonda liveness na <code>/livez</code>, sonda readiness na <code>/readyz</code> oraz <code>terminationGracePeriodSeconds</code> ustawiony na wartość równą lub wyższą niż suma czasu drenażu i zamknięcia <a href="#ref-2">[2]</a>. Orkiestrator przestaje kierować ruch do drenującego się poda, odczekuje okres karencji i uruchamia kolejny.

Dlaczego to ma znaczenie

„Update Tuesday” nie powinien istnieć dla punktu końcowego AI, od którego zależą inne aplikacje. To także mechanizm potwierdzający dostępność farmy bram końcowych od początku do końca: patchowanie nie jest przestojem i utrzymuje się pod obciążeniem, a nie tylko na cichym konsoli <a href="#ref-1">[1]</a><a href="#ref-3">[3]</a>.