설치 후 검증

서비스 상태, 모델 연결성, 추론 요청, 라우팅 동작 및 오류 처리를 검증하여 설치 후 Model Gateway가 올바르게 작동하는지 확인합니다.

Model Inference Gateway를 설치하고 구성한 후 배포가 올바르게 작동하는지 확인합니다. 다음 유효성 검사 작업을 순서대로 완료하세요. 다음 단계로 넘어가기 전에 각 단계가 성공했는지 확인하세요.

게이트웨이 상태 확인

Inference Service 파드가 실행 중이고 모든 컨테이너가 준비되었는지 확인합니다:

oc get pods -n <bob-namespace> -l app=bob-inference

게이트웨이 초기화에 대한 시작 로그를 확인합니다. 성공적인 시작 시 구성된 각 모델이 등록되는 로그가 기록됩니다. 자격 증명 또는 구성 구문 분석 오류는 여기서 나타납니다:

oc logs -n <bob-namespace> deploy/bob-inference --since=5m

클러스터 내에서 게이트웨이의 /v1/models 엔드포인트가 응답하는지 확인합니다 — 이는 서비스가 가동 중이고 구성을 로드했음을 나타내는 가장 확실한 신호입니다:

oc exec -n <bob-namespace> deploy/bob-gateway -- \
  curl -sk https://bob-inference.<bob-namespace>.svc.cluster.local:7330/v1/model/info | jq .

모델 연결성 검증

각 예상 model_name에 대해 /v1/models 응답을 확인합니다. 연결에 실패한 모델(잘못된 URL, 인증 오류, TLS 오류)은 목록에 없거나 오류 상태로 표시됩니다.

참고:

model_info에 exposed: true가 설정된 모델만 퍼블릭 /v1/models 목록에 표시됩니다. exposed: false가 설정된 모델(예: 가드레일 모델)은 표시되지 않지만 내부적으로는 여전히 접근할 수 있어야 합니다. 목록에 없다고 해서 항상 연결 실패를 의미하는 것은 아닙니다.

모델 추론 테스트

핵심 모델과 가드레일 모델 모두에 대해 클러스터 내부에서 Inference Service로 직접 최소 테스트 완료 요청을 전송합니다:

oc exec -n <bob-namespace> deploy/bob-gateway -- \
  curl -sk https://bob-inference.<bob-namespace>.svc.cluster.local:7330/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model_name>",
    "messages": [{"role": "user", "content": "Say hello."}],
    "max_tokens": 10
  }' | jq .

성공적인 응답에는 message.content 필드가 있는 choices 배열이 포함됩니다.

일반적인 오류:

HTTP 상태원인
401 Unauthorized잘못된 자격 증명 또는 권한 부족
404 Not Found지정된 모델 ID가 제공자에 존재하지 않음
502 Bad Gateway업스트림 모델 엔드포인트에 도달할 수 없음
경고:

가드레일 모델은 연결 가능하고 요청을 처리할 수 있어야 합니다. 가드레일 모델을 사용할 수 없는 경우 IBM Bob은 모든 추론 요청을 거부합니다. 설치가 완료된 것으로 간주하기 전에 가드레일 유효성 검사가 성공했는지 확인하세요.

모델 라우팅 검증

응답의 model 필드가 요청된 model_name과 일치하는지 확인하여 기본 모델이 올바르게 라우팅되는지 확인합니다.

모델 항목에 fallbacks가 구성된 경우 기본 모델의 base_url을 도달할 수 없는 호스트로 임시 지정하고 게이트웨이가 목록의 다음 모델로 대체되는지 확인하여 대체 경로를 검증합니다. 테스트 후 올바른 base_url을 복원하세요.

exposed: false인 모델의 경우 공개 모델 목록에 표시되지 않더라도 내부 라우팅이 여전히 올바르게 확인되는지 확인합니다.

오류 처리 검증

게이트웨이가 장애를 원활하게 처리하는지 확인하기 위해 다음과 같은 의도적인 부정 테스트를 실행합니다:

테스트트리거 방법예상 동작
잘못된 API 키시크릿에서 잘못된 키 값을 임시로 설정게이트웨이가 401을 반환하고 충돌하지 않음
연결할 수 없는 엔드포인트base_url을 유효하지 않은 호스트로 설정게이트웨이가 502 또는 503을 반환하고 업스트림 오류를 기록함
잘못된 형식의 모델 IDmodel을 존재하지 않는 ID로 설정제공자가 404를 반환하고 호출자에게 오류가 표시됨
누락된 시크릿 환경 변수bob.modelGateway.secrets에서 키 제거누락된 변수를 참조하는 기록된 오류와 함께 요청 시 실패
만료된 TLS 인증서만료된 인증서를 ca_cert_pem으로 제공요청 시 기록되는 TLS 핸드셰이크 실패

로그 수집 및 문제 해결

테스트 요청 중에 실시간 로그를 스트리밍하여 게이트웨이 라우팅 결정을 실시간으로 확인합니다:

oc logs -n <bob-namespace> deploy/bob-inference -f

지원팀과 공유하기 위한 전체 로그 덤프를 수집합니다:

oc logs -n <bob-namespace> deploy/bob-inference --since=1h > bob-inference.log

주요 로그 패턴:

로그 패턴의미
Model registered successfully게이트웨이가 오류 없이 모델 항목을 로드함
connection refused / no route to host모델 엔드포인트 연결 실패
업스트림의 401 / 403자격 증명이 잘못되었거나 필요한 권한이 없음
certificate signed by unknown authorityca_cert_pem에 CA 인증서가 누락되었거나 올바르지 않음
environment variable not foundenv.*로 참조된 시크릿이 마운트된 시크릿에 없음

이벤트 수준 오류의 경우(예: 컨테이너 시작을 방지하는 시크릿 마운트 실패):

oc describe pod -n <bob-namespace> -l app=inference-service

핵심 추론 모델 전환

설치 후 지원되는 하나의 핵심 추론 모델에서 다른 모델로 전환하려면:

새 모델이 배포되었는지 확인

새 모델이 배포되어 서비스 중인지 확인합니다. 모델 서빙 인프라를 참조하세요.

Model Gateway 구성 파일 업데이트

새 모델을 참조하도록 model-gateway.yaml을 업데이트합니다. Model Gateway 구성을 참조하세요.

변경 사항 적용

bobctl update-model-config를 사용하여 업데이트된 구성을 적용합니다:

bobctl update-model-config --model-config ./my-model-config.yaml --update-secrets

전체 플래그 참조는 구성 배포를 참조하세요.

이 주제는 어떤가요?