본 콘텐츠의 이미지 및 내용은 AI로 생성되었습니다.
본 콘텐츠의 이미지 및 내용을 무단으로 복제, 배포, 수정하여 사용할 경우 저작권법에 의해 법적 제재를 받을 수 있습니다.
이미지 로딩 중...
AI Generated
2025. 11. 28. · 17 Views
Minikube 로컬 환경 구축 완벽 가이드
쿠버네티스를 처음 시작하는 개발자를 위한 Minikube 설치부터 클러스터 생성, 대시보드 접속까지 로컬 환경에서 쿠버네티스를 체험하는 완벽한 실습 가이드입니다.
목차
- Minikube_vs_Docker_Desktop_vs_Kind_비교
- Minikube_설치하기
- kubectl_설치_및_설정
- 첫_번째_클러스터_생성하기
- 클러스터_상태_확인_명령어
- 대시보드_접속하기
- 실습_환경_검증
1. Minikube vs Docker Desktop vs Kind 비교
어느 날 김개발 씨는 쿠버네티스를 공부하기로 마음먹었습니다. 그런데 검색을 해보니 로컬에서 쿠버네티스를 실행하는 도구가 여러 가지나 있었습니다.
Minikube, Docker Desktop, Kind... 도대체 뭘 써야 할까요?
로컬 쿠버네티스 환경 도구는 크게 세 가지가 있습니다. Minikube는 가장 오래되고 안정적인 학습용 도구이며, Docker Desktop은 Docker와 함께 제공되어 편리합니다.
Kind는 Docker 컨테이너 안에서 쿠버네티스를 실행하는 경량 도구입니다. 각자의 상황에 맞는 도구를 선택하면 됩니다.
다음 코드를 살펴봅시다.
# Minikube - 단일 노드 VM/컨테이너 기반
# 장점: 풍부한 애드온, 학습에 최적화
minikube start --driver=docker
# Docker Desktop - Docker에 내장된 쿠버네티스
# 장점: 별도 설치 불필요, GUI 제공
# Docker Desktop > Settings > Kubernetes > Enable
# Kind - Docker 컨테이너 기반 경량 도구
# 장점: 빠른 시작, CI/CD에 적합
kind create cluster --name my-cluster
김개발 씨는 입사 6개월 차 백엔드 개발자입니다. 최근 회사에서 쿠버네티스로 서비스를 배포하기 시작했는데, 뭔가 마법 같은 명령어만 따라 치다 보니 정확히 뭘 하는 건지 감이 오지 않았습니다.
그래서 주말을 이용해 직접 로컬에서 쿠버네티스를 띄워보기로 했습니다. 검색을 해보니 선택지가 여러 개였습니다.
"Minikube가 좋다", "Docker Desktop이면 충분하다", "Kind가 빠르다"는 글들이 쏟아졌습니다. 머리가 복잡해진 김개발 씨는 회사 선배 박시니어 씨에게 물었습니다.
"선배, 쿠버네티스 로컬에서 돌리려는데 뭘 써야 해요?" 박시니어 씨가 미소를 지으며 대답했습니다. "목적에 따라 다르지.
일단 각각이 뭔지 알려줄게." 먼저 Minikube를 살펴봅시다. Minikube는 쿠버네티스 공식 프로젝트에서 만든 도구입니다.
마치 장난감 자동차처럼, 실제 자동차의 모든 기능을 축소해서 담아놓은 것과 같습니다. 진짜 쿠버네티스 클러스터의 모든 기능을 로컬 컴퓨터 한 대에서 체험할 수 있습니다.
Minikube의 가장 큰 장점은 애드온 시스템입니다. 대시보드, 인그레스, 메트릭 서버 등 실제 운영 환경에서 쓰는 도구들을 명령어 한 줄로 설치할 수 있습니다.
학습할 때 이것저것 실험해보기 딱 좋습니다. 다음으로 Docker Desktop입니다.
이미 Docker를 사용하고 있다면, 설정에서 체크박스 하나만 켜면 쿠버네티스가 활성화됩니다. 별도 설치 없이 바로 쓸 수 있다는 편리함이 있습니다.
하지만 커스터마이징이 제한적이고, 리소스 소모가 큰 편입니다. 마지막으로 Kind입니다.
Kind는 "Kubernetes IN Docker"의 약자로, Docker 컨테이너 안에서 쿠버네티스를 실행합니다. 가볍고 빨라서 CI/CD 파이프라인에서 테스트용으로 많이 씁니다.
다만 학습용으로는 기능이 다소 제한적입니다. 박시니어 씨가 정리해주었습니다.
"처음 배우는 거라면 Minikube가 좋아. 공식 문서도 잘 되어 있고, 애드온으로 이것저것 실험해볼 수 있거든." 김개발 씨는 고개를 끄덕였습니다.
"그럼 저는 Minikube로 시작해볼게요!"
실전 팁
💡 - 학습 목적이라면 Minikube를, 이미 Docker Desktop을 쓰고 있다면 내장 쿠버네티스도 고려해보세요
- CI/CD 환경에서는 Kind가 빠른 시작 시간으로 유리합니다
2. Minikube 설치하기
도구를 선택한 김개발 씨는 이제 Minikube를 설치해야 합니다. 다행히 Minikube는 Windows, Mac, Linux 모든 운영체제를 지원합니다.
각 환경에 맞는 설치 방법을 알아봅시다.
Minikube 설치는 운영체제별로 조금씩 다릅니다. Windows는 Chocolatey나 직접 다운로드로, Mac은 Homebrew로, Linux는 패키지 매니저나 바이너리 다운로드로 설치합니다.
설치 전에 Docker나 VirtualBox 같은 드라이버가 필요합니다.
다음 코드를 살펴봅시다.
# Windows (PowerShell 관리자 권한)
# Chocolatey 패키지 매니저 사용
choco install minikube
# Mac (Homebrew 사용)
# 가장 간편한 설치 방법
brew install minikube
# Linux (바이너리 직접 다운로드)
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 설치 확인 (모든 OS 공통)
minikube version
김개발 씨는 집에서 Mac을 사용하고, 회사에서는 Windows를 씁니다. 두 환경 모두에 Minikube를 설치해보기로 했습니다.
먼저 집에서 Mac으로 시작했습니다. Mac에서는 Homebrew라는 패키지 매니저가 있어서 설치가 아주 간단합니다.
터미널을 열고 brew install minikube 명령어 한 줄이면 끝입니다. 설치가 완료되면 minikube version을 입력해 제대로 설치되었는지 확인합니다.
버전 정보가 출력되면 성공입니다. 다음 날 회사에 출근한 김개발 씨는 Windows에도 설치하기로 했습니다.
Windows에서는 몇 가지 방법이 있는데, 가장 편한 것은 Chocolatey를 사용하는 것입니다. PowerShell을 관리자 권한으로 열고 choco install minikube를 입력하면 됩니다.
만약 Chocolatey가 없다면, Minikube 공식 사이트에서 설치 파일을 직접 다운로드할 수도 있습니다. 설치 마법사를 따라가면 어렵지 않게 설치할 수 있습니다.
Linux 사용자라면 조금 더 수동으로 진행해야 합니다. curl 명령어로 바이너리를 다운로드하고, install 명령어로 실행 경로에 복사합니다.
이 방식은 가장 범용적이어서 어떤 Linux 배포판에서도 동작합니다. 여기서 중요한 점이 있습니다.
Minikube는 드라이버가 필요합니다. 드라이버란 Minikube가 가상 환경을 만들 때 사용하는 도구입니다.
가장 많이 쓰이는 것은 Docker와 VirtualBox입니다. Docker를 이미 설치해두었다면 별도 설정 없이 Docker 드라이버를 사용할 수 있습니다.
Docker가 없다면 VirtualBox를 설치해야 합니다. 요즘은 대부분 Docker를 사용하므로, Docker 드라이버를 추천합니다.
박시니어 씨가 덧붙였습니다. "Docker 드라이버가 가장 가볍고 빨라.
VirtualBox는 전체 VM을 띄우니까 무겁거든." 김개발 씨는 이미 Docker Desktop을 사용하고 있어서 추가 설치 없이 바로 진행할 수 있었습니다.
실전 팁
💡 - Docker를 미리 설치해두면 가장 편리합니다
- Windows에서는 WSL2와 Docker Desktop 조합을 추천합니다
- 설치 후 반드시 minikube version으로 확인하세요
3. kubectl 설치 및 설정
Minikube를 설치했지만, 아직 한 가지가 더 필요합니다. 바로 kubectl입니다.
kubectl은 쿠버네티스와 대화하는 유일한 창구입니다. 이것 없이는 클러스터에 아무것도 할 수 없습니다.
kubectl은 쿠버네티스 클러스터를 제어하는 CLI 도구입니다. 마치 리모컨이 TV를 조작하듯, kubectl은 클러스터에 명령을 내립니다.
Pod 생성, 서비스 확인, 로그 조회 등 모든 작업이 kubectl을 통해 이루어집니다.
다음 코드를 살펴봅시다.
# Windows (Chocolatey)
choco install kubernetes-cli
# Mac (Homebrew)
brew install kubectl
# Linux (공식 바이너리)
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install kubectl /usr/local/bin/kubectl
# 설치 확인
kubectl version --client
# Minikube가 kubectl 설정을 자동으로 해줍니다
minikube start # 이 명령이 kubeconfig를 설정합니다
김개발 씨가 의아해했습니다. "Minikube만 있으면 되는 거 아니에요?" 박시니어 씨가 설명했습니다.
"Minikube는 쿠버네티스 클러스터를 만들어주는 도구야. 근데 그 클러스터에 명령을 내리려면 kubectl이 필요해." 비유하자면 이렇습니다.
Minikube가 TV를 만들어주는 공장이라면, kubectl은 그 TV를 조작하는 리모컨입니다. 공장이 TV를 만들어줬어도, 리모컨 없이는 채널을 돌릴 수 없습니다.
kubectl은 "Kubernetes Control"의 줄임말입니다. 쿠버네티스 클러스터와 통신하는 모든 작업은 이 도구를 통해 이루어집니다.
Pod를 만들고, 서비스를 조회하고, 로그를 확인하는 모든 일이 kubectl 명령어로 진행됩니다. 설치 방법은 Minikube와 비슷합니다.
Mac에서는 brew install kubectl, Windows에서는 choco install kubernetes-cli를 사용합니다. Linux에서는 공식 바이너리를 다운로드합니다.
설치 후 kubectl version --client를 입력해 확인합니다. 여기서 --client 옵션은 클러스터 연결 없이 클라이언트 버전만 확인하겠다는 뜻입니다.
여기서 한 가지 좋은 소식이 있습니다. Minikube를 시작하면 kubectl 설정이 자동으로 완료됩니다.
쿠버네티스는 kubeconfig라는 설정 파일로 어떤 클러스터에 연결할지 정하는데, Minikube가 이 파일을 알아서 수정해줍니다. 다시 말해, minikube start만 실행하면 kubectl이 바로 해당 클러스터와 통신할 수 있게 됩니다.
별도의 설정 작업이 필요 없습니다. 김개발 씨가 물었습니다.
"그럼 여러 클러스터가 있으면 어떻게 해요?" 박시니어 씨가 대답했습니다. "kubectl config 명령어로 컨텍스트를 바꿀 수 있어.
하지만 지금은 Minikube 하나만 쓰니까 신경 쓰지 않아도 돼."
실전 팁
💡 - kubectl은 쿠버네티스 작업의 필수 도구입니다
- Minikube가 kubeconfig를 자동 설정해주므로 별도 설정이 필요 없습니다
- kubectl version --client로 설치를 확인하세요
4. 첫 번째 클러스터 생성하기
드디어 모든 준비가 끝났습니다. 이제 김개발 씨의 노트북에서 쿠버네티스 클러스터를 직접 띄워볼 시간입니다.
명령어 한 줄이면 마법처럼 클러스터가 생성됩니다.
minikube start 명령어 하나로 로컬에 쿠버네티스 클러스터가 생성됩니다. 이 명령은 가상 환경을 만들고, 쿠버네티스 컴포넌트를 설치하고, 네트워킹을 구성하는 모든 작업을 자동으로 수행합니다.
마치 인스턴트 라면처럼, 물만 부으면 완성되는 것과 같습니다.
다음 코드를 살펴봅시다.
# 기본 클러스터 생성 (Docker 드라이버 사용)
minikube start --driver=docker
# 리소스를 지정하여 생성 (권장)
minikube start --driver=docker --cpus=2 --memory=4096
# 특정 쿠버네티스 버전으로 생성
minikube start --kubernetes-version=v1.28.0
# 클러스터 이름 지정 (여러 클러스터 운영 시)
minikube start -p my-cluster --driver=docker
# 생성 완료 후 상태 확인
minikube status
김개발 씨가 터미널을 열었습니다. 심호흡을 한 번 하고, 명령어를 입력했습니다.
minikube start --driver=docker 엔터를 누르자 화면에 메시지들이 쏟아지기 시작했습니다. "Downloading Kubernetes...", "Starting control plane node...", "Configuring RBAC rules..." 뭔가 열심히 일하는 것 같습니다.
2-3분이 지나자 드디어 "Done! kubectl is now configured to use minikube"라는 메시지가 나타났습니다.
성공입니다! 방금 무슨 일이 일어난 걸까요?
minikube start 명령어는 내부적으로 엄청난 작업을 수행합니다. 첫째, Docker 컨테이너(또는 VM)를 생성합니다.
이 안에 가상의 리눅스 환경이 만들어집니다. 둘째, 그 안에 쿠버네티스의 핵심 컴포넌트들을 설치합니다.
API Server, etcd, Scheduler, Controller Manager 같은 것들입니다. 이것들이 모여서 쿠버네티스 컨트롤 플레인을 구성합니다.
셋째, 네트워킹을 설정합니다. Pod들이 서로 통신할 수 있도록 가상 네트워크를 구성합니다.
넷째, kubectl이 이 클러스터와 통신할 수 있도록 kubeconfig를 설정합니다. 이 모든 작업이 명령어 한 줄에 담겨 있습니다.
마치 인스턴트 라면에 물만 부으면 되는 것처럼, 복잡한 과정을 Minikube가 모두 처리해줍니다. 몇 가지 유용한 옵션도 알아두면 좋습니다.
--cpus와 --memory 옵션으로 할당할 리소스를 지정할 수 있습니다. 기본값도 괜찮지만, 여유가 있다면 CPU 2개, 메모리 4GB 정도를 권장합니다.
--kubernetes-version 옵션으로 특정 버전의 쿠버네티스를 설치할 수도 있습니다. 회사에서 쓰는 버전과 맞추고 싶을 때 유용합니다.
-p 옵션은 클러스터에 이름을 붙입니다. 여러 클러스터를 만들어서 실험하고 싶을 때 사용합니다.
예를 들어 -p dev와 -p test로 개발용, 테스트용 클러스터를 따로 만들 수 있습니다. 김개발 씨가 감탄했습니다.
"와, 진짜 쿠버네티스가 제 노트북에서 돌아가는 거예요?" 박시니어 씨가 웃으며 대답했습니다. "그래, 이제 네 노트북이 작은 데이터센터가 된 거야."
실전 팁
💡 - 첫 실행은 이미지 다운로드 때문에 시간이 걸릴 수 있습니다
- Docker Desktop이 실행 중인지 먼저 확인하세요
- 리소스가 부족하면 --cpus=2 --memory=2048 정도로 시작해보세요
5. 클러스터 상태 확인 명령어
클러스터가 생성되었지만, 정말 제대로 동작하고 있을까요? 김개발 씨는 불안한 마음에 상태를 확인해보기로 했습니다.
다행히 쿠버네티스는 상태 확인 명령어가 잘 갖춰져 있습니다.
클러스터 상태 확인은 운영의 기본입니다. minikube status로 Minikube 자체의 상태를, kubectl cluster-info로 클러스터 정보를, kubectl get nodes로 노드 상태를 확인합니다.
이 세 명령어만 알면 기본적인 헬스체크가 가능합니다.
다음 코드를 살펴봅시다.
# Minikube 상태 확인
minikube status
# 클러스터 정보 확인
kubectl cluster-info
# 노드 목록 및 상태 확인
kubectl get nodes
# 더 자세한 노드 정보
kubectl get nodes -o wide
# 시스템 컴포넌트 상태 확인
kubectl get pods -n kube-system
# 모든 네임스페이스의 리소스 확인
kubectl get all --all-namespaces
클러스터를 만들었으면 제대로 동작하는지 확인해야 합니다. 마치 자동차 시동을 걸고 나서 계기판을 확인하는 것과 같습니다.
가장 먼저 minikube status를 실행해봅시다. 이 명령어는 Minikube의 각 컴포넌트 상태를 보여줍니다.
minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured 모든 항목이 Running 또는 Configured로 표시되면 정상입니다. 만약 Stopped나 Error가 보인다면 문제가 있는 것입니다.
다음으로 kubectl cluster-info를 실행합니다. 이 명령어는 쿠버네티스 API 서버의 주소를 보여줍니다.
주소가 출력되면 kubectl이 클러스터와 제대로 통신하고 있다는 뜻입니다. 세 번째로 kubectl get nodes입니다.
쿠버네티스에서 노드란 실제 작업을 수행하는 서버를 말합니다. Minikube는 단일 노드이므로 하나의 노드만 표시됩니다.
NAME STATUS ROLES AGE VERSION minikube Ready control-plane 10m v1.28.0 STATUS가 Ready면 정상입니다. NotReady라면 노드에 문제가 있는 것입니다.
-o wide 옵션을 붙이면 더 자세한 정보가 나옵니다. 노드의 IP 주소, 운영체제, 컨테이너 런타임 버전 등을 확인할 수 있습니다.
한 단계 더 들어가봅시다. kubectl get pods -n kube-system 명령어는 쿠버네티스 시스템 컴포넌트들의 상태를 보여줍니다.
kube-system은 쿠버네티스 자체 컴포넌트가 돌아가는 네임스페이스입니다. 여기서 coredns, etcd, kube-apiserver, kube-scheduler 등의 Pod가 모두 Running 상태여야 합니다.
하나라도 Pending이나 Error면 클러스터에 문제가 있을 수 있습니다. 김개발 씨가 질문했습니다.
"이 명령어들 다 외워야 해요?" 박시니어 씨가 대답했습니다. "자주 쓰다 보면 자연스럽게 외워져.
처음엔 minikube status랑 kubectl get nodes 두 개만 기억해도 충분해." 실무에서는 이런 상태 확인 명령어를 주기적으로 실행하거나, 모니터링 도구에 연동해서 자동으로 체크합니다. 지금은 수동으로 확인하는 습관을 들이면 됩니다.
실전 팁
💡 - 문제가 생기면 가장 먼저 minikube status를 확인하세요
- kubectl get pods -n kube-system으로 시스템 컴포넌트 상태를 점검하세요
- 명령어에 -o wide를 붙이면 더 상세한 정보를 볼 수 있습니다
6. 대시보드 접속하기
터미널에서 명령어만 치다 보니 답답해진 김개발 씨. 그래픽 화면으로 클러스터를 볼 수는 없을까요?
Minikube는 쿠버네티스 대시보드를 기본으로 제공합니다.
쿠버네티스 대시보드는 웹 기반 UI로 클러스터를 관리하는 도구입니다. Minikube에서는 명령어 한 줄로 대시보드를 실행할 수 있습니다.
Pod, Service, Deployment 등 모든 리소스를 시각적으로 확인하고 관리할 수 있어서 초보자에게 특히 유용합니다.
다음 코드를 살펴봅시다.
# 대시보드 애드온 활성화 (최초 1회)
minikube addons enable dashboard
minikube addons enable metrics-server
# 대시보드 실행 (브라우저 자동 열림)
minikube dashboard
# 백그라운드에서 실행하고 URL만 확인
minikube dashboard --url
# 현재 활성화된 애드온 목록 확인
minikube addons list
# 대시보드 접속 후 터미널로 돌아오기: Ctrl+C
터미널 명령어가 익숙하지 않은 분들에게 희소식이 있습니다. 쿠버네티스는 공식 웹 대시보드를 제공합니다.
그리고 Minikube에서는 이 대시보드를 아주 쉽게 사용할 수 있습니다. 터미널에 minikube dashboard를 입력하면, 잠시 후 브라우저가 자동으로 열리면서 대시보드 화면이 나타납니다.
처음 보는 분들은 감탄사가 나올 정도로 직관적인 UI입니다. 대시보드에서는 무엇을 할 수 있을까요?
첫째, 클러스터의 모든 리소스를 한눈에 볼 수 있습니다. 왼쪽 메뉴에서 Pods, Services, Deployments 등을 클릭하면 해당 리소스 목록이 표시됩니다.
각 항목을 클릭하면 상세 정보도 확인할 수 있습니다. 둘째, 리소스의 상태를 시각적으로 파악할 수 있습니다.
정상이면 녹색, 문제가 있으면 노란색이나 빨간색으로 표시됩니다. 터미널에서 일일이 명령어를 치지 않아도 됩니다.
셋째, 간단한 작업은 UI에서 바로 수행할 수 있습니다. Pod의 로그를 보거나, 컨테이너 안으로 들어가거나, 리소스를 삭제하는 것도 가능합니다.
대시보드를 실행하면 터미널이 대시보드 프로세스에 붙잡힙니다. 다른 작업을 하려면 새 터미널을 열거나, Ctrl+C로 종료해야 합니다.
--url 옵션을 사용하면 URL만 출력하고 백그라운드에서 실행됩니다. 여기서 애드온이라는 개념이 나옵니다.
Minikube 애드온은 추가 기능을 쉽게 설치하는 시스템입니다. 대시보드도 애드온 중 하나입니다.
minikube addons list를 실행하면 사용 가능한 애드온 목록과 활성화 상태를 볼 수 있습니다. metrics-server 애드온도 함께 활성화하면 좋습니다.
이 애드온은 CPU, 메모리 사용량 같은 메트릭을 수집합니다. 대시보드에서 리소스 사용량 그래프를 보려면 이 애드온이 필요합니다.
김개발 씨가 대시보드를 이리저리 클릭해봤습니다. "오, 이거 완전 편하네요!" 박시니어 씨가 조언했습니다.
"대시보드는 시각적으로 이해하기 좋지만, 결국 kubectl 명령어에 익숙해져야 해. 실제 운영에서는 터미널을 더 많이 쓰거든."
실전 팁
💡 - 대시보드는 학습과 디버깅에 유용하지만, 실무에서는 kubectl을 더 많이 사용합니다
- metrics-server 애드온을 함께 활성화하면 리소스 사용량도 볼 수 있습니다
- --url 옵션으로 백그라운드 실행이 가능합니다
7. 실습 환경 검증
모든 설치와 설정이 끝났습니다. 이제 진짜로 애플리케이션을 배포해볼 차례입니다.
간단한 nginx 웹서버를 배포해서 환경이 제대로 구축되었는지 최종 검증해봅시다.
환경 검증은 간단한 애플리케이션을 실제로 배포해보는 것이 가장 확실합니다. nginx 웹서버를 배포하고, 외부에서 접속할 수 있게 서비스를 노출하면 전체 파이프라인이 정상인지 확인할 수 있습니다.
다음 코드를 살펴봅시다.
# nginx 배포 생성
kubectl create deployment nginx --image=nginx
# 배포 상태 확인 (Pod가 Running이 될 때까지 대기)
kubectl get pods -w
# 서비스로 외부 노출 (NodePort 타입)
kubectl expose deployment nginx --type=NodePort --port=80
# 서비스 확인
kubectl get services
# Minikube에서 서비스 URL 얻기 (브라우저 자동 열림)
minikube service nginx
# 정리: 생성한 리소스 삭제
kubectl delete service nginx
kubectl delete deployment nginx
지금까지 설치하고 설정한 것들이 실제로 동작하는지 확인해봐야 합니다. 가장 좋은 방법은 간단한 애플리케이션을 직접 배포해보는 것입니다.
우리의 첫 배포 대상은 nginx입니다. nginx는 웹서버로, 쿠버네티스 학습에서 "Hello World" 같은 존재입니다.
가볍고, 빠르게 실행되고, 결과를 눈으로 확인하기 쉽습니다. 먼저 kubectl create deployment nginx --image=nginx 명령어를 실행합니다.
이 명령은 Docker Hub에서 nginx 이미지를 받아서 Pod로 실행하라고 쿠버네티스에 요청합니다. kubectl get pods를 실행하면 nginx Pod가 보입니다.
STATUS가 ContainerCreating에서 Running으로 바뀌면 성공입니다. -w 옵션을 붙이면 상태 변화를 실시간으로 지켜볼 수 있습니다.
Pod가 실행 중이지만, 아직 외부에서 접속할 수는 없습니다. 쿠버네티스에서 외부 접속을 허용하려면 Service를 만들어야 합니다.
kubectl expose deployment nginx --type=NodePort --port=80 명령어는 nginx 배포를 NodePort 타입 서비스로 노출합니다. NodePort는 클러스터 외부에서 접속할 수 있는 포트를 열어주는 방식입니다.
kubectl get services를 실행하면 nginx 서비스가 보입니다. PORT 열에 80:3xxxx/TCP 같은 형식이 보일 텐데, 3xxxx 부분이 외부에서 접속할 포트 번호입니다.
그런데 Minikube는 가상 환경 안에서 돌아가기 때문에, 이 포트로 바로 접속하기가 조금 복잡합니다. 다행히 minikube service nginx 명령어가 이 문제를 해결해줍니다.
이 명령을 실행하면 Minikube가 터널을 만들고 브라우저를 자동으로 열어줍니다. 브라우저에 "Welcome to nginx!" 페이지가 나타나면, 축하합니다!
여러분의 로컬 쿠버네티스 환경이 완벽하게 구축된 것입니다. 김개발 씨의 눈이 반짝였습니다.
"우와, 진짜 제가 쿠버네티스로 앱을 배포한 거예요?" 박시니어 씨가 흐뭇하게 웃었습니다. "그래, 이게 쿠버네티스의 기본이야.
앞으로 이걸 바탕으로 더 복잡한 것들을 배우면 돼." 실습이 끝나면 만든 리소스를 정리합니다. kubectl delete 명령어로 서비스와 디플로이먼트를 삭제하면 깔끔하게 원래 상태로 돌아갑니다.
마지막으로, 클러스터 자체를 멈추거나 삭제하고 싶다면 minikube stop과 minikube delete 명령어를 사용합니다. stop은 클러스터를 멈추고, delete는 완전히 삭제합니다.
다시 시작하고 싶으면 minikube start를 실행하면 됩니다. 김개발 씨는 뿌듯한 마음으로 터미널을 바라봤습니다.
오늘 처음으로 쿠버네티스 클러스터를 직접 만들고, 앱을 배포하고, 접속까지 해봤습니다. 이제 쿠버네티스가 조금은 친근하게 느껴집니다.
실전 팁
💡 - nginx 배포 후 브라우저에서 확인되면 환경 구축이 완료된 것입니다
- 실습 후에는 kubectl delete로 리소스를 정리하는 습관을 들이세요
- minikube stop은 클러스터를 멈추고, minikube delete는 완전히 삭제합니다
이상으로 학습을 마칩니다. 위 내용을 직접 코드로 작성해보면서 익혀보세요!
댓글 (0)
함께 보면 좋은 카드 뉴스
Istio 보안 완벽 가이드
마이크로서비스 환경에서 필수적인 Istio 보안 기능을 실무 중심으로 설명합니다. mTLS부터 인증, 인가까지 단계별로 학습하여 안전한 서비스 메시를 구축할 수 있습니다.
Istio 트래픽 관리 완벽 가이드
Istio의 트래픽 관리 기능을 마스터하는 완벽 가이드입니다. VirtualService와 DestinationRule을 활용한 라우팅부터 트래픽 분할, 헤더 기반 라우팅까지 실무에 필요한 모든 내용을 다룹니다.
Istio 설치와 구성 완벽 가이드
Kubernetes 환경에서 Istio 서비스 메시를 설치하고 구성하는 방법을 초급 개발자도 쉽게 이해할 수 있도록 실무 스토리와 비유로 풀어낸 가이드입니다. istioctl 설치부터 사이드카 주입까지 단계별로 학습합니다.
서비스 메시 완벽 가이드
마이크로서비스 간 통신을 안전하고 효율적으로 관리하는 서비스 메시의 핵심 개념부터 실전 도입까지, 초급 개발자를 위한 완벽한 입문서입니다. Istio와 Linkerd 비교, 사이드카 패턴, 실무 적용 노하우를 담았습니다.
Helm 마이크로서비스 패키징 완벽 가이드
Kubernetes 환경에서 마이크로서비스를 효율적으로 패키징하고 배포하는 Helm의 핵심 기능을 실무 중심으로 학습합니다. Chart 생성부터 릴리스 관리까지 체계적으로 다룹니다.