재부팅 처리
재부팅 시 발생하는 일
섹션 제목: “재부팅 시 발생하는 일”워크스페이스 컨테이너는 호스트 재부팅 후 자동으로 재시작되지 않습니다.
재부팅 후 LabPod가 시작되면, 조정자(reconciler)는 호스트 부팅 ID가 변경된 것을 감지하고 다음과 같이 처리합니다:
- 재부팅 전에
running상태였던 모든 워크스페이스를stopped로 표시합니다. - 감사 로그에
host_rebooted이벤트를 기록합니다. - 사용자는 워크스페이스가 중지 상태로 표시된 것을 확인하고 시작 버튼을 클릭해 재시작할 수 있습니다.
메모리에 있던 상태는 사라집니다: Jupyter 커널, 실행 중인 학습 프로세스, 터미널 세션은 재부팅 후 유지되지 않습니다. 그러나 /work(bind 마운트 대상인 ~/work)에 저장된 작업은 모두 유지됩니다.
재부팅 후 검증
섹션 제목: “재부팅 후 검증”# 1. Confirm the service is runningsudo systemctl status labpod
# 2. Check the API is respondingcurl -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.# Run these as root# 1. Confirm the service is runningsystemctl status labpod
# 2. Check the API is respondingcurl -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이 여전히 올바르게 구성되어 있는지 확인합니다:
# 1. Verify user linger is enabledsudo loginctl show-user <username> | grep Linger# Should show: Linger=yes
# 2. List the user's containerssudo runuser -u <username> -- podman ps -a --filter name=labpod-ws-<id>
# 3. Check container logs for the failed startsudo runuser -u <username> -- podman logs labpod-ws-<id># Run these as root# 1. Verify user linger is enabledloginctl show-user <username> | grep Linger# Should show: Linger=yes
# 2. List the user's containersrunuser -u <username> -- podman ps -a --filter name=labpod-ws-<id>
# 3. Check container logs for the failed startrunuser -u <username> -- podman logs labpod-ws-<id>재부팅 후 일반적인 원인:
- Linger가 설정되지 않음:
sudo loginctl enable-linger <username>을 실행하고 다시 시도합니다. - 이미지가 정리됨: Podman이 이미지를 찾지 못합니다. 다시 pull될 때까지 워크스페이스가 실패합니다. 워크스페이스 상세 페이지에서 오류를 확인할 수 있습니다.
- 포트 충돌: LabPod가 관리되는 풀에서 포트를 할당하므로 드뭅니다.
재부팅 후 전반적인 상태를 점검하려면 sudo labpod admin doctor를 실행합니다.