- Published on
3단계: Kubernetes 로컬 설치 (minikube)
minikube란?
- 로컬에서 단일 노드 Kubernetes 클러스터를 실행할 수 있게 도와주는 툴
- Kubernetes 실습에 최적화되어 있으며, kubectl CLI와 함께 사용
설치
Ubuntu (22.04 이상)
# 1. kubectl 설치
curl -LO "https://dl.k8s.io/release/$(curl -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
# 2. minikube 설치
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 3. Docker가 없다면 설치
sudo apt update
sudo apt install -y docker.io
sudo usermod -aG docker $USER
Rocky Linux (9.x 기준)
# 1. kubectl 설치
curl -LO "https://dl.k8s.io/release/$(curl -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
# 2. minikube 설치
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 3. Docker 설치
sudo dnf install -y dnf-utils device-mapper-persistent-data lvm2
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
공통 후속 작업
# minikube 클러스터 시작
minikube start --driver=docker
# 정상 동작 확인
minikube status
kubectl get nodes
간단한 Pod 생성 실습
kubectl run nginx --image=nginx --port=80
kubectl expose pod nginx --type=NodePort --port=80
minikube service nginx
요약
- minikube는 로컬에서 Kubernetes 클러스터를 실행하기 위한 도구로, 실습에 적합하다.
- Ubuntu와 Rocky Linux는 Docker 설치 방식이 다르므로 OS에 맞게 준비해야 한다.
- minikube는 kubectl과 함께 사용하며, Pod 생성과 서비스 노출을 통해 실습할 수 있다.
심화학습
Q1: Ubuntu와 Rocky에서 Docker 설치 방식이 다른 이유는 뭘까?
A: 패키지 매니저가 다르기 때문이다. Ubuntu는 apt
, Rocky Linux는 dnf
를 사용하며 Docker 저장소 설정 방식도 각각 다르다.
Q2: minikube start --driver=docker
옵션을 쓰는 이유는?
A: minikube가 클러스터 실행 시 사용할 가상화 드라이버를 지정하는 것이다. Docker를 지정하면 VM 없이 Docker 컨테이너 위에서 클러스터를 실행할 수 있다.
Q3: kubectl
명령어 없이 minikube만 가지고는 어떤 작업이 불가능한가?
A: Kubernetes 리소스를 생성, 조회, 삭제하는 작업은 불가능하다. kubectl
은 Kubernetes API 서버와 통신하는 핵심 CLI 도구다.