본문 바로가기
ops/kubernetes

qemu에 kubernetes cluster 구축하기 - 3(worker-node 설정)

by seohan1010 2025. 12. 16.
#!/bin/bash
set -e

echo "===== [WORKER STEP 2] containerd + kubeadm ====="

sudo apt update -y
sudo apt upgrade -y


# swap 비활성화
sudo swapoff -a
sudo sed -i '/swap/d' /etc/fstab

# sysctl
sudo tee /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

sudo sysctl --system


# containerd
sudo apt install -y containerd
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml > /dev/null
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml

sudo systemctl restart containerd
sudo systemctl enable containerd

# k8s repo
sudo apt install -y apt-transport-https ca-certificates curl gpg
sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.34/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.34/deb/ /' \
 | sudo tee /etc/apt/sources.list.d/kubernetes.list


sudo apt update -y
sudo apt install -y kubelet kubeadm
sudo apt-mark hold kubelet kubeadm

sudo systemctl enable --now kubelet

echo "=============================================="
echo "✅ 워커 노드 준비 완료"
echo "👉 control-plane에서 kubeadm join 실행"
echo "=============================================="




-설치가 완료되면 아래의 명령어를 입력
->

kubeadm join <apiserver주소>6443 --token <토큰명>\
--discovery-token-ca-cert-hash <해시값>
-> 문제가 생겼다면 
: --v=5 를 마지막에 입력하여 디버깅 

-연결 상태 디버깅 
-> 
: nc -zv 10.0.6.10 6443


-worker노드에 문제 있을시 
sudo kubeadm reset -f

sudo rm -rf /etc/kubernetes
sudo rm -rf ~/.kube

sudo rm -rf /var/lib/cni
sudo rm -rf /etc/cni/net.d

sudo systemctl restart containerd kubelet