리눅스

우분투 22.04에서 Minikube를 활용하여 로컬 Kubernetes 클러스터를 구축하는 방법

변군이글루 2025. 6. 2. 15:52
반응형

우분투 22.04에서 Minikube를 활용하여 로컬 Kubernetes 클러스터를 구축하는 방법

가상화 지원 확인

vmx는 Intel CPU, svm은 AMD CPU의 가상화 지원 플래그입니다.

egrep -m1 'vmx|svm' /proc/cpuinfo
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cplvmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 popcnt aes lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid dtherm ida arat flush_l1d

필수 패키지 설치

conntrack은 Minikube 실행 시 Kubernetes가 필요로 하는 네트워크 모듈입니다.

sudo apt update
sudo apt install -y curl apt-transport-https ca-certificates conntrack

Docker 설치

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker # 현재 세션에 적용

Docker 서버(엔진) 버전 확인

docker version --format '{{.Server.Version}}'
27.5.1

get-docker.sh 파일 삭제

sudo rm -f get-docker.sh

kubectl 설치(Kubernetes CLI)

curl -LO "https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

kubectl 버전 확인

kubectl version --client
Client Version: v1.33.1
Kustomize Version: v5.6.0

kubectl 바이너리 파일 삭제

sudo rm -f kubectl

Minikube 설치

curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

Minikube 버전 확인

minikube version
minikube version: v1.36.0
commit: f8f52f5de11fc6ad8244afac475e1d0f96841df1-dirty

minikube-linux-amd64 바이너리 파일 삭제

rm minikube-linux-amd64
728x90

Minikube 클러스터 시작

minikube start --driver=docker
더보기

---

Minikube를 --driver=none 모드로 설치

minikube start --driver=none

Minikube 중지

minikube stop

Minikube 삭제

minikube delete

---

클러스터 확인

minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

Minikube IP 확인

minikube ip
192.168.49.2
kubectl get nodes
NAME      STATUS   ROLES           AGE   VERSION
minikube  Ready    control-plane   39s   v1.33.1
kubectl cluster-info
Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

테스트: 간단한 Pod 배포

Deployment 생성

kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
deployment.apps/hello-minikube created

NodePort 서비스 생성

kubectl expose deployment hello-minikube --type=NodePort --port=8080
service/hello-minikube exposed

서비스 정보 확인

minikube service hello-minikube
|-----------|----------------|-------------|---------------------------|
| NAMESPACE |      NAME      | TARGET PORT |            URL            |
|-----------|----------------|-------------|---------------------------|
| default   | hello-minikube |        8080 | http://192.168.49.2:30414 |
|-----------|----------------|-------------|---------------------------|
* Opening service default/hello-minikube in default browser...
  http://192.168.49.2:30414

Deployment와 Service를 삭제

더보기

---

Deployment 삭제

kubectl delete deployment hello-minikube

Service 삭제

kubectl delete service hello-minikube

---

curl 또는 브라우저로 접근

hello-minikube-ffcbb5874-tk7dq

 

반응형