본문 바로가기
인프라/Kubernetis

[minikube] 마스터노트와 워커 노드 재설치

by devthrive 2025. 9. 6.
반응형

해당 오류를 도저히 못찾아서 새로 진행 하기로 함

모든 블로그와 AI에 물어봐도 도저히 답이 안나와 새로 진행 하기로 함

 

기본적인 툴 설치 후 이미지를 복제 한뒤 새로 덮어 둔 후 노드를 2개 만듬

아이피 확인을 위해 net-tools 설치 (설치해야지 ifconfig가 가능함)

복제 후 아이피 중복이 안되기 위해 아이피 변경이 필요함 이후 hostname도 변경해야 함

sudo ls /etc/netplan 안에 파일이 있는지 확인 후 vi로 수정 node1(2.26)으로 변경
그리고 sudo netplan apply로 적용 해준 후

sudo hostnamectl set-hostname 노드명 작성 후 재부팅 하면 변경이 됨

이와 같이 node2(2.27)도 변경 해줘야 함

기본 셋팅은 완료

 

공식문서 기준을 설치 할예정
containerd 설치하기
참고 : https://kubernetes.io/ko/docs/setup/production-environment/container-runtimes/

IPv4를 포워딩하여 iptables가 브리지된 트래픽을 보게 하기

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

sudo modprobe overlay
sudo modprobe br_netfilter

# 필요한 sysctl 파라미터를 설정하면, 재부팅 후에도 값이 유지된다.
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# 재부팅하지 않고 sysctl 파라미터 적용하기
sudo sysctl --system

 

containerd 설치

 

설치 해도 /etc/containerd 디렉토리가 생성 되질 않아서 추가 해줌

 

이후 containerd config.toml 파일으 생성 해줘야함

containerd config default > /etc/contained/Config.toml

해당 파일 디나인 뜨면

sudo containerd config default | sudo tee /etc/containerd/Config.toml 로 하면 됨
 (참고 : Config.toml을 대문자가 아닌 config.toml로 해야지 됨.
  안그럼 워커노드와의 조인이 안되고 해당 에러 발생하게 됨 오류해결 문 맨아래 참고)

 

SystemCgroup = true로 변경

이후 sudo systemctl restart containerd로 재시작 함

 

vi /etc/fstab에서 swap 메모리를 꺼야 함

쿠버네티스 설치 시 스왑 메모리를 끄는 이유
 - 쿠버네티스는 노드의 물리적 메모리만을 기준으로 리소스를 관리하며, 스왑 메모리가 활성화되면 메모리 부족 상황을 정확히 인        지하지 못해 리소스 관리가 불안정해짐.
 - 스왑 사용 시 디스크 I/O가 증가해 성능 저하가 발생하고, 이는 클러스터 안정성에 악영향을 줄 수 있음.

 -  쿠버네티스의 kubelet은 스왑 환경을 지원하지 않도록 설계되어 있어, 스왑 활성 시 동작에 문제가 생길 수 있음
 -  따라서 쿠버네티스에서는 스왑 메모리를 비활성화하는 것이 기본 원칙이며, 재부팅 후에도 스왑이 켜지지 않도록 설정해야 함

 즉, 스왑 메모리 비활성화는 쿠버네티스의 안정적이고 일관된 리소스 관리를 위한 필수 조건

그래서 주석 처리 로 비활성화 시킴 그리고 재부팅

 

swapon --show 했을때 아무것도 안나와야지 정상

 

swapon --show 했을때 아래 처럼 나오면 주석 처리 후 저장 안했을 확률이 높음

 

kubeadm 설치

참고자료 : https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

 

apt 저장소를 사용하는데 필요한 패키지 설

sudo apt-get update
# apt-transport-https may be a dummy package; if so, you can skip that package
sudo apt-get install -y apt-transport-https ca-certificates curl gpg

 

저장소의 공개 서명 키 다운 받기

Kubernetes 1.34 안정 버전용 APT 패키지 저장소를 시스템에 추가하는 설정 작업

해당 apt 저장소를 업데이트를 

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-get update

 

kubelet, kubeadm, kubectl 설치 진행

 

해당 패키지가 apt upgrade등으로 자동 업데이트 되는 걸 막음.

 

--apiserver-advertise-address는 API 서버가 외부에 알리는 IP,
--service-cidr는 서비스 IP 풀,
--pod-network-cidr는 파드 IP 풀을 지정하는 네트워크 옵션으로,
클러스터 구조와 네트워크 환경에 맞게 조정하여 안정적인 클러스터 운영을 위한 기반을 만듭니다.

 

control-plane successfully 뜨면 아래 문 복사해서 진행

 

그리고 마스터에서 나온 kubeadm join문을 복사해서 워커 노드에 넣어주면 됨

kubeadm join 172.16.2.25:6443 --token j2p7b2.6wo828aq1fh16u68 \
        --discovery-token-ca-cert-hash sha256:a8de33d9236068afecbea866c8519e8b827d374e9f6a3ebfd375122ca5bf84c2

 

정상적으로 붙는지 확인

 

 

 

 오류 해결 ) 처음에 해당 오류가 나와서 확인 해보니 Config.toml을 대문자가 아닌 config.toml로 해야지 됨.

Config.toml로 인한 오류

 

반응형