운영 및 문제 해결
모델 구성 업데이트, 자격 증명 교체, 상태 모니터링, 로그 수집 및 일반적인 연결 및 인증 문제 해결을 포함하여 Model Gateway 배포를 모니터링, 유지 관리 및 문제 해결합니다.
배포 후 Model Gateway를 지속적으로 운영 관리하면 구성된 AI 모델에 안정적으로 액세스하고 서비스 중단을 최소화할 수 있습니다. 관리자는 활성 모델 구성을 검토하고, 제공자 자격 증명을 업데이트하고, 시크릿을 교체하고, 게이트웨이 상태를 모니터링하고, 문제가 발생했을 때 진단 정보를 수집할 수 있습니다.
구성된 모델 확인
모델을 확인하는 데는 구성 수준과 런타임에 bob-inference가 실제로 로드한 내용이라는 두 가지 수준이 있습니다.
- 구성 수준 — 추론 ConfigMap에서 현재 Model Gateway 구성을 검색합니다:
oc get cm bob-inference-config -n <bob-namespace> -o yaml | yq '.data."config.yaml"' - 런타임 수준 —
bob-inference가 등록하고 활발하게 라우팅 중인 대상:oc exec -n <bob-namespace> deploy/bob-gateway -- \ curl -sk https://bob-inference.<bob-namespace>.svc.cluster.local:7330/v1/model/info | jq .
런타임 /v1/model/info 엔드포인트에는 exposed: true인 모델만 나열됩니다. 구성 파일은 구성된 전체 모델 세트를 볼 수 있는 유일한 방법입니다.
제공자 자격 증명 업데이트
자격 증명은 config.yaml의 bob.modelGateway.secrets 아래에 저장됩니다. bobctl update-model-config --update-secrets를 사용하여 업데이트된 자격 증명을 클러스터에 푸시합니다.
자격 증명 업데이트
config.yaml의 bob.modelGateway.secrets 아래에서 자격 증명을 업데이트합니다.
업데이트된 시크릿을 클러스터에 푸시
bobctl update-model-config --update-secretsibm-bob-operator가 bob-inference 배포를 조정하고 새 시크릿을 자동으로 마운트합니다.
모델 구성 파일과 자격 증명을 동시에 업데이트하는 경우 하나의 명령으로 둘 다 푸시할 수 있습니다:
bobctl update-model-config --model-config ./my-model-config.yaml --update-secrets시크릿 교체
시크릿 교체는 자격 증명 업데이트와 동일한 패턴을 따르며 다운타임을 방지하기 위해 타이밍에 추가적인 주의를 기울여야 합니다.
권장 무중단 교체 순서:
config.yaml의bob.modelGateway.secrets를 새 자격 증명 값으로 업데이트합니다.- 새 시크릿을 클러스터에 푸시합니다:
bobctl update-model-config --update-secrets. - 새 시크릿을 적용하기 위해 Inference Service를 재시작합니다:
oc rollout restart deploy/inference-service -n <bob-namespace> - 설치 후 검증의 추론 테스트를 사용하여 새 자격 증명이 작동하는지 확인합니다.
- 배포가 정상으로 확인된 후에만 제공자 측에서 이전 자격 증명을 취소합니다.
제공자별 참고 사항:
openai_compatible/ API 키 — 새 키는 시크릿이 업데이트된 후 즉시 적용됩니다. 배포가 정상이면 이전 키를 안전하게 취소할 수 있습니다.bedrock—update-model-config를 실행하기 전에 AWS에서 새 IAM 액세스 키가 활성화되어 있는지 확인하세요. IAM 전파에는 몇 초가 걸릴 수 있습니다.vertex— 새 서비스 계정 키를 생성하고 base64로 인코딩한 후config.yaml을 업데이트하고bobctl update-model-config --update-secrets를 실행하여 확인한 다음 GCP에서 이전 키를 삭제합니다.ca_cert_pem— 인증서 갱신 시 적용하기 전에 새 인증서가 만료되지 않았는지 확인하세요. TLS 인증서 검증을 참조하세요.
게이트웨이 상태 모니터링
파드 재시작 횟수 — 증가하는 재시작 횟수는 반복적인 시작 실패(잘못된 시크릿 마운트, 구성 구문 분석 오류)의 조기 신호입니다:
oc get pods -n <bob-namespace> -l app=bob-inference \
-o custom-columns='NAME:.metadata.name,RESTARTS:.status.containerStatuses[0].restartCount'Liveness 및 Readiness 프로브 — 현재 프로브 구성 및 상태를 확인합니다:
oc describe deploy/bob-inference -n <bob-namespace> | grep -A 10 "Liveness\|Readiness"주기적인 상태 확인 — /v1/model/info 엔드포인트는 간단한 활성 상태 확인(liveness check) 역할을 합니다. 유효한 모델 목록을 반환하면 게이트웨이가 작동 중인 것입니다. 모니터링 도구나 클러스터 내부의 cron 작업에서 이를 폴링할 수 있습니다.
로그 및 진단 수집
특정 시간 범위의 로그 (보고된 인시던트를 조사할 때 가장 유용함):
oc logs -n <bob-namespace> deploy/bob-inference \
--since-time="2025-01-01T12:00:00Z" > bob-inference.log이전 파드 인스턴스의 로그 (파드가 재시작되어 실패 로그가 사라진 경우):
oc logs -n <bob-namespace> deploy/bob-inference --previous지원을 위한 전체 진단 번들:
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.txt진단 번들에는 파드 환경 변수 이름이 포함되어 있지만 시크릿 값은 포함되지 않습니다(시크릿은 마운트되며 로그에 인쇄되지 않음). 지원팀에 보내기 전에 실수로 자격 증명이 출력되었는지 로그를 검토하세요.
연결 및 인증 문제 해결
/v1/model/info에 모델이 표시되지 않음
exposed: false가 설정되어 있는지 확인하세요 — 설정되어 있다면 정상 동작입니다.- 시작 로그에서 해당
model_name에 대한 등록 오류를 확인하세요. - 제공자 블록을 확인하세요 — 올바른
base_url,modelID 및 자격 증명.
추론 요청 시 401 Unauthorized
bob.modelGateway.secrets의 시크릿 값이 올바르고 최신인지 확인하세요.- 모델 구성의
env.<VAR>참조가 시크릿 키 이름과 정확히 일치하는지 확인하세요(대소문자 구분). - Inference Service를 재시작하고 다시 시도하세요 — 재시작 없이 시크릿이 업데이트되었을 수 있습니다.
- 대역 외(out-of-band)로 자격 증명을 테스트하세요. 인증 유효성 검사를 참조하세요.
502 Bad Gateway 또는 connection refused
- 모델 엔드포인트가 가동 중이고 클러스터에서 연결할 수 있는지 확인하세요. 연결성 테스트를 참조하세요.
base_url문제(후행 슬래시, 잘못된 스키마(http대https), 잘못된 포트)를 확인하세요.- 설치 이후 아웃바운드 트래픽을 차단했을 수 있는 네트워크 정책 변경 사항을 확인하세요.
certificate signed by unknown authority
ca_cert_pem이 설정되어 있고 유효한 환경 변수를 참조하는지 확인하세요.- 해당 환경 변수가
bob.modelGateway.secrets에 존재하는지 확인하세요. - 인증서가 만료되지 않았는지 확인하세요:
openssl x509 -noout -dates. - 주체 대체 이름(Subject Alternative Names)을 확인하여 인증서가 엔드포인트의 호스트 이름을 다루는지 확인하세요.
Inference Service 파드가 CrashLoopBackOff 상태임
- 이전 인스턴스의 로그를 확인하세요:
oc logs --previous. - 구성 파싱 오류를 확인하세요 — Model Gateway 구성의 잘못된 형식의 YAML.
- Events 섹션에서 누락된 시크릿 마운트를 확인하세요:
oc describe pod. - 다시 적용하기 전에 Model Gateway 구성 YAML이 유효한지 확인하세요.