반응형

2025년 최신 RKE2 버전(v1.30.4)으로 10분 만에 안정적인 쿠버네티스 클러스터를 구축하는 방법을 공개합니다. 실습용 AWS EC2 2대면 충분합니다.
필수 준비 사항
OS
Ubuntu 24.04 LTS (Master/Worker 동일)
사양
- Master: 2vCPU, 4GB RAM, 30GB SSD
- Worker: 1vCPU, 2GB RAM, 20GB SSD
공통 설정
# 스왑 메모리 완전 비활성화
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab
# 시스템 업데이트
sudo apt update && sudo apt upgrade -y
# 방화벽 비활성화 (실습 환경)
sudo systemctl disable --now ufw
# 필수 패키지 설치
sudo apt install -y curl wget net-tools
# 시간 동기화
sudo timedatectl set-ntp trueAWS EC2 보안 그룹 설정
| 22 | TCP | 0.0.0.0/0 | SSH 접속 |
| 6443 | TCP | VPC CIDR | Kubernetes API |
| 9345 | TCP | VPC CIDR | RKE2 Supervisor |
| 2379-2381 | TCP | VPC CIDR | etcd 통신 |
| 8472 | UDP | VPC CIDR | Flannel VXLAN |
| 10250 | TCP | VPC CIDR | kubelet API |
마스터 노드 설정
RKE2 설치
# RKE2 서버 설치 (최신 v1.30.4 자동 다운로드)
curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="server" sh -
# 설치 확인
sudo ls -la /usr/local/bin/rke2*설정 파일 작성
# 설정 디렉토리 생성
sudo mkdir -p /etc/rancher/rke2
# 마스터 노드 설정 파일 생성
sudo tee /etc/rancher/rke2/config.yaml > ~/.bashrc
source ~/.bashrc
# 클러스터 상태 확인
kubectl get nodes
kubectl get pods -A워커 노드 추가
토큰 확인 (마스터 노드에서 실행)
# 노드 토큰 확인
sudo cat /var/lib/rancher/rke2/server/node-token
# 마스터 노드 IP 확인
hostname -I | awk '{print $1}'워커 노드 설정
# RKE2 에이전트 설치
curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="agent" sh -
# 설정 디렉토리 생성
sudo mkdir -p /etc/rancher/rke2
# 워커 노드 설정 파일 생성
sudo tee /etc/rancher/rke2/config.yaml :9345
token:
# 노드 라벨 설정
node-label:
- "node-type=worker"
- "environment=production"
# kubelet 추가 설정
kubelet-arg:
- "max-pods=110"
EOF
# 서비스 활성화 및 시작
sudo systemctl enable --now rke2-agent
# 서비스 상태 확인
sudo systemctl status rke2-agent
sudo journalctl -u rke2-agent -f클러스터 검증
노드 상태 확인
# 마스터 노드에서 실행
kubectl get nodes -o wide
# 노드 상세 정보 확인
kubectl describe nodes
# 시스템 Pod 상태 확인
kubectl get pods -A
# 클러스터 정보 확인
kubectl cluster-info테스트 앱 배포
# Nginx 배포
kubectl create deployment nginx --image=nginx:alpine
# 서비스 노출
kubectl expose deployment nginx --port=80 --type=NodePort
# 서비스 상태 확인
kubectl get svc nginx
# Pod 상태 확인
kubectl get pods -l app=nginx
# 서비스 테스트
NODE_PORT=$(kubectl get svc nginx -o jsonpath='{.spec.ports[0].nodePort}')
curl http://$(hostname -I | awk '{print $1}'):$NODE_PORT네트워크 연결 테스트
# Pod 간 통신 테스트
kubectl run test-pod --image=busybox --rm -it -- sh
# 내부에서 실행
nslookup kubernetes.default
wget -qO- nginx.default.svc.cluster.local
exit
# Calico 네트워크 상태 확인
kubectl get pods -n calico-system
kubectl -n calico-system logs -l k8s-app=calico-node --tail=50고급 설정 팁
Calico 네트워크 최적화
# /etc/rancher/rke2/config.yaml에 추가
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: rke2-calico
namespace: kube-system
spec:
valuesContent: |-
installation:
calicoNetwork:
mtu: 9000
ipPools:
- blockSize: 26
cidr: 10.42.0.0/16
encapsulation: VXLAN
natOutgoing: Enabled
nodeSelector: all()노드 라벨 자동 부여
# 워커 노드 설정에 추가
sudo tee -a /etc/rancher/rke2/config.yaml 9345`로 포트 개방 확인 |
| **Pod 네트워크 불안정** | `kubectl -n calico-system logs -l k8s-app=calico-node` |
| **이미지 풀 에러** | `sudo /var/lib/rancher/rke2/bin/crictl pull nginx:alpine` |
| **DNS 해결 실패** | `kubectl -n kube-system logs -l k8s-app=kube-dns` |
| **API 서버 접근 불가** | `sudo systemctl restart rke2-server` |
### **상세 트러블슈팅**
```bash
# 1. 서비스 상태 전체 확인
sudo systemctl status rke2-server
sudo systemctl status rke2-agent
# 2. 네트워크 연결 테스트
nc -zv 6443
nc -zv 9345
# 3. 컨테이너 런타임 상태
sudo /var/lib/rancher/rke2/bin/crictl ps
sudo /var/lib/rancher/rke2/bin/crictl images
# 4. etcd 상태 확인 (마스터 노드)
sudo /var/lib/rancher/rke2/bin/crictl exec $(sudo /var/lib/rancher/rke2/bin/crictl ps --name etcd --quiet) etcdctl endpoint health
# 5. 로그 분석
sudo journalctl -u rke2-server --since "1 hour ago"
sudo journalctl -u rke2-agent --since "1 hour ago"일반적인 오류 해결
# ImagePullBackOff 오류
kubectl describe pod
sudo /var/lib/rancher/rke2/bin/crictl pull
# 노드 Not Ready 상태
kubectl describe node
sudo systemctl restart rke2-agent
# 네트워크 정책 문제
kubectl get networkpolicies -A
kubectl -n calico-system get pods추가 구성 요소 설치
Helm 설치
# Helm 3 설치
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
# Helm 버전 확인
helm versionIngress Controller 설치
# NGINX Ingress Controller
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--create-namespace \
--set controller.service.type=NodePort모니터링 스택 설치
# Prometheus + Grafana
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install monitoring prometheus-community/kube-prometheus-stack \
--namespace monitoring \
--create-namespace마무리
RKE2는 단 4개의 명령어로 프로덕션급 쿠버네티스 클러스터를 구축할 수 있습니다. 이 가이드를 따라 마스터 1대 + 워커 2대 환경을 구성한 후, Helm으로 Argo CD나 Prometheus를 추가해보세요. Edge Computing 환경 구축도 가능합니다.
핵심 포인트:
- 10분 내 클러스터 구축 완료
- AWS EC2 최소 사양으로 비용 효율적 구성
- Calico CNI 기본 제공으로 안정적인 네트워킹
- 프로덕션급 보안 설정 자동 적용
- 확장성과 유지보수성 보장
RKE2 v1.30.4는 최신 Kubernetes 기능을 모두 지원하면서도 설치와 관리가 간편한 차세대 엔터프라이즈 플랫폼입니다. 이제 여러분만의 클라우드 네이티브 환경을 구축해보세요!
반응형
'IT기술 > 쿠버네티스 (k8s)' 카테고리의 다른 글
| RKE1 vs RKE2 CNI 플러그인 완벽 가이드: 쿠버네티스 네트워킹의 미래를 선택하는 방법 (2) | 2025.07.10 |
|---|---|
| RKE2 보안 완벽 가이드: 기업과 정부를 위한 차세대 보안 쿠버네티스 (4) | 2025.07.10 |
| RKE2 설치 완벽 가이드: Ubuntu와 Rocky Linux 환경별 구축 방법 (6) | 2025.07.08 |
| RKE2 설치 필수 요구사항 완벽 가이드: 성공적인 쿠버네티스 클러스터 구축 (0) | 2025.07.07 |
| RKE2 아키텍처 완벽 가이드: 차세대 엔터프라이즈 쿠버네티스 구조 분석 (0) | 2025.07.06 |