🏠 목록 01. 사전 준비 📄 MD 원본 📁 Files 🔒 Private 🌓 테마

01. 사전 준비

호스트 패키지 확인 및 설치

# 필수 패키지 확인
dpkg -l | grep -E "virt-install|qemu-kvm|libvirt-daemon|genisoimage|cloud-image-utils|sshpass"

# 설치 (없는 것만)
sudo apt-get install -y \
  qemu-kvm \
  libvirt-daemon-system \
  libvirt-clients \
  virt-install \
  genisoimage \
  cloud-image-utils \
  sshpass \
  python3-pip \
  python3-venv

# libvirt 그룹 확인 (현재 사용자가 포함되어 있어야 함)
groups $USER | grep libvirt
# 없으면: sudo usermod -aG libvirt $USER && newgrp libvirt

SSH 키 준비

# 랩 전용 SSH 키 생성 (기존 키와 분리 권장)
ssh-keygen -t ed25519 -f ~/.ssh/k8s-lab -N "" -C "k8s-lab"

# 생성 확인
ls -la ~/.ssh/k8s-lab*
# ~/.ssh/k8s-lab      ← private key
# ~/.ssh/k8s-lab.pub  ← public key (cloud-init에 삽입됨)

Ubuntu 22.04 Cloud Image 다운로드

# 저장 위치: OS SSD에 여유 충분 (367GB available)
CLOUD_IMAGE_DIR="/var/lib/libvirt/images"
IMAGE_NAME="ubuntu-22.04-server-cloudimg-amd64.img"
IMAGE_URL="https://cloud-images.ubuntu.com/jammy/current/${IMAGE_NAME}"

sudo wget -O "${CLOUD_IMAGE_DIR}/${IMAGE_NAME}" "${IMAGE_URL}"

# 무결성 확인
sudo qemu-img info "${CLOUD_IMAGE_DIR}/${IMAGE_NAME}"

Python 가상환경 + kubespray 의존성 준비

cd /home/jinsoo/Documents/k8s-etcd-lab

# kubespray clone (03-setup-kubespray.sh에서 자동 처리)
git clone https://github.com/kubernetes-sigs/kubespray.git /tmp/kubespray-src

# Python venv 생성
python3 -m venv .venv
source .venv/bin/activate

# kubespray 의존성 설치
pip install -r /tmp/kubespray-src/requirements.txt

# ansible 버전 확인
ansible --version

리소스 요건 확인

항목 필요 현재 호스트
vCPU 12개 (4×3) 24스레드 ✅
RAM 24GB (8×3) 40GB ✅
디스크 120GB (40×3) SSD 367GB 여유 ✅
네트워크 NAT 브릿지 1개 libvirt 사용 ✅

사전 확인 체크리스트

# KVM 사용 가능 여부
kvm-ok || sudo apt-get install cpu-checker

# libvirtd 실행 상태
sudo systemctl status libvirtd

# 기존 네트워크 확인 (libvirt default network)
virsh net-list --all

# 기존 VM 목록 확인
virsh list --all