콘텐츠로 이동

재부팅 처리

워크스페이스 컨테이너는 호스트 재부팅 후 자동으로 재시작되지 않습니다.

재부팅 후 LabPod가 시작되면, 조정자(reconciler)는 호스트 부팅 ID가 변경된 것을 감지하고 다음과 같이 처리합니다:

  1. 재부팅 전에 running 상태였던 모든 워크스페이스를 stopped로 표시합니다.
  2. 감사 로그에 host_rebooted 이벤트를 기록합니다.
  3. 사용자는 워크스페이스가 중지 상태로 표시된 것을 확인하고 시작 버튼을 클릭해 재시작할 수 있습니다.

메모리에 있던 상태는 사라집니다: Jupyter 커널, 실행 중인 학습 프로세스, 터미널 세션은 재부팅 후 유지되지 않습니다. 그러나 /work(bind 마운트 대상인 ~/work)에 저장된 작업은 모두 유지됩니다.

Terminal window
# 1. Confirm the service is running
sudo systemctl status labpod
# 2. Check the API is responding
curl -s http://127.0.0.1:24680/api/version
# 3. In the UI: verify that previously-running workspaces show "stopped"
# with a host_rebooted audit entry.
Terminal window
# Run these as root
# 1. Confirm the service is running
systemctl status labpod
# 2. Check the API is responding
curl -s http://127.0.0.1:24680/api/version
# 3. In the UI: verify that previously-running workspaces show "stopped"
# with a host_rebooted audit entry.

재부팅 후 시작이 실패하는 경우

섹션 제목: “재부팅 후 시작이 실패하는 경우”

워크스페이스 소유자의 루트리스 Podman이 여전히 올바르게 구성되어 있는지 확인합니다:

Terminal window
# 1. Verify user linger is enabled
sudo loginctl show-user <username> | grep Linger
# Should show: Linger=yes
# 2. List the user's containers
sudo runuser -u <username> -- podman ps -a --filter name=labpod-ws-<id>
# 3. Check container logs for the failed start
sudo runuser -u <username> -- podman logs labpod-ws-<id>
Terminal window
# Run these as root
# 1. Verify user linger is enabled
loginctl show-user <username> | grep Linger
# Should show: Linger=yes
# 2. List the user's containers
runuser -u <username> -- podman ps -a --filter name=labpod-ws-<id>
# 3. Check container logs for the failed start
runuser -u <username> -- podman logs labpod-ws-<id>

재부팅 후 일반적인 원인:

  • Linger가 설정되지 않음: sudo loginctl enable-linger <username>을 실행하고 다시 시도합니다.
  • 이미지가 정리됨: Podman이 이미지를 찾지 못합니다. 다시 pull될 때까지 워크스페이스가 실패합니다. 워크스페이스 상세 페이지에서 오류를 확인할 수 있습니다.
  • 포트 충돌: LabPod가 관리되는 풀에서 포트를 할당하므로 드뭅니다.

재부팅 후 전반적인 상태를 점검하려면 sudo labpod admin doctor를 실행합니다.