[리눅스 한 학기 살기] #12 Minikube

curric·2025년 6월 2일

리눅스 한 학기 살기

목록 보기
13/13
post-thumbnail

드디어 마지막 설치 프로그램이다.
지금까지 docker, jenkins, grafana, prometheus 등 다양한 툴을 설치하며 배워왔는데, 마지막을 장식할만한건 Kubernetes 라고 생각했다.
쿠버네티스는 실제로 클라우드 인프라에서 가장 많이 쓰이는 컨테이너 오케스트레이션 도구이기도 하다.

Kubernetes와 Minikube란?


Kubernetes는 컨테이너화된 애플리케이션을 자동으로 배포하고 확장하며 운영할 수 있게 도와주는 오픈소스 시스템이다.

기본적으로 컨테이너(도커) 기반 애플리케이션을 관리해주는 도구다.
대표적인 기능은 다음과 같다 :

  • 다중 노드 클러스터 구성
  • Pod, Service, Deployment 관리
  • 자동 스케일링, 셀프 힐링 등

개인 Pc에서는 Minikube를 사용하면 로컬에서 Kubernetes를 테스트할 수 있다.

Minikube는 Kubernetes를 로컬에서 실습할 수 있게 도와주는 도구이다.

  • Kubernetes는 원래 여러대의 서버가 있어야하는데, 그걸 내 노트북 하나에서 테스트할 수 있게 해주는 것이다.
  • 즉, Minikube는 쿠버네티스 클러스터를 로컬에 설치하는 도구이다.

Minikube 설치 (Ubuntu 24.04기준)


1. kubectl 설치 (Snap)

sudo snap install kubectl --classic
  • kubectl은 Kubernetes 클러스터를 제어하는 CLI 도구이다.

설치확인 :

kubectl version --client

2. Minikube 다운로드

wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -O minikube

3. 실행 권한 부여 & 바이너리 시스템 경로로 이동

chmod 755 minikube

sudo mv minikube /u/sr/local/bin/

Minikube를 시스템 경로에 등록해서 어디서든 실행 가능하게 한다.

minikube version

설치 확인 가능

4. conntrack 설치

sudo apt update
sudo apt install -y conntrack
  • conntrack은 네트워크 연결 추적을 담당하는 유틸리티로, Kubernetes 네트워크 컴포넌트에 꼭 필요하다.
sudo minikube start --driver=none

5. crictl 설치 (Kubernetes가 필요로 함)

# 원하는 버전 설정 (예: v1.33.0)
VERSION="v1.33.0"

wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz

sudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin

rm crictl-$VERSION-linux-amd64.tar.gz

crictl --version

6. cri-dockerd 설치 (docker runtime 사용 시 필수)

# golang 설치 (없으면)
sudo apt install -y golang-go

# cri-dockerd 소스 클론
git clone https://github.com/Mirantis/cri-dockerd.git
cd cri-dockerd

# 빌드 전 임시공간 확인 및 확보 필요 (공간 부족 문제 주의)
df -h /tmp
# 만약 공간 부족 시 /tmp에 충분한 공간 확보하거나, TMPDIR 환경변수 설정 후 빌드 권장
export TMPDIR=$HOME/tmp

# 빌드
go build -o bin/cri-dockerd

# 실행 파일 설치
sudo install -o root -g root -m 0755 bin/cri-dockerd /usr/local/bin/cri-dockerd

# systemd 서비스 등록 및 실행 (필요 시)
sudo cp -a packaging/systemd/* /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable cri-docker.service
sudo systemctl enable --now cri-docker.socket

7. containernetworking-plugins 설치 (CNI 플러그인)


# 최신 버전 확인: https://github.com/containernetworking/plugins/releases
CNI_VERSION="v1.3.0"

wget https://github.com/containernetworking/plugins/releases/download/$CNI_VERSION/cni-plugins-linux-amd64-$CNI_VERSION.tgz

sudo mkdir -p /opt/cni/bin
sudo tar -C /opt/cni/bin -xzvf cni-plugins-linux-amd64-$CNI_VERSION.tgz

rm cni-plugins-linux-amd64-$CNI_VERSION.tgz

8. minikube none diver 권한 문제 해결

# /tmp에 생성되는 잠금파일 권한 문제 해결
sudo sysctl fs.protected_regular=0

# 재부팅 후에도 유지하려면
echo "fs.protected_regular=0" | sudo tee -a /etc/sysctl.conf

9. minikube 시작

sudo minikube start --driver=none
profile
학생입니다

0개의 댓글