10월 23일(수) 실습 중
Minikube란?
Minikube는 가벼운 쿠버네티스 구현체이며, 로컬 머신에 VM을 만들고 하나의 노드로 구성된 간단한 클러스터를 생성한다.
이번 실습에서는 Minikube를 이용해 클러스터를 생성하고 애플리케이션을 배포해보았다.
아래에 있는 minikube 공식문서를 보고 따라서 설치하면 된다.
https://minikube.sigs.k8s.io/docs/start/?arch=%2Fwindows%2Fx86-64%2Fstable%2F.exe+download
minikube start
minikube is local Kubernetes, focusing on making it easy to learn and develop for Kubernetes. All you need is Docker (or similarly compatible) container or a Virtual Machine environment, and Kubernetes is a single command away: minikube start What you’ll
minikube.sigs.k8s.io
1. Minikube 비이너리 다운로드 및 설치

해당 사이트에 들어가면, 자신의 컴퓨터 사양에 맞춰서 설치할 수 있는 명령어가 나온다.
나는 Virtual Box 로 만든 Linux 환경에서 설치해서 위 명령어를 그대로 사용했다.
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
- 이 명령어는 curl 을 사용해 minikube의 최신 버전 바이너리 파일을 다운로드 한다.
- -L 옵션: URL이 리다이렉션 될 경우 그 위치를 따라가도록 한다.
- -O 옵션: 파일을 원래 이름을 저장한다 (따라서 다운로드 된 파일 이름은 minikube-linux-amd64 이다.)
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
- 이 명령어는 다운로드한 Minikube 바이너리를 /usr/local/bin 디렉터리에 minikube 라는 이름으로 복사하고 실행권한을 부여한다.
- 설치가 완료되면 다운로드한 바이너리 파일을 삭제헤 불필요한 파일을 정리한다.
2. 클러스터 시작
minikube start
- Minikube를 설치한 후 로컬 환경에서 클러스터를 시작할 수 있다.
- 아래 이미지와 같이 되면 잘 설치된 것이다.

3. kubectl 설치
- Minikube 클러스터와 상호작용하기 위해 kubectl이 필요하다.
- 아래 명령어를 이용해서 설치할 수 있다. (이미 설치되어 있다면 설치할 필요는 없다.)
- 설치가 제대로 되었는지 확인하기 위해서 version 명령어를 사용할 수 있다.
sudo snap install kubectl --classic
kubectl version --client
4. 클러스터 확인
kubectl get po -A
minikube kubectl -- get po -A
- 이 두 명령어로 클러스터의 상태를 확인할 수 있다.
- kubectl get po -A 명령어
- 현재 설정된 Kubernetes 클러스터에 모든 네임스페이스 내의 Pod 정보를 가져온다.
- 이 경우 kubectl이 Minikube 클러스터에 접근하려면 Minikube가 설정한 클러스터 구성이 현재 kubectl의 컨텍스트로 설정되어 있어야 한다.
- 즉, kubectl이 Minikube를 기본 클러스터로 사용하도록 설정된 경우라면 이 명령어로 Minikube 클러스터의 정보를 볼 수 있다.
- minikube kubectl --get po -A 명령어
- minikube 명령어를 통해 명시적으로 Minikube 클러스터에서 kubectl을 실행하는 방식
- Minikube는 자체적으로 kubectl 명령어를 래핑(wrapping)하여 클러스터에 접근할 수 있는 기능을 제공한다. 따라서 현재 kubectl의 컨텍스트가 다른 클러스터를 가리키고 있어도 이 명령어로 Minikube 클러스터에 접근할 수 있다.
- 즉 첫 번째 명령어는 현재 설정된 클러스터를 대상으로 하고, 두 번째 명령어는 명확히 Minikube 클러스터를 대상으로 하기 때문에 설정에 관계없이 Minikube에서 실행된다.
만약 Minikube가 기본 kubectl 명령어와 호환되지 않는 경우에는 아래와 같이 alias를 설정해 kubectl 명령어를 Minikube와 함께 사용할 수 있다.
alias kubectl="minikube kubectl --"
5. Minikube 대시보드 활성화
minikube dashboard
- minikube는 웹 기반 대시보드를 제공하여 클러스터의 상태를 시각적으로 모니터링 할 수 있다.

6. 애플리케이션 배포 - 서비스 노드 포트(NodePort)
hello-minikube 라는 간단한 애플리케이션을 배포하고 NodePort로 서비스를 노출하는 실습이다.
(1) 애플리케이션 배포 및 노출
kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0 kubectl expose deployment hello-minikube --type=NodePort --port=8080
kubectl get services hello-minikube
(2) 서비스 확인
minikube service hello-minikube
(3) 브라우저에서 서비스 접근
kubectl port-forward service/hello-minikube 7080:8080

7. 애플리케이션 배포 - 로드 밸런서(Load Balancer)
(1) LoadBalancer 타입 서비스로 Deployment 생성 및 노출
kubectl create deployment balanced --image=kicbase/echo-server:1.0 kubectl expose deployment balanced --type=LoadBalancer --port=8080
(2) Minikube 터널 실행
minikube tunnel
- Minikube 에서 LoadBalancer 서비스를 사용하려면 minikube tunnel을 통해 로컬 터널링이 필요하다.
(3) LoadBalancer 서비스 확인
kubectl get services balanced

8. 애플리케이션 배포 - 인그레스(Ingress)
(1) Ingress 애드온 활성화
minikube addons enable ingress
(2) Ingress 예제 적용
kubectl apply -f https://storage.googleapis.com/minikube-site-examples/ingress-example.yaml

이렇게 Minikube와 Kubectl을 통해 로컬 환경에서 Kubernetes 클러스터를 설정하고 다양한 배포 방식으로 실습을 진행했습니다.
'Kubernetes' 카테고리의 다른 글
[Kubernetes] Kubernetes에서 NodePort를 활용한 Spring Boot 애플리케이션의 모든 노드 포트 개방 및 서비스 배포 (0) | 2024.10.29 |
---|---|
[Kubernetes] 쿠버네티스에서의 리소스 관리 및 모니터링 (0) | 2024.10.29 |
[Kubernetes] ReplicaSet을 이용한 Pods 배포 (5) | 2024.10.25 |
[Kubernetes] Deployment를 이용한 Pod 배포 - Deployment와 Pods의 차이점 (0) | 2024.10.24 |
[Kubernetes] 쿠버네티스 네트워크 통신 구조 (0) | 2024.10.24 |