1. SSH 서버 활성화 및 기본 필요 패키지 설치
sudo systemctl enable ssh sudo systemctl start ssh sudo apt update && sudo apt upgrade sudo apt-get install -y ca-certificates curl apt-transport-https gpg
2. Docker 관련 패키지 설치 (필요 없는 경우 containerd.io만 설치하면 됨)
- Debian Linux (Raspberry Pi OS 포함, Ubuntu 제외)
sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- Ubuntu
sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3. 메모리 Swap 비활성화 및 Cgroup 활성화
- Debian Linux (Ubuntu 포함)
sudo vi /etc/fstab # 다음과 같이 주석 처리 후 저장 # /swap.img none swap sw 0 0 sudo reboot
- Raspberry Pi OS
sudo dphys-swapfile swapoff sudo systemctl disable dphys-swapfile sudo vi /boot/firmware/cmdline.txt # cgroup_enable=memory cgroup_memory=1 을 앞에 추가
4. Kubernetes 설치 (Kubeadm 배포판)
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-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl sudo containerd config default | sudo tee /etc/containerd/config.toml sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml sudo systemctl restart containerd sudo systemctl restart kubelet sudo modprobe br_netfilter cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf br_netfilter EOF cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sudo sysctl --system
5. Kubernetes 클러스터 생성 및 Flannel CNI 설치 (Master 노드)
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --v=5 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- Cluster Join Token 재발급
kubeadm token create --print-join-command
6. Kubernetes 클러스터 등록 (Worker 노드)