※ 기존에 기록해둔 노션 글을 옮겨적은 것으로, 노션 템플릿에 맞게 적게된 글이라 해당 링크를 통해 더 가독성있게 보실 수 있습니다.
https://www.notion.so/minikube-2690661ce62880e3a2ffdbb5d2d95a94
minikube로 로컬 쿠버네티스 테스트하기 | Notion
1. minikube 실행하기
pleasant-sand-55a.notion.site
1. minikube 실행하기
사전에 minikube 명령어 실행할 수 있도록 설치 필요
minikube start --memory=6g --cpus=4 --driver=docker

※ 제대로 생성됐는지 확인 절차
# 노드 확인
PS C:\Users\home> kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 53m v1.33.1
# minikube 상태 확인
PS C:\Users\home> minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
# 파드 확인
PS C:\Users\home> kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-674b8bbfcf-k8tzc 1/1 Running 0 56m
kube-system etcd-minikube 1/1 Running 0 56m
kube-system kube-apiserver-minikube 1/1 Running 0 56m
kube-system kube-controller-manager-minikube 1/1 Running 0 56m
kube-system kube-proxy-hn5x6 1/1 Running 0 56m
kube-system kube-scheduler-minikube 1/1 Running 0 56m
kube-system storage-provisioner 1/1 Running 1 (56m ago) 56m
kubernetes-dashboard dashboard-metrics-scraper-5d59dccf9b-b99cx 1/1 Running 0 2m43s
kubernetes-dashboard kubernetes-dashboard-7779f9b69b-x88s4 1/1 Running 0 2m43s
PS C:\Users\home>
# Dashboard 확인
PS C:\Users\home> minikube dashboard
🔌 대시보드를 활성화하는 중 ...
▪ 이미지 docker.io/kubernetesui/dashboard:v2.7.0 사용 중
▪ 이미지 docker.io/kubernetesui/metrics-scraper:v1.0.8 사용 중
💡 Some dashboard features require the metrics-server addon. To enable all features please run:
minikube addons enable metrics-server
🤔 Dashboard 의 상태를 확인 중입니다 ...
🚀 프록시를 시작하는 중 ...
🤔 Proxy 의 상태를 확인 중입니다 ...
🎉 Opening http://127.0.0.1:53167/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...

