저는 백엔드 개발자이지만 인프라를 구성하는 것에 관심이 많아 취미와 학습을 위해서 집에 홈서버를 구축해서 사용하고 있습니다.
제가 사용하고 있는 홈서버의 용도와 목적에 대해서 소개하려고 합니다.
추가로 안정적으로 서버를 운영하고 고가용성을 보장하기 위해 적용한 방법들도 소개해드리려 합니다.
컴퓨터방에 마련해놓은 서버들 😀
네트워크 구성도입니다.
포트수 확보와 내부 네트워크간 통신의 안정성을 위해 공유기 하단에 관리형 허브인 gs308e를 배치해두었습니다
추가로 혹시모를 정전이나 전기불량으로 호스트가 다운되거나 하는 상황을 방지하기위해서 허브에 연결되어 있는 기기들은 전부 UPS에 연결해두었습니다.
Proxmox OS위에 여러 가상머신들이 설치되어 있어요
Proxmox 호스트 목록
Proxmox 대시보드
harbor 컨테이너 이미지 저장소
쿠버네티스 노드 목록
쿠버네티스 마스터 노드에 접근할 수 있는 통로(게이트웨이 역할)이자 여러 마스터 노드간에 로드밸런싱을 담당하고 있습니다.
쿠버네티스의 마스터 노드가 죽게되면 쿠버네티스 클러스터에 접근을 할수 없기 때문에 마스터 노드를 다중화 하여 노드가 하나가 죽더라도 나머지 두개의 마스터 노드로 정상적으로 운영될 수 있도록 해주었습니다.
가상머신의 노드에 HAProxy를 구성할수도 있지만 (남는 보드가 하나 있기도 해서😊) 안정성을 위해 쿠버네티스 노드 외부에서 게이트웨이 역할을 할수 있도록 해주었습니다.
HAProxy 대시보드
외부에서 들어오는 요청을 전달받아 내부 네트워크로 포워딩을 해주고 있습니다.
리버스 프록시를 사용해 소유한 도메인의 서브도메인을 통해 서비스를 접근할 수 있도록 구성되어 있습니다
(e.g. a.example.com -> A서비스, b.example.com -> B서비스)
네트워크로 파일을 공유해주는 역할도 하고 있습니다
현재는 가상머신의 노드의 디스크로 NFS를 일부 사용하고 있고 추후에는 쿠버네티스 노드의 데이터 저장공간으로 NFS를 사용하여 활용할 예정입니다.
리버스 프록시
NAS에 저장되고 있는 가상머신 데이터
proxmox와 쿠버네티스 노드에 여러 서비스들을 올려서 사용하고 있습니다.
쿠버네티스가 여러 서비스들을 쉽게 배포할 수 있도록 도와주고 있어요 😎
처음에는 나스로 시작해서 서버용 PC도 구성하게되고 결국에는 쿠버네티스도 공부해서 클러스터를 운영하게 되었습니다.
그러다보니 홈 서버에 구성되어 있는 것들이 하나 두개씩 생기고 누군가에게 소개해보면 좋을 것 같다는 생각에 게시글을 작성하게 되었네요.
많이 부족하지만 혹시라도 비슷하게 홈서버를 구성하고 싶으신 분들이나 인프라에 관심있으신 분들에게 많은 도움이 되었으면 좋겠습니다. 😁
쿠버네티스를 하드웨어(?)로 구현해볼 생각은 못 했는데 멋지시네요! 지금은 클라우드 프리티어로 근근히 버티고 있는데 기회되면 저도 한번 따라해 보고 싶습니다. 유지비용(전기세)도 생각보다 많이 안 드네요! :)
오... 저는 라즈베리파이4 5개로 kubeadm을 사용해서 k8s클러스터를 구성했는데...
잘 구현하셨네요
저는 깃랩CI/CD를 집에서도 구축해보고 싶어서 시작했는데
어쩌다보니 k8s클러스터 구축까지 가지더라구요 ㅋㅋ
의외로 라즈베리파이4로도 웬만한 웹서비스는 잘 돌아가서 놀라긴 했습니다
(티끌? 만한 서버도 5대가 모이니 ㄷㄷ)
글 잘 읽고 갑니다!
좋은글 감사합니다 초기 비용 제외하고 유지 비용이 얼마나 나오실까요?
전기세도 꽤 된다고 하던데❔❔