--- title: 01. 사전 준비 date: 2026-06-29 type: guide domain: k8s tags: [etcd, kubernetes, lab, prerequisites] --- ## 호스트 패키지 확인 및 설치 ```bash # 필수 패키지 확인 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 키 준비 ```bash # 랩 전용 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 다운로드 ```bash # 저장 위치: 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 의존성 준비 ```bash 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 사용 ✅ | ## 사전 확인 체크리스트 ```bash # 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 ```