2. 로컬 DB 세팅하기
사전에 Helm repo에 bitnami를 추가해줍니다.
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
네임스페이스에 local-db 만들어둡니다.
kubectl create namespace local-db
Helm으로 MongoDB 배포(설치)해줍니다. (세팅값까지 넣기)
helm upgrade --install mongodb bitnami/mongodb \
--namespace local-db \
--set auth.rootPassword=admin123 \
--set auth.username=reciping \
--set auth.password=reciping123 \
--set auth.database=reciping_db
이 설정은 아래 Mongo URI로 사용 가능합니다
mongodb://reciping:reciping123@mongodb.local-db.svc.cluster.local:27017/reciping_db
Helm으로 postgreSQL 배포(설치)해줍니다. (세팅값까지 넣기)
helm upgrade --install postgres bitnami/postgresql \
--namespace local-db \
--set auth.username=reciping \
--set auth.password=admin123 \
--set auth.postgresPassword=admin123 \
--set auth.database=reciping_db
이 설정은 아래 JDBC URL로 사용 가능합니다
jdbc:postgresql://postgres.local-db.svc.cluster.local:5432/reciping_db
※ 띄운 후, 최종 DB 상태 확인
일반적으로 -hl이 붙은 서비스 (headless)는 내부 클러스터 DNS용이고, 클라이언트에서 직접 접속할 때는 postgres-postgresql
home@DESKTOP-0L33BAC MINGW64 ~/Desktop/groom/dev_sini/reciping-k8s-resources (feature-prod)
$ kubectl get all -n local-db
NAME READY STATUS RESTARTS AGE
pod/mongodb-7d8b94b5fb-7cw6s 1/1 Running 0 50m
pod/postgres-postgresql-0 1/1 Running 0 104s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/mongodb ClusterIP 10.107.135.183 <none> 27017/TCP 50m
service/postgres-postgresql ClusterIP 10.100.205.158 <none> 5432/TCP 104s
service/postgres-postgresql-hl ClusterIP None <none> 5432/TCP 104s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/mongodb 1/1 1 1 50m
NAME DESIRED CURRENT READY AGE
replicaset.apps/mongodb-7d8b94b5fb 1 1 1 50m
NAME READY AGE
statefulset.apps/postgres-postgresql 1/1 104s
※ (선택사항) 간편하게 Port Forward로 직접 접속 확인
MongoDB:
kubectl port-forward svc/mongodb 27017:27017 -n local-d
PostgreSQL:
# 클라이언트에서 직접 접속할 때는 postgres-postgresql 서비스에 포트포워딩
kubectl port-forward svc/postgres-postgresql 5432:5432 -n local-db
이후 로컬 터미널에서 접속:
- MongoDB:
mongosh mongodb://reciping:reciping123@localhost:27017/reciping_db
- PostgreSQL:
psql -h localhost -U reciping -d reciping_db
# Password: reciping123
3. ECR Image pull → tag 변경 → Minikube에 Image upload
기존에 CI 워크플로우로 ECR에 이미지 업로드하였는데, 편하게 이 이미지를 토대로 minikube에 pull해서 쓰겠습니다.
ECR에 로그인합니다.
aws ecr get-login-password --region ap-northeast-2 \
| docker login --username AWS --password-stdin 892117097999.dkr.ecr.ap-northeast-2.amazonaws.com
이미지를 pull합니다.
docker pull 892117097999.dkr.ecr.ap-northeast-2.amazonaws.com/reciping-user-service:v1.0.8
로컬 테스트용 태그로 재태깅합니다.
docker tag 892117097999.dkr.ecr.ap-northeast-2.amazonaws.com/reciping-user-service:v1.0.8 user-service:local
minikube에 이미지를 올립니다.
minikube image load user-service:local
4. Minikube에 rollouts 사용을 위한 Argo Rollouts CRD 설치
공식적인 설치 명령어입니다. 이 명령어는 다음 리소스를 설치합니다.
- CRDs (Rollout, AnalysisTemplate 등)
- Controller (argo-rollouts-controller)
- RBAC, ServiceAccount 등
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml
※ 명령어 실행 및 설치 확인까지
home@DESKTOP-0L33BAC MINGW64 ~/Desktop/groom/dev_sini/reciping-k8s-resources (feature-prod)
$ kubectl create namespace argo-rollouts
namespace/argo-rollouts created
home@DESKTOP-0L33BAC MINGW64 ~/Desktop/groom/dev_sini/reciping-k8s-resources (feature-prod)
$ kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml
customresourcedefinition.apiextensions.k8s.io/analysisruns.argoproj.io created
customresourcedefinition.apiextensions.k8s.io/analysistemplates.argoproj.io created
customresourcedefinition.apiextensions.k8s.io/clusteranalysistemplates.argoproj.io created
customresourcedefinition.apiextensions.k8s.io/experiments.argoproj.io created
customresourcedefinition.apiextensions.k8s.io/rollouts.argoproj.io created
serviceaccount/argo-rollouts created
clusterrole.rbac.authorization.k8s.io/argo-rollouts created
clusterrole.rbac.authorization.k8s.io/argo-rollouts-aggregate-to-admin created
clusterrole.rbac.authorization.k8s.io/argo-rollouts-aggregate-to-edit created
clusterrole.rbac.authorization.k8s.io/argo-rollouts-aggregate-to-view created
clusterrolebinding.rbac.authorization.k8s.io/argo-rollouts created
configmap/argo-rollouts-config created
secret/argo-rollouts-notification-secret created
service/argo-rollouts-metrics created
deployment.apps/argo-rollouts created
# 설치 확인
home@DESKTOP-0L33BAC MINGW64 ~/Desktop/groom/dev_sini/reciping-k8s-resources (feature-prod)
$ kubectl get crd | grep rollouts
rollouts.argoproj.io 2025-08-06T11:34:22Z
5. Helm chart 수동배포로 일단 서버가 제대로 뜨는지 확인해보기
Helm 배포 명령어를 실행합니다.
helm upgrade --install user-service ./charts/reciping-user-service \
--namespace reciping \
--create-namespace
후에 자잘한 오류 디버깅하면 됩니다!
'Project > reciping' 카테고리의 다른 글
| [reciping 3차]Terraform으로 EKS 기반 인프라 구축하기 (2) (0) | 2025.11.05 |
|---|---|
| [reciping 3차]Terraform으로 EKS 기반 인프라 구축하기 (1) (0) | 2025.11.05 |
| [reciping] 프론트단의 Route53 + S3 + CloudFront 설정하기 (0) | 2025.11.05 |
| [reciping] ECS(EC2, Fargate)로 백엔드 애플리케이션 배포하기 + 기본 EC2배포까지 (2) (0) | 2025.11.05 |
| [reciping] ECS(EC2, Fargate)로 백엔드 애플리케이션 배포하기 + 기본 EC2배포까지 (1) (0) | 2025.11.05 |