
드디어 마지막 설치 프로그램이다.
지금까지 docker, jenkins, grafana, prometheus 등 다양한 툴을 설치하며 배워왔는데, 마지막을 장식할만한건 Kubernetes 라고 생각했다.
쿠버네티스는 실제로 클라우드 인프라에서 가장 많이 쓰이는 컨테이너 오케스트레이션 도구이기도 하다.
Kubernetes는 컨테이너화된 애플리케이션을 자동으로 배포하고 확장하며 운영할 수 있게 도와주는 오픈소스 시스템이다.
기본적으로 컨테이너(도커) 기반 애플리케이션을 관리해주는 도구다.
대표적인 기능은 다음과 같다 :
개인 Pc에서는 Minikube를 사용하면 로컬에서 Kubernetes를 테스트할 수 있다.
Minikube는 Kubernetes를 로컬에서 실습할 수 있게 도와주는 도구이다.
sudo snap install kubectl --classic
설치확인 :
kubectl version --client
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -O minikube
chmod 755 minikube
sudo mv minikube /u/sr/local/bin/
Minikube를 시스템 경로에 등록해서 어디서든 실행 가능하게 한다.
minikube version
설치 확인 가능
sudo apt update
sudo apt install -y conntrack
sudo minikube start --driver=none
# 원하는 버전 설정 (예: 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
# 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
# 최신 버전 확인: 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
# /tmp에 생성되는 잠금파일 권한 문제 해결
sudo sysctl fs.protected_regular=0
# 재부팅 후에도 유지하려면
echo "fs.protected_regular=0" | sudo tee -a /etc/sysctl.conf
sudo minikube start --driver=none