본문 바로가기

리눅스

[draft] 쿠버네티스 워커 노드를 설치하고 클러스터에 참여시키기

728x90

쿠버네티스 워커 노드를 설치하고 클러스터에 참여시키기

kubeadm 초기화

kubeadm reset

kubelet, containerd

sudo systemctl --now disable kubelet
sudo systemctl --now disable containerd

방화벽(UFW) 중지 및 비활성화

sudo systemctl stop ufw && sudo systemctl disable ufw

Swap 비활성화

sudo swapoff -a
sudo sed -i '/\s*swap\s*/ s/^/#/' /etc/fstab

커널 모듈 로드 설정 및 로드

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter

커널 파라미터 네트워크 설정 및 적용

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

시스템 리부팅

sudo reboot

NTP(Network Time Protocol) 설치 및 활성화

sudo apt-get install -y ntp
sudo systemctl enable --now ntp
ntpq -p

필수 패키지 설치

sudo apt-get update
sudo apt-get install -y gnupg2 software-properties-common apt-transport-https ca-certificates lsb-release curl
728x90

Containerd 설치

Docker 리포지토리 설정

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key --keyring /etc/apt/trusted.gpg.d/docker.gpg add -
echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

Containerd 설치 및 설정

sudo apt-get update
sudo apt-get install -y containerd.io
sudo systemctl --now enable containerd
sudo mkdir -p /etc/containerd
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

쿠버네티스 설치

쿠버네티스 리포지토리 설정

KUBERNETES_VERSION="v1.30"
sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/${KUBERNETES_VERSION}/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:/${KUBERNETES_VERSION}/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 systemctl enable --now kubelet

워커 노드 클러스터 구성

쿠버네티스 클러스터에 워커 노드로 참여합니다.

kubeadm join 192.168.0.130:6443 --token tsn8fn.7igyens2natcr4bh \
  --discovery-token-ca-cert-hash sha256:0934c0528df98ced02e3b13fe0b93c8439b7a2f92a3306dc523754ddab485205

control-plane에서 워커 노드가 클러스터에 참여하는지 확인합니다.

  • 클러스터 상태 확인
kubectl get nodes

nodes

토근 확인 및 재생성

  • kubeadm 토큰은 유효 기간이 있기 때문에 만료될 수 있습니다.
  • 마스터 노드에서 새로운 토큰을 생성하고 discovery-token-ca-cert-hash를 얻을 수 있습니다.
kubeadm token create --print-join-command

 

728x90