기록용 기술 블로그

Node drain 시 POD 재배치로 인한 서비스 중단

NKS에서 쿠버네티스 버전을 업데이트 하고자 새 버전의 node를 먼저 생성하고 기존 버전의 노드를 drain 하는 방법을 이용하고 있다. 근데 drain 시 기존 노드의 POD가 새 노드에 배포가 완료되기 전에 삭제되는 바람에 다른 노드에도 서비스가 존재하지 않다면 접속 장애가 발생한다. 이를 막기 위해 PodDisruptionBudget(P...

멀티모듈 (With Gradle)

멀티모듈이란? 멀티모듈이란 하나의 단일 프로젝트를 여러개의 모듈로 분리해서 구성하는 기법이다. 각 모듈은 개별적으로 컴파일되어 라이브러리 또는 실행가능한 파일로 생성된다. 기존 싱글 모듈로 구성된 프로젝트의 경우 아래와 같은 구조를 가지고 있다. Member라는 객체를 각각 모듈이 가지고있기 때문에 중복되는 코드가 많으며, 유지보수 시 ...

Node 삭제도 pod 우아하게 종료하기

네이버 클라우드 쿠버네티스 서비스를 이용중에 쿠버네티스 버전 업데이트를 진행하던 중 작업중인 POD가 삭제되는 문제가 발생했다. 콘솔에서 제공되는 업데이트 방식은 2가지 존재한다. ex) 기존 사용 노드 2대 일 때 노드풀 업데이트추가 증가 노드 개수를 2, 서비스 불가 가능 노드 개수 0 으로 진행 할 경우 기존 노드풀에서 새로운 버전의 워...

boot가 아직 준비되지 않았는데 기존 파드가 삭제될때

새로운 버전을 배포할 때, Deployment는 최신 버전을 먼저 실행하고, 실행이 완료되면 이전 버전의 파드를 삭제한다. 그러나 최신 버전의 파드는 정상적으로 실행됐지만 boot가 아직 준비상태가 아닌데 이전 버전의 파드가 삭제되면 최신 버전의 파드가 준비상태가 될 때 까지 접속 장애가 나타난다. boot가 준비 상태가 되어야만 파드가 실행 완료...

클라우드 환경 로그수집

📜 온프레미스 환경에서는 로그를 로컬 서버의 log 경로에 파일로 수집하여왔다. 로그 확인이 필요하면 서버에서 해당 날짜의 로그 파일을 열어 보는게 가능했다. 클라우드 서버에서는 서버가 분산처리 되어있다. 개수가 여러개라도 하나씩 들어가서 파일을 찾아 볼 수 있다면 그것은 가능하다. 하지만 Auto-Scaling을 염두해두었다면, 내가 모르...