Operacje i rozwiązywanie problemów
Monitoruj, utrzymuj i rozwiązuj problemy z wdrożeniami bramy modelu, w tym aktualizacje konfiguracji modelu, rotację danych uwierzytelniających, monitorowanie kondycji, zbieranie dzienników i rozwiązywanie typowych problemów z łącznością i uwierzytelnianiem.
Po wdrożeniu bieżące zarządzanie operacyjne bramy modelu pomaga zapewnić niezawodny dostęp do skonfigurowanych modeli AI i minimalizuje zakłócenia usług. Administratorzy mogą przeglądać aktywne konfiguracje modeli, aktualizować dane uwierzytelniające dostawców, rotować sekrety, monitorować kondycję bramy i zbierać informacje diagnostyczne w przypadku wystąpienia problemów.
Przeglądanie skonfigurowanych modeli
Przeglądanie modeli odbywa się na dwóch poziomach — co jest w konfiguracji i co bob-inference faktycznie załadował w czasie uruchamiania.
- Poziom konfiguracji — pobierz bieżącą konfigurację bramy modelu z ConfigMap wnioskowania:
oc get cm bob-inference-config -n <bob-namespace> -o yaml | yq '.data."config.yaml"' - Poziom uruchamiania — co
bob-inferencezarejestrował i aktywnie do czego kieruje: zapytaj bezpośrednio punkt końcowy/v1/models(zobacz Weryfikacja łączności z modelami).
Punkt końcowy /v1/models w czasie uruchamiania wyświetla tylko modele z exposed: true. Plik konfiguracyjny jest jedynym sposobem na wyświetlenie pełnego zestawu skonfigurowanych modeli.
Aktualizowanie danych uwierzytelniających dostawców
Dane uwierzytelniające są montowane jako zmienne środowiskowe z bob.modelGateway.secrets. Ich aktualizacja to operacja dwuetapowa — zaktualizuj wartość sekretu, a następnie uruchom ponownie usługę wnioskowania, aby pobrać nowe montowanie.
Aktualizacja sekretu
Edytuj CR Bob i zastosuj nową wartość:
oc edit bob <instance-name> -n <bob-namespace>
# Zaktualizuj wartość w sekcji bob.modelGateway.secretsPonowne uruchomienie usługi wnioskowania
Uruchom ponownie usługę wnioskowania, aby nowy sekret został zamontowany:
oc rollout restart deploy/inference-service -n <bob-namespace>
oc rollout status deploy/inference-service -n <bob-namespace>Pod usługi wnioskowania musi zostać uruchomiony ponownie po każdej aktualizacji sekretu. Zmiany konfiguracji modelu (dodawanie lub usuwanie modeli, zmiana base_url) i zmiany sekretów mogą być zgrupowane w jednej aktualizacji CR, a następnie po jednym restarcie.
Rotacja sekretów
Rotacja sekretów przebiega według tego samego wzorca co aktualizacja danych uwierzytelniających, z dodatkową dbałością o czas, aby uniknąć przestojów.
Zalecana sekwencja rotacji bez przestojów:
- Zaktualizuj
bob.modelGateway.secretsnową wartością danych uwierzytelniających. - Uruchom ponownie usługę wnioskowania:
oc rollout restart deploy/inference-service -n <bob-namespace>. - Potwierdź, że nowe dane uwierzytelniające działają, używając testu wnioskowania z artykułu Weryfikacja po instalacji.
- Unieważnij stare dane uwierzytelniające po stronie dostawcy dopiero po potwierdzeniu kondycji poda.
Uwagi specyficzne dla dostawców:
openai_compatible/ klucze API — nowy klucz obowiązuje natychmiast po restarcie. Bezpiecznie jest unieważnić stary klucz po potwierdzeniu kondycji poda.bedrock— upewnij się, że nowy klucz dostępu IAM jest aktywny w AWS przed restartem. Propagacja IAM może potrwać kilka sekund.vertex— wygeneruj i zakoduj w base64 nowy klucz konta usługi, zaktualizuj sekret, uruchom ponownie i zweryfikuj, a następnie usuń stary klucz w GCP.ca_cert_pem— podczas odnawiania certyfikatu sprawdź, czy nowy certyfikat nie wygasł, przed zastosowaniem. Zobacz Weryfikacja certyfikatu TLS.
Monitorowanie kondycji bramy
Liczba restartów podów — rosnąca liczba restartów to wczesny sygnał powtarzającej się awarii uruchamiania (zły montaż sekretu, błąd parsowania konfiguracji):
oc get pods -n <bob-namespace> -l app=bob-inference \
-o custom-columns='NAME:.metadata.name,RESTARTS:.status.containerStatuses[0].restartCount'Sondy liveness i readiness — sprawdź bieżącą konfigurację i status sond:
oc describe deploy/bob-inference -n <bob-namespace> | grep -A 10 "Liveness\|Readiness"Okresowe sprawdzanie kondycji — punkt końcowy /v1/models służy jako prosta kontrola liveness. Jeśli zwraca prawidłową listę modeli, brama działa. Można go odpytywać z narzędzia monitorującego lub zadania cron wewnątrz klastra.
Zbieranie dzienników i diagnostyki
Dzienniki dla określonego okna czasowego (najbardziej przydatne podczas badania zgłoszonego incydentu):
oc logs -n <bob-namespace> deploy/bob-inference \
--since-time="2025-01-01T12:00:00Z" > bob-inference.logDzienniki z poprzedniej instancji poda (jeśli pod był restartowany i dzienniki awarii zniknęły):
oc logs -n <bob-namespace> deploy/bob-inference --previousPełny pakiet diagnostyczny dla wsparcia:
oc describe pod -n <bob-namespace> -l app=bob-inference >> diagnostics.txt
oc get events -n <bob-namespace> --sort-by='.lastTimestamp' >> diagnostics.txt
oc logs -n <bob-namespace> deploy/bob-inference --since=1h >> diagnostics.txtPakiet diagnostyczny zawiera nazwy zmiennych środowiskowych podów, ale nie wartości sekretów (sekrety są montowane, a nie drukowane w dziennikach). Przejrzyj dzienniki pod kątem przypadkowego wyjścia danych uwierzytelniających przed wysłaniem do wsparcia.
Rozwiązywanie problemów z łącznością i uwierzytelnianiem
Model nie pojawia się w /v1/models
- Sprawdź, czy ustawiono
exposed: false— jeśli tak, to oczekiwane zachowanie. - Sprawdź dzienniki startowe pod kątem błędu rejestracji dla tej wartości
model_name. - Zweryfikuj blok dostawcy — prawidłowy
base_url, IDmodeli dane uwierzytelniające.
401 Unauthorized przy żądaniach wnioskowania
- Potwierdź, że wartość sekretu w
bob.modelGateway.secretsjest prawidłowa i aktualna. - Potwierdź, że odwołanie
env.<VAR>w konfiguracji modelu dokładnie odpowiada nazwie klucza sekretu (rozróżniana jest wielkość liter). - Uruchom ponownie usługę wnioskowania i spróbuj ponownie — sekret mógł zostać zaktualizowany bez restartu.
- Przetestuj dane uwierzytelniające poza pasmem. Zobacz Weryfikacja uwierzytelniania.
502 Bad Gateway lub connection refused
- Potwierdź, że punkt końcowy modelu jest dostępny z klastra. Zobacz Testowanie łączności.
- Sprawdź problemy z
base_url— końcowe ukośniki, nieprawidłowy schemat (httpvshttps), nieprawidłowy port. - Sprawdź zmiany zasad sieciowych, które mogły zablokować ruch wychodzący od czasu instalacji.
certificate signed by unknown authority
- Potwierdź, że
ca_cert_pemjest ustawiony i odwołuje się do prawidłowej zmiennej środowiskowej. - Potwierdź, że zmienna środowiskowa jest obecna w
bob.modelGateway.secrets. - Sprawdź, czy certyfikat nie wygasł:
openssl x509 -noout -dates. - Potwierdź, że certyfikat obejmuje nazwę hosta punktu końcowego, sprawdzając Subject Alternative Names.
Pod usługi wnioskowania w stanie CrashLoopBackOff
- Sprawdź dzienniki z poprzedniej instancji:
oc logs --previous. - Szukaj błędów parsowania konfiguracji — nieprawidłowy YAML w konfiguracji bramy modelu.
- Szukaj brakujących montowań sekretów w sekcji Events:
oc describe pod. - Sprawdź, czy YAML konfiguracji bramy modelu jest prawidłowy przed ponownym zastosowaniem.