본문 바로가기 대메뉴 바로가기

테크니컬 스토리

아이티마야의 새로운 기술 뉴스를 만나보세요.
MiniKube란 무엇일까?
등록일
2023.10.06
첨부파일
k8s를 쉽게 구성할 수 있는 Minikube를 설치해 보자.
MiniKube란 무엇일까?
  • MiniKube란 무엇일까?

? Minikube는 Kubernetes 클러스터를 관리하는 데 도움이 되는 오픈소스입니다.
Minikube는 Kubernetes 클러스터를 배포하고 관리하는 데 사용되는 오픈소스 도구입니다.

Minikube를 사용하면 로컬 컴퓨터에서 단일 노드 Kubernetes 클러스터를 실행하여 애플리케이션 개발, 테스트 및 배포를 쉽게 할 수 있으며,
단일 머신에서 다중 노드 Kubernetes 환경을 시뮬레이션하여 다양한 Kubernetes 기능 및 구성을 실험할 수 있습니다.

  • MiniKube와 Kubernetes 차이점은 뭘까?

Kubernetes 특징

접근성이 좋다.
다중 클라우드 환경, 공용, 사설 또는 하이브리드 용으로 구축되어 있다.
모듈화 되어 있으며, 모든 구성 요소를 쉽게 교체할 수 있도록 설계되어 있다.

minikube 특징

로컬 시스템에서 쉽게 설치가 가능하다.
리눅스, 맥 OS, 윈도우를 지원하며, 설치 파일 이외에도 각 OS가 지원하는 패키지 매니저를 활용하여 편리하게 설치할 수 있다.
LoadBalancer
Multi-cluster
  • 저의 구성환경입니다
- OS: Ubuntu20.04 GUI [VM]
- CPU: 4Core
- Memory: 10GB
-Disk: 50GB

(1) 우선 MiniKube를 설치하기 위해선, Docker, snap, go를 설치해 줍니다.

docker install
# sudo apt update
# sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
# sudo apt update
# apt-cache policy docker-ce
# sudo apt install docker-ce

시스템이 종료된 후에도 Docker가 동작하게 해 줍니다.
# sudo systemctl status docker
# sudo systemctl enable docker.service
# sudo systemctl start docker.service

snap install
# sudo apt install snap

go install
# sudo snap install go --classic

(1-2) Docker Cri를 구성해줍니다.

# git clone https://github.com/Mirantis/cri-dockerd.git
# wget https://storage.googleapis.com/golang/getgo/installer_linux
# chmod +x ./installer_linux
# ./installer_linux
# source ~/.bash_profile
# cd cri-dockerd
# mkdir bin
# go build -o bin/cri-dockerd
# mkdir -p /usr/local/bin
# sudo install -o root -g root -m 0755 bin/cri-dockerd /usr/local/bin/cri-dockerd
# sudo cp -a packaging/systemd/* /etc/systemd/system
# sudo sed -i -e \\\'s,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,\\\' /etc/systemd/system/cri-docker.service
# sudo systemctl daemon-reload


Cri-Docker를 실행해 줍니다.
# sudo systemctl start cri-docker.service
# sudo systemctl start cri-docker.socket
# sudo systemctl enable cri-docker.service
# sudo systemctl enable cri-docker.socket

(2) Docker 설치를 완료했다면, MiniKube를 설치해 줍니다.

# curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64\
&& chmod +x minikube
# sudo mkdir -p /usr/local/bin/
# sudo install minikube /usr/local/bin/

(2-1) Conntrack 설치해줍니다.

? Conntrack은 무엇일까?

Conntrack는 Linux 운영 체제에서 사용되는 네트워크 관련 도구로, 시스템 내에서 네트워크 연결을 추적하는 기능을 제공합니다.
또한 conntrack은 네트워크 문제를 해결하고 네트워크 트래픽에서 병목 현상을 식별하여 네트워크 성능을 최적화하는 데도 사용될 수 있습니다.

# sudo apt-get install conntrack

(2-2) CriCtl 설치 해줍니다.

? CriCtl은 무엇일까?

쿠버네티스 노드에서 컨테이너 런타임과 애플리케이션을 검사하고 디버그 하는 데 사용할 수 있다.

# VERSION="v1.21.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

(3) 필수 패키지 설치가 완료되었다면, MiniKube를 실행시켜 줍니다. [아래 이미지처럼 실행이 됩니다.]

# sudo minikube start --vm-driver=none

원하는 Kubernetes버전이 있을시,
# minikube start --kubernetes-version=v1.21.0

(3-1) 설치 중, 아래와 같은 메시지가 나온다면 아래 명령어를 따라 설치해 주세요.

# CNI_PLUGIN_VERSION="v1.3.0"
CNI_PLUGIN_TAR="cni-plugins-linux-amd64-$CNI_PLUGIN_VERSION.tgz"
CNI_PLUGIN_INSTALL_DIR="/opt/cni/bin"
#curl -LO "https://github.com/containernetworking/plugins/releases/download/$CNI_PLUGIN_VERSION/$CNI_PLUGIN_TAR"

# sudo mkdir -p "$CNI_PLUGIN_INSTALL_DIR"
# sudo tar -xf "$CNI_PLUGIN_TAR" -C "$CNI_PLUGIN_INSTALL_DIR"
# sudo rm "$CNI_PLUGIN_TAR"

(3-2) 설치 중, 아래와 같은 메시지가 나온다면 빨간색 체크 박스에 표시된 명령어를 실행해 주세요.

# sudo systemctl fs.protected_regular=0

(4) 설치가 완료되셨다면, Kubernetes를 설치해 줍니다.

# curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - &&
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list &&
sudo apt-get update -q &&
sudo apt-get install -qy kubelet=1.21.0-00 kubectl=1.21.0-00 kubeadm=1.21.0-00

(4-1) Kubernetes 명령어를 사용하기 위해 아래 명령어를 입력해 줍니다.

# sudo mkdir -p ${HOME}/.kube
# sudo cp -i /etc/kubernetes/admin.conf ${HOME}/.kube/config
# sudo chown ${USER}:${USER} ${HOME}/.kube/config

(4-2) Kube설치가 완료되셨다면, Calico Network Plugin 설치해 줍니다.

? Calico Network Plugin이란

오픈소스 네트워킹이며, kube에서 각 Pod 간 네트워크 통신이 가능하도록 도와주는 플러그인입니다.

# kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

(6) MiniKube 상태 확인 방법입니다. [아래 이미지처럼 상태를 확인할 수 있습니다.]

# sudo minikube status

(7) MiniKube DashBoard를 설치합니다.

# sudo minikube addons enable dashboard
# sudo minikube dashboard

(7-1) 아래 명령어로 DashBoard가 실행됐는지 확인합니다. [아래 이미지처럼 enabled가 표시됩니다.]

# sudo minikube addons list

(7-2) Proxy설정 후, DashBoard를 실행해 줍니다. [아래 이미지처럼 DashBoard에 접속됩니다.]

# kubectl proxy --address=\\\'0.0.0.0\\\' --disable-filter=true
# sudo minikube dashboard

접속 방법 입니다. [8001은 MiniKube DashBoard의 Port입니다.]
http://[YourServerIP]:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

아래 이미지는 접속 된 상태 입니다.

PLEASE WAIT WHILE LOADING...