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 도구다.