아티클 관련 제품: SparklingSoDA3.0
오류 메세지 혹은 현상
- 프로젝트에 새로운 user를 추가한 후, engine 구동 완료가 되었습니다.
- 그 후, 새로 추가주피터 노트북 Login을 하였습니다.
- jupyter노트북이 열리지 않고, sorry for inconvenience 문구가 뜹니다.
원인
- 구동 된 엔진의 로그를 살펴보아야 합니다.
kubectl get po NAME READY STATUS RESTARTS AGE devai-59c6bbd7bf-lwhkp 1/1 Running 1 5d22h devai-monitor-69959fbdc8-x7fmm 1/1 Running 1 5d22h devai-service-mariadb-6b8cc7855d-29l6m 2/2 Running 2 5d22h devai-svc-68c467bcb9-r8bwg 1/1 Running 1 5d22h gitlab-server-gitlab-2gsfk 1/1 Running 8 455d gitlab-server-postgresql-vtmnv 1/1 Running 25 455d gitlab-server-redis-f528h 1/1 Running 36 455d jupyterhub-2-0-7-1-7bff5977b4-gc5c7 2/2 Running 14 382d nginx-ingress-controller-7b4d84d69d-phdk7 1/1 Running 7 455d nginx-ingress-default-backend-799d4df74f-ghhnz 1/1 Running 7 455d tiller-deploy-7848f5cf7c-bq8lt 1/1 Running 7 455d
pod를 조회한 뒤, 해당 프로젝트의 엔진 pod 이름을 찾습니다.
위 예시에서는 jupyterhub-2-0-7-1-7bff5977b4-gc5c7 입니다.
찾은 pod 이름으로 log를 확인해봅니다.kubectl logs <jupyterhub pod name> hub >>>> current user: <user name> create project git local repository..<user name> <user emai> <project name> Cloning into '<project name>'... error: RPC failed; HTTP 504 curl 22 The requested URL returned error: 504 Gateway Time-out fatal: The remote end hung up unexpectedly
로그를 조회해본 결과, clone_gitproject.sh 가 수행될 때 error가 발생하였습니다.
새로운 user가 추가되어, 해당 user에 한해 git clone을 해오는 과정에서 time-out이 발생하였습니다.
이러한 이유로 제대로 clone해오지 못해, 정상적인 jupyter login이 실패하였습니다.
문제 해결
- git proxy time out 설정
git proxy connect time out, git proxy send time out, git proxy read time out 값을 여유 있게 설정해 줍니다.- 먼저, gitlab ingress 를 찾습니다.
kubectl get ing | grep git gitlab-server-gitlab * 80 455d
- gitlab ingress를 수정합니다.
kubectl edit ing gitlab-server-gitlab ingress.kubernetes.io/proxy-connect-timeout: "36000" ingress.kubernetes.io/proxy-send-timeout: "36000" ingress.kubernetes.io/proxy-read-timeout: "36000"
- 저장 후 나갑니다.
kubectl edit ing gitlab-server-gitlab ingress.extensions/gitlab-server-gitlab edited
- 먼저, gitlab ingress 를 찾습니다.
- git branch 생성
기존에 프로젝트를 사용 중이던 user로 로그인 한 뒤, git branch를 생성합니다.- jupyter노트북으로 로그인한 뒤, New > Terminal 을 클릭합니다.
- 프로젝트 디렉터리로 이동합니다.
cd <project name>
- git branch 를 생성합니다.
git checkout --orphan test git rm -rf . git commit --allow-empty -m "init server manager" git push origin test
- 다시 원래 master branch 로 변경해줍니다.
git checkout master
- jupyter노트북으로 로그인한 뒤, New > Terminal 을 클릭합니다.
git clone 수정
clone_gitproject.sh 를 수정하여, 새로운 user에게 빈 branch를 clone해오도록 합니다.
- devai/jupyter_hub/ 로 이동합니다.
cd <sparklingsoda install directory>/devai/jupyter_hub
- clone_gitproject.sh를 백업 후, 수정합니다.
cp cloen_gitproject.sh clone_gitproject.sh.org vi clone_gitproject.sh su $user -c "git clone -b test http://gitlab-server-gitlab/${GIT_ROOT}/${PROJECT}.git"
git clone 해오는 명령어를 -b test 를 추가합니다.
- pod 재기동
pod를 삭제하면, 다시 올라오면서 엔진의 정상적인 로그를 확인할 수 있습니다.kubectl delete po <jupyterhub pod name> >>>> current user: <user name> create project git local repository..<user name> <user emai> <project name> Cloning into '<project name>'... Enabling tree extension jupyter_tensorboard/tree... - Validating: [32mOK[0m Enabling: jupyter_tensorboard - Writing config: /home/<user name>/.jupyter - Validating... jupyter_tensorboard 0.1.9 [32mOK[0m
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.