사이드 프로젝트를 배포하는 홈 서버가 따로 있는데, 사실 홈 서버 자체는 올해 3월쯤에 형에게 지원을 받아 직접 구축을 했었는데 이를 기술 블로그 컨텐츠로 작성하려고 했지만 유야무야 넘어간 부분이 있다.
어쨌든 3월에 구축한 홈 서버는 docker-compose로 백엔드 어플리케이션 서버를 배포하고 정적 페이지는 nginx로 서빙을 하며 nginx가 백엔드의 리버스 프록시 역할을 하고 있었다.
하지만 이전 직장에서 NKS를 통해 쿠버네티스 환경을 구축하고 그 환경에서 개발을 했었던 입장에서 홈 서버도 똑같이 구현을 해두면 사이드 프로젝트를 하면서도 지속적으로 쿠버네티스 관련 기술을 습득할 수 있지 않을까 하는 생각이 들어 홈 서버에 minikube를 세팅하게 되었다.
(개인 Mac에는 minikube를 깔았으면서 홈 서버에는 왜 진작에 그러지 않았을까...!)
쿠버네티스 공식 문서의 소개에 따르면 minikube는 로컬 쿠버네티스로, 간단하고 쉽게 쿠버네티스 환경을 배우고 개발하는데에 포커스를 맞춘 도구이다.
Docker와 같은 컨테이너 런타임이 있으면 쉽게 설치 및 구성이 가능하며, 쿠버네티스에서 지원하는 각종 애드온을 사용할 수 있다.
minikube를 설치하게 되면 단일 노드 쿠버네티스 클러스터가 구성이 된다.
설치 방법은 아주 간단하다.
https://minikube.sigs.k8s.io/docs/start/?arch=%2Fmacos%2Farm64%2Fstable%2Fbinary+download
위의 사이트에서 설치하려는 OS를 지정한 뒤, OS에 맞는 설치 절차를 진행하면 된다.
나같은 경우 Ubuntu Server를 사용하고 있었기 때문에 binary로 설치하였다.
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
minikube 설치가 끝났다면 minikube를 실행해준다.
minikube start
minikube를 통해 클러스터를 관리하기 위해서 기본적으로는 minikube kubectl -- ${명령어}
를 사용해야 하지만, 대부분 alias를 지정하거나 심볼릭 링크를 활용하여 kubectl
을 사용하도록 처리하는 편이다.
# alias
alias kubectl="minikube kubectl --"
# 심볼릭 링크
ln -s $(which minikube) /usr/local/bin/kubectl
이전 직장에서는 어플리케이션 배포 뿐만 아니라 각종 미들웨어, 인프라 관련 배포도 Helm으로 관리를 했기 때문에 여기서도 동일하게 작업하고자 Helm을 설치했다.
Helm 설치 방법도 상당히 간단하다.
https://helm.sh/docs/intro/install/
나같은 경우 Ubuntu Server를 사용했기 때문에 다음과 같이 설치하였다.
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
공식 문서에서는 다음 절차로 애드온 목록을 확인하거나, Kubernetes Dashboard를 설치하여 클러스터 환경을 모니터링할 수 있도록 안내하고 있는데, 나도 초기에는 바로 Kubernetes Dashboard를 설치하였지만 Nginx Fabric Gateway를 설치하면서 건드릴 것이 좀 있어서 그 내용은 뒤에 소개해보고자 한다.