project/NestJS + Kubernetes & 마이크로서비스 배포

Mac Mini에서 Kubernetes를 활용한 Nginx Proxy + PostgreSQL 구축: 개요 및 환경 설정

octo54 2025. 3. 19. 12:21
반응형

Mac Mini에서 Kubernetes를 활용한 Nginx Proxy + PostgreSQL 구축: 개요 및 환경 설정

1. Mac Mini에서 Kubernetes를 운영하는 이유

1.1 왜 Kubernetes인가?

Kubernetes(K8s)는 컨테이너 오케스트레이션 도구로, 애플리케이션의 배포 및 관리를 자동화합니다. Mac Mini에서 Kubernetes를 활용하면 다음과 같은 이점을 얻을 수 있습니다:

  • 고가용성: 단일 노드에서도 안정적인 컨테이너 실행 가능
  • 자동화: 서비스 배포 및 업데이트 용이
  • 자원 효율성: 컨테이너 단위로 서버 자원 관리 가능

1.2 Mac Mini에서 Kubernetes를 사용하는 이유

Mac Mini는 저전력, 저소음의 서버로 활용 가능하며 다음과 같은 장점이 있습니다:

  • 에너지 효율적: 24시간 운영해도 전력 소모가 적음
  • 애플리케이션 테스트 환경으로 적합
  • 로컬 개발 및 클라우드 이전 연습 가능

따라서, Mac Mini에서 Nginx Reverse ProxyPostgreSQL을 쿠버네티스 기반으로 실행하는 방법을 실습하며, 실제 운영 가능한 환경을 구축할 것입니다.


2. Mac Mini에서 실행할 아키텍처 개요

Mac Mini에서 실행할 전체적인 시스템 구성은 다음과 같습니다:

  1. Kubernetes Cluster (Minikube 또는 k3s)
  2. Nginx Ingress Controller (Reverse Proxy 역할)
  3. PostgreSQL (데이터베이스 서비스)

이러한 구성으로 웹 서비스 및 데이터베이스를 컨테이너 기반으로 배포하고 관리할 수 있습니다.


3. Mac Mini에서 Kubernetes 실행 방식 비교

반응형

실행 방식 특징 장점 단점

Minikube 로컬 개발에 최적화 간단한 설치 및 사용 리소스 사용이 많음
k3s 경량 Kubernetes 저사양 기기에서도 실행 가능 일부 기능이 제한됨
MicroK8s Canonical에서 제공 높은 확장성 설정이 복잡할 수 있음

3.1 어떤 방식을 선택할 것인가?

Mac Mini에서 단일 노드 환경에서 운영할 것이므로, Minikube 또는 k3s를 선택하는 것이 좋습니다. 본 가이드에서는 Minikube를 사용하여 Kubernetes를 설치하고 설정하는 과정을 설명합니다.


4. Kubernetes 설치 및 환경 설정

4.1 필수 패키지 설치

Mac Mini에서 Kubernetes를 실행하기 위해 필요한 패키지를 설치합니다.

# Homebrew 업데이트
brew update

# Kubernetes CLI 및 Minikube 설치
brew install kubectl minikube

# Docker 설치 (컨테이너 실행을 위해 필요)
brew install docker

4.2 Minikube 클러스터 실행

Minikube를 실행하여 Kubernetes 환경을 구성합니다.

# Minikube 시작
minikube start --driver=docker

# Kubernetes 클러스터 상태 확인
kubectl get nodes

4.3 기본 네트워크 및 Ingress 설정

Kubernetes에서 Nginx Ingress Controller를 사용하기 위해 Ingress를 활성화합니다.

# Minikube Ingress 추가
minikube addons enable ingress

# Nginx Ingress Controller 배포
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml

이제 Kubernetes 환경이 준비되었습니다. 다음 단계에서는 PostgreSQL을 배포하고, 이를 Nginx Proxy를 통해 외부에서 접근할 수 있도록 설정하는 과정을 다룹니다.


다음 글에서 다룰 내용

  • PostgreSQL을 Kubernetes에서 실행하는 방법
  • Nginx를 활용한 Reverse Proxy 구성
  • Kubernetes에서 보안 및 네트워크 설정

이제 본격적으로 Kubernetes에서 애플리케이션을 실행하는 과정으로 넘어가겠습니다. 🚀