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:oc exec -n <bob-namespace> deploy/bob-gateway -- \ curl -sk https://bob-inference.<bob-namespace>.svc.cluster.local:7330/v1/model/info | jq .
Punkt końcowy /v1/model/info 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ą przechowywane w sekcji bob.modelGateway.secrets w config.yaml. Użyj bobctl update-model-config --update-secrets, aby przesłać zaktualizowane dane uwierzytelniające do klastra.
Aktualizacja danych uwierzytelniających
Zaktualizuj dane uwierzytelniające w config.yaml w sekcji bob.modelGateway.secrets.
Przesłanie zaktualizowanego sekretu do klastra
bobctl update-model-config --update-secretsOperator ibm-bob uzgadnia wdrożenie bob-inference i automatycznie montuje nowy sekret.
Jeśli aktualizujesz jednocześnie plik konfiguracyjny modelu i dane uwierzytelniające, możesz przesłać oba za pomocą jednego polecenia:
bobctl update-model-config --model-config ./my-model-config.yaml --update-secretsRotacja 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.secretswconfig.yamlnową wartością danych uwierzytelniających. - Prześlij nowy sekret do klastra:
bobctl update-model-config --update-secrets. - Uruchom ponownie usługę Inference Service, aby zastosować nowy sekret:
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 wdrożenia.
Uwagi specyficzne dla dostawców:
openai_compatible/ klucze API — nowy klucz obowiązuje natychmiast po aktualizacji sekretu. Bezpiecznie jest unieważnić stary klucz po potwierdzeniu kondycji wdrożenia.bedrock— upewnij się, że nowy klucz dostępu IAM jest aktywny w AWS przed uruchomieniemupdate-model-config. Propagacja IAM może potrwać kilka sekund.vertex— wygeneruj i zakoduj w base64 nowy klucz konta usługi, zaktualizujconfig.yaml, uruchombobctl update-model-config --update-secrets, 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/model/info 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/model/info
- 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.