
생성 수정
Kubernetes · 6장
미니쿠베
노트북 한 대에서 쿠버네티스를 처음 만나는 가장 쉬운 길. WSL2(우분투) 기준으로 설치하고, 클러스터를 띄우고, 배포해 브라우저로 확인하는 데까지 화면 캡처를 따라가며 진행한다.
6장 · 총 6개 절 · 전체 9개 장 중 6번째
미니쿠베는 무엇을 위한 도구인가
6장 · 01
미니쿠베는 내 컴퓨터 안에 쿠버네티스 클러스터 한 대를 통째로 띄워주는 도구입니다. 서버도, 클라우드 계정도 필요 없이 몇 분 만에 kubectl을 써볼 수 있어서 "처음"에 가장 잘 맞습니다.
- 노트북 한 대에 단일 노드(기본) 클러스터를 만든다 — VM 또는 컨테이너 안에 컨트롤 플레인과 kubelet이 함께 들어간다
- 쿠버네티스 프로젝트가 직접 관리하는 공식 도구라 새 버전 대응이 빠르다
- 애드온(대시보드·인그레스·metrics-server)을 명령 한 줄로 켜고 끌 수 있다
- --nodes 옵션으로 다중 노드 흉내도 낼 수 있지만, 어디까지나 로컬 학습·개발용이다
- 비슷한 도구로 kind(도커 컨테이너를 노드로 쓰는 방식)가 있고, Docker Desktop 내장 쿠버네티스는 5장에서 이미 다뤘다
- 운영 서버에는 쓰지 않는다 — 그 자리는 K3s(7장)나 kubeadm(8장)이 맡는다
WSL2 준비와 미니쿠베 설치
6장 · 02
이 노트는 WSL2(우분투) 한 가지 환경만 다룹니다. 도커 데스크톱의 WSL 통합을 켜두면 우분투 안에서 docker 명령이 그대로 통하고, 미니쿠베는 그 도커를 드라이버로 써서 클러스터를 컨테이너 하나로 만듭니다.
- 전제 — 5장에서 세운 WSL2 우분투와 도커 데스크톱이 그대로 쓰인다
- 도커 데스크톱 → Settings → Resources → WSL integration 에서 쓰는 배포판이 켜져 있어야 한다(꺼져 있으면 우분투에서 docker 명령을 찾지 못한다)
- 미니쿠베는 바이너리 하나다 — 내려받아 /usr/local/bin 에 넣으면 설치가 끝난다
- 설치 확인은 minikube version 한 줄이다
미니쿠베 설치 — 우분투 터미널에 그대로 붙여넣기
세 줄을 한 번에 복사해 붙여넣는다. sudo 비밀번호를 한 번 묻는다.
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube version
클러스터 기동과 kubectl 연결
6장 · 03
minikube start 가 도커 컨테이너 하나를 노드로 만들어 컨트롤 플레인을 띄우고 kubeconfig까지 등록합니다. 그다음 kubectl을 설치하면 클러스터를 다룰 준비가 끝납니다.
- --driver=docker — 클러스터를 도커 컨테이너 안에 담는다(WSL2에서 가장 간단한 방법)
- 처음 실행은 이미지를 내려받느라 몇 분 걸린다. 끝나면 kubectl 컨텍스트가 minikube 로 자동 전환된다
- kubectl 은 별도 설치다 — 우분투에서는 snap 한 줄이 가장 간단하다
- kubectl get nodes 에 minikube 노드가 Ready 로 보이면 클러스터가 살아 있는 것이다
- docker ps 에 kicbase 컨테이너가 하나 보인다 — 그 컨테이너가 곧 노드다
- minikube ssh 로 그 노드 안에 들어가 볼 수 있고, exit 로 빠져나온다
1. 클러스터 기동과 kubectl 설치 — 한 번에 붙여넣기
minikube start --driver=docker
sudo snap install kubectl --classic
kubectl get nodes
docker ps루트 계정으로 실행 중이라 start 가 거부되면 --force를 붙인다(아래 캡처가 그 경우다). 일반 사용자 계정이면 필요 없다.

