본문으로 건너뛰기

Day 1 - Kubernetes 환경 구축

Day 1 - Kubernetes 환경 구축

목차


1. 환경 구성

image

Windows 호스트 네트워크

VMware Network Adapter VMnet8 (NAT)

항목
IPv4 주소192.168.5.1
서브넷 마스크255.255.255.0

VMware 가상 네트워크

네트워크타입서브넷용도
VMnet1Host-only172.100.100.0/24호스트-VM 전용 통신
VMnet8NAT192.168.5.0/24외부 인터넷 연결

VMnet8 DHCP:

항목
DHCP 범위192.168.5.201 ~ 254

가상머신 사양

항목
VM 이름k8s-master
메모리4GB
CPU2 Processors
디스크100GB (ext4)
OSUbuntu Server 24.04
네트워크 1NAT (VMnet8)
네트워크 2Host-only (VMnet1)

Ubuntu 네트워크 설정

인터페이스타입IP 주소용도
ens33NAT192.168.5.11/24외부 인터넷
ens37Host-only172.100.100.2/24호스트 통신

Netplan 설정:

sudo vim /etc/netplan/50-cloud-init.yaml
network:
ethernets:
ens33:
addresses: [192.168.5.11/24]
routes:
- to: default
via: 192.168.5.2
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
ens37:
addresses: [172.100.100.2/24]
version: 2
sudo netplan apply

시스템 설정

# 시간 동기화 활성화
sudo timedatectl set-ntp true

# 상태 확인
timedatectl status

# 동기화 상태 확인
timedatectl timesync-status

# 스왑 비활성화
sudo swapoff -a

2. Docker 설치

커널 설정

# IP 포워딩 활성화
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

# 모듈 로드
sudo modprobe overlay
sudo modprobe br_netfilter

# 영구 설정
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF

# sysctl 설정
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

Docker 엔진 설치

# 필수 패키지
sudo apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# Docker GPG 키
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Docker 레포지토리
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

# Docker 설치
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 사용자 그룹 추가
sudo usermod -aG docker $USER

#재시작
sudo reboot

Containerd 설정

# config.toml 생성
sudo sh -c "containerd config default > /etc/containerd/config.toml"

# SystemdCgroup 활성화
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

# daemon.json 설정
sudo tee /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {"max-size": "100m"},
"storage-driver": "overlay2"
}
EOF

# 서비스 재시작
sudo systemctl daemon-reload
sudo systemctl enable docker containerd
sudo systemctl restart docker containerd

3. Kubernetes 설치

# 레포지토리 추가
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

# 패키지 설치
sudo apt update
sudo apt install -y kubelet kubeadm kubectl

# 버전 고정
sudo apt-mark hold kubelet kubeadm kubectl

# 서비스 시작
sudo systemctl daemon-reload
sudo systemctl enable --now kubelet

버전 확인:

kubeadm version # v1.32.x
kubectl version --client
kubelet --version

result


관련 문서

그래프 뷰

그래프 데이터 로딩 중…
현재: Day 1 - Kubernetes 환경 구축
노드 클릭 → 이동 · 드래그 → 위치 조정