포스트

Pod 재시작하면 RAG가 죽는다 — pgvector 이미지 함정

Pod 재시작하면 RAG가 죽는다 — pgvector 이미지 함정

카드 생성이 갑자기 안 됐다. 서버 로그:

1
could not access file "$libdir/vector": No such file or directory

RAG 검색도 죽었다. pgvector가 사라졌다.

원인

ArgoCD가 postgres StatefulSet을 재생성하면서 새 Pod이 떴다. PVC(데이터)는 살아있었지만, 컨테이너 이미지postgres:15-alpine이었다. 이 이미지에는 pgvector가 없다.

이전에 수동으로 Pod 안에서 apt install postgresql-15-pgvector로 설치했던 것이라, Pod이 재생성되면 원래 이미지로 돌아가서 pgvector가 사라진다.

해결

postgres 이미지를 pgvector가 포함된 공식 이미지로 교체:

1
2
3
4
5
# 이전
image: postgres:15-alpine

# 이후
image: pgvector/pgvector:pg15

Helm values, k8s-manifests, ArgoCD source 세 곳에 모두 반영해야 했다. ArgoCD가 self-heal로 이전 이미지로 되돌리는 함정도 있었다.

교훈

컨테이너 안에서 수동 설치한 건 Pod 재시작하면 사라진다. 필요한 패키지는 이미지 자체에 포함되어야 한다. postgres:15-alpine에 pgvector를 수동 설치하지 말고, pgvector/pgvector:pg15를 쓰자.

데이터는 PVC에 살아있어도, 데이터를 읽는 확장 프로그램이 없으면 소용없다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.