2. 노드 확인과 컨테이너 들여다보기
kubectl 로 보면 노드 한 대, docker 로 보면 컨테이너 한 개다 — 같은 것을 위아래에서 본 것이다. minikube ssh 로 그 안에 들어갔다가 exit 로 나온다.


첫 배포 — hello-minikube 띄우고 브라우저로 확인
6장 · 04
클러스터가 떴으면 배포는 다른 장과 똑같습니다. 디플로이먼트를 만들고, 서비스로 노출하고, 포트포워딩으로 브라우저에서 확인하는 데까지 한 번에 가봅니다.
- create deployment — 파드를 만들고 개수를 유지할 디플로이먼트를 만든다
- expose --type=NodePort — 그 파드 앞에 고정 접점(서비스)을 둔다
- kubectl get all 로 파드·서비스·디플로이먼트·레플리카셋을 한 화면에서 확인한다
- port-forward 는 파드 이름을 인자로 받는다 — get all 에 보이는 실제 파드 이름을 쓴다(이름은 매번 다르다)
- 포워딩을 띄운 채로 브라우저에서 localhost:8080 을 열면 에코 서버 응답이 보인다
- port-forward 는 터미널을 붙잡고 있는 임시 터널이다 — Ctrl+C 로 끊으면 접근도 끊긴다
1. 배포하고 노출하기 — 한 번에 붙여넣기
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10
kubectl expose deployment hello-minikube --type=NodePort --port=8080
kubectl get all
kubectl get svcdeployment.apps/hello-minikube created · service/hello-minikube exposed 두 줄이 나오면 성공이다.

2. 만들어진 것 확인하고 파드 이름 찾기
get all 첫 줄의 pod/hello-minikube-… 가 다음 단계에 쓸 파드 이름이다. 뒤의 임의 문자열은 사람마다 다르므로 화면에 보이는 값을 그대로 복사한다.

3. 포트포워딩하고 브라우저로 확인
파드 이름 자리를 위에서 확인한 값으로 바꿔 실행한다.


이미지를 받지 못한다면 k8s.gcr.io 는 registry.k8s.io 로 옮겨간 옛 주소다 — registry.k8s.io/echoserver:1.10 으로 바꿔 실행한다.
애드온 — 대시보드·인그레스·메트릭
6장 · 05
인그레스 컨트롤러·메트릭 서버·대시보드처럼 실습에 자주 필요한 구성 요소를 미니쿠베는 애드온으로 갖고 있습니다. K3s가 이것들을 처음부터 품고 있는 것과 대비되는 지점입니다.
- minikube addons list 로 켜고 끌 수 있는 목록을 본다
- ingress — NGINX 인그레스 컨트롤러를 설치한다. 켜야 Ingress 객체가 실제로 동작한다
- metrics-server — kubectl top 과 HPA(오토스케일러)가 필요로 하는 지표 수집기다
- dashboard — 웹 UI. minikube dashboard 명령이 브라우저까지 열어준다
- registry·storage-provisioner 등도 있다 — 필요할 때만 켠다(켤수록 자원을 먹는다)
애드온 켜기
정지·삭제와 미니쿠베의 한계
6장 · 06
실습이 끝나면 멈추거나 지웁니다. stop 은 상태를 남긴 채 끄는 것이고 delete 는 클러스터 자체를 없애는 것입니다. 마지막으로 미니쿠베가 어디까지의 도구인지 선을 그어둡니다.
- minikube stop — 클러스터를 멈춘다. 다음 start 에서 그대로 이어진다
- minikube delete — 클러스터를 삭제한다. --all 은 모든 프로필까지 지운다
- 노트북 자원을 계속 먹으므로 쓰지 않을 때는 stop 해두는 편이 낫다
- 한계 1 — 로컬 단일 머신이라 진짜 다중 노드 장애·네트워크 상황을 재현하지 못한다
- 한계 2 — 노드가 곧 내 노트북이므로 외부에 서비스를 공개하는 실습에는 맞지 않는다
- 그래서 다음 장(K3s)에서는 실제 서버에 클러스터를 세우고 노드를 붙여본다
LangTailor