Info

2024년에 직접 경험한 내용을 다루고 있습니다.

문제 상황

  • Jupyter Notebook을 K8s 환경에 배포하고, PVC를 마운트 한 상태에서
    PVC에 있는 파일을 UI 상에서 삭제할 수 없다는 문의가 들어왔습니다.

문제 원인

  • Jupyter Notebook UI에서 파일 삭제를 하면 즉시 영구 삭제가 이루어지는 것이 아니라,
    휴지통 폴더로 해당 파일을 이동시킵니다.
  • 이 과정에서 os.rename 함수를 사용하는데, 이 함수는 시작 위치와 도착 위치가 서로 다른 파일 시스템 상에 위치할 경우 작동하지 않습니다.1
  • 이 경우는 삭제할 파일이 PVC에 있고, 휴지통 폴더는 Pod 내부에 존재했기 때문에 에러가 발생하고 있었습니다.

해결 방법

  • os.rename 함수를 shutil.move 함수로 교체하거나
    shutil.copyos.remove 함수 조합을 사용할 수 있습니다.
    실제로는 두 번째 방법으로 수정2된 것으로 확인됩니다.
  • 하지만 문제가 발생한 사내에서는 Jupyter Notebook 버전이 고정되어 있었기 때문에 해결할 수 없었고, 관련된 내용만 공유하는 선에서 끝났습니다.

Footnotes

  1. Stack Overflow

  2. GitHub 내역