ops/kubernetes
kubernetes 설정 - 5 (워커노드 설정)
by seohan1010
2025. 11. 27.
#!/bin/bash
set -e
echo "===== WORKER STEP 1: kernel / swap / cgroup ====="
# 1. swap 비활성화 (필수)
sudo swapoff -a
sudo sed -i '/swap/d' /etc/fstab
# 2. 커널 모듈
sudo tee /etc/modules-load.d/k8s.conf <<EOF
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
# 3. 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
echo "===== WORKER STEP 2: containerd + kubeadm ====="
sudo apt update -y
sudo apt upgrade -y
# 1. 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
# 2. Kubernetes 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
sudo tee /etc/apt/sources.list.d/kubernetes.list <<EOF
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.34/deb/ /
EOF
sudo apt update -y
# 3. kubeadm / kubelet 설치
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 "=============================================="