Post

Minikube

Minikube

Minikube 설치 및 실행

Homebrew로 설치:

1
brew install minikube kubectl


클러스터 시작 (Docker 드라이버 사용):

1
2
3
4
5
6
7
8
minikube start --driver=docker
# --schedule-stop=2h 이용하여 자동중지 시간 설정 가능

# --driver 옵션 지정 (지정해두면 minikube start 만으로 실행 가능)
minikube config set driver docker
# 옵션확인
minikube config view
minikube config get driver

docker 드라이버를 사용하지 않으면 기본적으로 vm 으로 클러스터가 만들어짐 (vz, qemu 등)
docker 가 가장 가볍기 때문에 설정하는 것

클러스터 확인 및 중지 :

1
2
3
4
minikube status
minikube stop
# stop 시간 지정
--schedule=4h 


상태 확인:

1
2
3
4
# cli 로 노드 확인
kubectl get nodes
# 웹 브라우저로 쿠버네티스 대시보드 화면 접속 
minikube dashboard


minikube dashboard 화면




APP 배포

배포 순서

이미지 빌드

1
docker build -t k8s-test-app:latest .


minikube 로컬 이미지 로드 (minikube 내 docker로 이미지를 로드하는 과정)

1
minikube image load k8s-test-app:latest


minikube 도커에 바로 빌드하기

1
2
3
4
5
6
7
8
9
10
minikube start

# 매 세션마다 실행해줘야만 그 세션에서만 적용
eval $(minikube docker-env)

# 도커 이미지 빌드
docker build ~
# minikube 내 docker 로 load 하는 과정이 삭제됨
# 바로 배포 가능
kubectl apply -f {file}

MacBook Docker CLI → Minikube 내부 Docker 데몬으로 연결

배포

1
kubectl apply -f k8s/


접속 (자동 포트 포워딩 생성)

1
minikube service k8s-test-app

랜덤하게 포트 포워딩 되어 생성되면 그 포트로 배포된 서비스에 접속 가능

이미지가 minikube 내부 docker 에 있는지 확인

1
minikube ssh -- docker images | grep k8s-test-app


전체 구조

1
2
3
4
5
MacBook (호스트)
└── Docker Desktop
    └── Minikube 클러스터 (Docker 컨테이너로 실행)
        └── 내부 Docker 데몬
            └── 당신의 앱 컨테이너들
  1. 격리: MacBook의 Docker Desktop과 완전히 분리
  2. Kubernetes 최적화: K8s CRI(Container Runtime Interface)에 맞춘 Docker
  3. 네트워크: Minikube 전용 bridge 네트워크


Minikube 내부 접속

1
2
minikube ssh < minikube 내부로 ssh 접속
docker version < minikube 내 docker 버전 확인 가능


minikube ssh 접속 화면


This post is licensed under CC BY 4.0 by the author.