-
[VM,UbuntuOS]쿠버네티스 및 도커 환경 구축Back end/Server 2025. 4. 4. 11:59
master 노드 와 worker 노드를 하나씩 생성함. 🔹 3. 필수 시스템 설정 (모든 노드 적용)
📌 (1) SWAP 비활성화
Kubernetes는 swap이 활성화되어 있으면 동작하지 않음.# Swap 비활성화
sudo swapoff -a
# 부팅 시 자동으로 swap 비활성화
sudo sed -i '/ swap / s/^/#/' /etc/fstab📌 (2) 방화벽(Firewall) 설정
마스터와 워커 노드 간 통신을 위해 필수 포트 열기# 필수 포트 개방
sudo ufw allow 6443/tcp # Kubernetes API 서버
sudo ufw allow 10250/tcp # Kubelet API
sudo ufw allow 10255/tcp # Kubelet API (읽기 전용)
sudo ufw allow 30000:32767/tcp # NodePort 서비스
sudo ufw reload # 방화벽 적용📌 (3) 필요한 커널 모듈 활성화
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter📌 (4) 네트워크 설정 수정 (모든 노드 적용)
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
# 설정 적용
sudo sysctl --system🔹 4. Docker & Kubernetes 설치
📌 (1) Docker 설치 (모든 노드 적용)
sudo apt update
sudo apt install -y docker.io
# Docker 서비스 활성화
sudo systemctl enable --now docker📌 (2) Kubernetes 설치 (모든 노드 적용)
1. sudo apt-get install -y apt-transport-https ca-certificates curl gpg
2. sudo mkdir -p -m 755 /etc/apt/keyrings
3. curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
4. echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
5. apt-get update
6. apt-get install -y kubelet kubeadm kubectl🔹 5. 클러스터 초기화 (Master 노드에서 실행)
sudo kubeadm init --apiserver-advertise-address=192.168.239.133 \
--pod-network-cidr=10.244.0.0/16🚀 실행 후 출력된 kubeadm join 명령어를 복사해 둠
📌 초기화 완료 후, Kubernetes 설정 적용mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config🔹 6. 네트워크 플러그인 설치 (Flannel)
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml 🔹 7. 워커 노드 추가
🚀 마스터에서 출력된 kubeadm join 명령어를 Worker 노드에서 실행
kubeadm join 192.168.239.133:6443 --token c4hicl.exn6qv3m1qqsoahc --discovery-token-ca-cert-hash sha256:988744f5532ae9de669778ace2d22e594806b9ffd32f12174a29ccebec9bdcfd => 본인이 가상화 테스트한 환경에서 출력된 join 명령어임.
✅ 성공적으로 추가되었는지 확인 (마스터 노드에서 실행)
kubectl get nodes → STATUS가 Ready면 정상적으로 클러스터가 구성됨.
'Back end > Server' 카테고리의 다른 글