해당 오류를 도저히 못찾아서 새로 진행 하기로 함
모든 블로그와 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로 해야지 됨.
'인프라 > Kubernetis' 카테고리의 다른 글
[minikube]CNI (Calico 설치) 하기 (0) | 2025.09.10 |
---|---|
[minikube] Helm, Helm Chart 설치하기 (1) | 2025.08.28 |
[minikube] Service 란 무엇인가(ClusterIP)? (4) | 2025.08.23 |
[minikube]Pod, Replicaset, Deployment 실습 하기 (0) | 2025.08.14 |
[minikube] 레플리카셋(replicaset)과 디플로이먼트(Deployment) (2) (2) | 2025.08.13 |