운영 작업

Kubernetes 중지·제거

남는 리소스와 데이터 범위를 확인하고 chart를 제거한다

무엇을 하게 되나

세션을 먼저 멈추고 chart를 제거하되 남는 worker·PVC·Secret·hook Job을 구분한다.

준비물

올바른 kubectl context·namespace·Helm release, DB·bucket 백업과 종료할 세션 목록이 필요하다. PVC 삭제는 checkpoint되지 않은 작업을 지운다.

단계

1. 실행 중지와 데이터 확인

새 세션 접수를 중지하고 진행 중 turn을 마무리한다. 세션 종료·checkpoint 여부와 worker 실행 부재를 확인한다. scheduler만 내린다고 worker가 끝나지 않는다.

2. chart 제거

helm -n werft uninstall werft

3. 남은 리소스 조사

helm uninstall이 남기는 것은 다음과 같다.

  • scheduler가 만든 worker Pod, nonce Secret, workspace PVC. 지우기 전에 세션이 끝났는지(또는 checkpoint됐는지) 본다. PVC를 지우면 checkpoint되지 않은 작업이 사라진다. 목록: kubectl -n werft get pods,secrets,pvc -l app.kubernetes.io/part-of=werft,werft.installation=<installationId>
  • hook으로 만든 migrate Job과 upgrade-check Job, ExternalSecret과 그것이 쓴 Secret(creationPolicy: Orphan). 직접 만든 Secret도 남는다. 남은 Job은 다음 설치를 막지 않는다. 같은 이름의 hook이 돌 때 Helm이 먼저 지운다. 지금 지우려면 kubectl -n werft delete job werft-migrate werft-upgrade-check --ignore-not-found를 돌린다.

확인

Helm release와 제어 영역 Deployment가 제거됐는지 확인한다. 남은 worker Pod·nonce Secret·workspace PVC·hook Job·ExternalSecret·사용자 Secret의 목록을 따로 남긴다. DB와 S3 bucket은 chart가 만들거나 삭제하지 않는다.

자주 막히는 곳

worker를 종료하지 않은 채 scheduler를 제거하면 실행과 PVC가 남을 수 있다. 데이터가 필요하면 PVC를 지우지 않는다. hook Job은 같은 이름으로 다음 설치를 막지 않으며 다음 hook 때 교체된다.

되돌리기

같은 namespace와 보존된 DB·Secret·bucket으로 정확한 chart 버전을 재설치한다. 재설치 전 호환성 검사를 읽는다. 삭제한 PVC의 미checkpoint 작업을 chart 재설치가 복구하지는 못한다.

다음에 읽을 곳

Kubernetes 설치, Kubernetes 업그레이드.

이 페이지