안녕하세요! 제가 개발하고 있는 프로젝트는 현재 백엔드 로직도 어느 정도 구현이 완료되었고, 앱 개발도 마무리 단계에 접어들었습니다. 이제는 실제 환경에서 테스트를 진행할 단계가 되었는데요, 이를 위해 백엔드 코드를 컨테이너화하여 홈서버에 올리고 실제 앱을 핸드폰에 설치해서 테스트를 진행할 예정입니다.
이 과정에서 가장 중요한 부분은 핸드폰 앱과 백엔드 서버 간의 통신입니다. 집 와이파이 환경에서는 사설 네트워크를 통해 통신이 가능하지만, 외부에서도 서비스에 접근할 수 있어야 하기 때문에 안정적인 서버 환경 구축이 필요한 상황이라고 판단했습니다.
외부에서도 서비스 접근할 수 있도록 네트워크 설정한건 서버 구축 시리즈 3: DDNS 및 포트 포워딩 설치(https://sungmin-developer.tistory.com/20) 에서 구축을 했습니다.
이러한 요구사항을 충족시키기 위해 홈서버에 백엔드 서버를 설치하기로 결정했고, 이 기회에 쿠버네티스 환경도 함께 구축했습니다.
K3s란?
K3s는 경량화된 Kubernetes(K8s) 배포판으로, 리소스가 적은 환경에서도 쉽게 Kubernetes 클러스터를 운영할 수 있도록 최적화된 솔루션입니다.
왜 K3s를 사용하는가?
1. 경량화된 Kubernetes
- 일반적인 Kubernetes(K8s)는 리소스 소모가 큼 → 홈서버에서는 과부하 우려
- K3s는 가볍고 빠르게 동작 (기본적으로 containerd 사용)
2. 설치가 간편
- kubeadm을 이용한 Kubernetes 설치보다 훨씬 간단
3. 낮은 하드웨어 요구 사항
- 메모리 2GB 이상이면 기본적으로 잘 구동된다 (보통 2코어 4GB RAM 이상이면 안정적으로 운영이 된다).
Ubuntu에서 K3s 설치
Ubuntu 패키지 업데이트
sudo apt update && sudo apt upgrade -y
필수 패키지 설치
sudo apt install curl -y
K3s 설치 (싱글 노드)
curl -sfL https://get.k3s.io | sh -
이 명령어를 실행하면: K3s 서버가 자동 실행됩니다.
설치 완료 후 K3s 상태 확인:
sudo systemctl status k3s
노드 상태 확인
sudo k3s kubectl get nodes
K3s 설정 (kubectl 명령어 바로 사용 가능하게)
기본적으로 kubectl을 실행할 때 sudo k3s kubectl을 입력해야 하지만, 이를 편하게 단축하는 설정을 추가합니다.
echo 'export KUBECONFIG=/etc/rancher/k3s/k3s.yaml' >> ~/.bashrc
source ~/.bashrc
현재 kubectl이 K3s의 k3s.yaml 설정 파일을 읽지 못하고 있으면서 현재 사용자에게 /etc/rancher/k3s/k3s.yaml 파일에 대한 접근 권한이 없음 이라고 뜹니다.
방법은 아래 3가지 정도로 추려봤습니다.
1. sudo를 붙여서 사용
2. root 사용자로 전환해서 사용
3. 현재 사용자에게 소유권 부여
앞에 1, 2 방법은 제 계정에서 매번 사용하기에 무리가 있어서 3번 방법으로 채택했습니다.
파일 권한을 확인
ls -l /etc/rancher/k3s/k3s.yaml
root 사용자만 접근 가능하기 때문에 일반 사용자로는 접근할 수 없다는것을 알 수 있습니다.
현재 사용자에게 권한을 부여하기
sudo chmod 644 /etc/rancher/k3s/k3s.yaml
실행 후 다시 권한 확인
그런 다음 다시 실행:
kubectl get pods
이제 잘 실행 되는것을 확인 할 수 있습니다.
저는 개인적으로 kubectl 도 길어서 k 로 단축 시키겠습니다.
echo "alias k='k3s kubectl'" >> ~/.bashrc
source ~/.bashrc
이제 잘 작동 합니다.
'홈서버' 카테고리의 다른 글
Cloudflare를 이용해 홈서버 IP 숨기기 (0) | 2025.02.10 |
---|---|
홈서버 구축 시리즈 - 3편: DDNS 및 포트 포워딩 설치 (3) | 2025.01.29 |
홈서버 구축 시리즈 - 2편: 홈 서버 우분투 설치 (1) | 2025.01.16 |
홈서버 구축 시리즈 - 1편: 왜 홈서버를 구축하려고 하는가? (0) | 2025.01.15 |
댓글