IT기술/쿠버네티스 (k8s)

RKE1에서 RKE2 마이그레이션 완벽 가이드: 차세대 쿠버네티스로의 안전한 전환

후스파 2025. 7. 20. 15:56
반응형

RKE1은 2025년 7월 말로 공식 지원이 종료됩니다. RKE2는 containerd 기반의 차세대 배포판으로 보안·성능·업스트림 호환성을 강화했으며, SELinux·FIPS·CIS 벤치마크 통과 기능을 제공합니다. 따라서 기존 RKE1 클러스터를 RKE2로 전환해 안정적인 운영 환경을 확보해야 합니다.


RKE1 → RKE2 마이그레이션 개요

마이그레이션 필요성

  • RKE1 EOL: 2025년 7월 31일 공식 지원 종료
  • 보안 강화: CIS 벤치마크, FIPS 140-2, SELinux 자동 준수
  • 성능 향상: containerd 기반으로 60% 메모리 절약
  • 업스트림 호환성: Kubernetes 표준 준수

마이그레이션 전략

RKE1에서 RKE2로의 전환은 단순 업그레이드가 아닌 '새 클러스터 재배포 + 워크로드 재플랫폼' 방식으로 진행해야 합니다.

컨테이너 런타임Dockercontainerd
제어 평면Docker 컨테이너정적 Pod
보안 준수수동 설정자동 CIS/FIPS
지원 상태EOL 2025.07.31지속 지원

사전 준비 사항

RKE1 클러스터 상태 점검

# 클러스터 전체 상태 확인
kubectl get nodes,pods,svc -A

# 리소스 상세 분석
kubectl get all -A -o wide
kubectl get pv,pvc -A
kubectl get ingress -A
kubectl get secrets -A
kubectl get configmaps -A

# 클러스터 정보 수집
kubectl cluster-info
kubectl version
kubectl api-resources

백업 전략

Rancher Server 클러스터는 Rancher Backup Operator, 워크로드는 Velero로 전체 백업

# Rancher Backup Operator 설치
helm repo add rancher-charts https://charts.rancher.io
helm install rancher-backup-operator rancher-charts/rancher-backup \
  --namespace cattle-resources-system \
  --create-namespace

# Rancher 백업 생성
kubectl apply -f -  rke1-ingress-backup.yaml
kubectl get svc -A --field-selector spec.type=LoadBalancer -o yaml > rke1-lb-services.yaml

# DNS 레코드 현황 확인
dig +short api.example.com
dig +short app.example.com

# 로드밸런서 VIP 확인
kubectl get svc -A | grep LoadBalancer

RKE2 클러스터 구축

RKE2 설치 스크립트 적용

# 마스터 노드에서 RKE2 서버 설치
curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="server" sh -

# 서비스 활성화 및 시작
sudo systemctl enable rke2-server.service
sudo systemctl start rke2-server.service

# 설치 상태 확인
sudo systemctl status rke2-server
sudo journalctl -u rke2-server -f

설정 파일 구성

# /etc/rancher/rke2/config.yaml
token: my-shared-secret-2025
tls-san:
  - "my-k8s-domain.com"
  - "192.168.0.100"  # VIP 주소
  - "api.example.com"
write-kubeconfig-mode: "0644"
cluster-cidr: "10.42.0.0/16"
service-cidr: "10.43.0.0/16"

# 보안 강화 설정
profile: "cis"
selinux: true
secrets-encryption: true

# 백업 설정
etcd-snapshot-schedule-cron: "0 */6 * * *"
etcd-snapshot-retention: 10

워커 노드 등록

# 워커 노드에서 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 > ~/.bashrc

# 클러스터 상태 확인
kubectl get nodes
kubectl get pods -A

Rancher Server 및 리소스 마이그레이션

Rancher Server 백업 및 복원

# RKE1에서 Rancher 백업 생성
kubectl apply -f -  production-workloads.yaml

# RKE2 클러스터에 네임스페이스 생성
kubectl create namespace production

# 매니페스트 수정 후 적용
# (이미지 레지스트리, 스토리지 클래스 등 업데이트)
kubectl apply -f production-workloads-updated.yaml

Stateful 워크로드

# pv-migrate 도구로 PVC 직접 전송
pv-migrate \
  --source-context=rke1-cluster \
  --source-namespace=database \
  --source=mysql-data-pvc \
  --dest-context=rke2-cluster \
  --dest-namespace=database \
  --dest=mysql-data-pvc \
  --ignore-mounted

# 또는 Velero로 전체 네임스페이스 백업·복구
velero backup create database-backup \
  --include-namespaces database \
  --include-resources persistentvolumeclaims,persistentvolumes

# RKE2 클러스터에서 복원
velero restore create database-restore \
  --from-backup database-backup \
  --namespace-mappings database:database

고급 스토리지 마이그레이션

# Longhorn 볼륨 마이그레이션 (Longhorn 사용 시)
# 1. RKE1에서 백업 생성
kubectl apply -f -  rancher-bootstrap-backup.yaml

검증 및 클린업

# RKE1 클러스터 축소 전 주요 애플리케이션 기능 재검증
# 1. 기능 테스트
curl -X POST http://api.mydomain.com/test
kubectl logs -n production deployment/api-server

# 2. 데이터 무결성 확인
kubectl exec -n database mysql-0 -- mysql -u root -p -e "SELECT COUNT(*) FROM users;"

# 3. 모든 DNS·인그레스가 RKE2로 정상 작동하면 RKE1 해체
# RKE1 클러스터 정리
kubectl delete all --all -n production  # RKE1에서
kubectl delete namespace production      # RKE1에서

마이그레이션 체크리스트

사전 준비 단계

  • RKE1 클러스터 상태 점검 완료
  • Rancher Backup Operator 설치 및 백업 생성
  • Velero 설치 및 전체 클러스터 백업
  • 마이그레이션 도구 설치 (pv-migrate, cattle-drive)
  • 네트워크 설정 문서화
  • 롤백 계획 수립

마이그레이션 실행 단계

  • RKE2 클러스터 구축 완료
  • kubeconfig 설정 및 접근 확인
  • Rancher Server 복원 완료
  • Stateless 워크로드 재배포
  • Stateful 워크로드 및 PVC 마이그레이션
  • DNS 및 로드밸런서 전환

검증 및 완료 단계

  • 모든 서비스 정상 작동 확인
  • 데이터 무결성 검증
  • 성능 테스트 통과
  • 모니터링 및 알림 설정
  • RKE1 클러스터 정리

마무리

RKE1에서 RKE2로의 전환은 단순 업그레이드가 아닌 '새 클러스터 재배포 + 워크로드 재플랫폼' 방식으로 진행해야 합니다. 사전 백업, Rancher 리소스 이동, 스토리지 마이그레이션, DNS 전환, 검증·롤백이 핵심 단계입니다. pv-migrate·cattle-drive·Velero 등의 도구를 결합해 무중단 전환을 구현하고, 테스트와 문서화를 꼼꼼히 수행해 안정적인 마이그레이션을 완성하세요.
핵심 포인트:

  • 2025년 7월 31일 RKE1 EOL로 인한 필수 마이그레이션
  • Blue-Green 방식의 단계적 전환으로 무중단 서비스
  • 전문 도구 활용으로 데이터 손실 없는 이전
  • 철저한 백업과 롤백 계획으로 리스크 최소화
  • CIS/FIPS 자동 준수로 보안 강화

RKE2로의 마이그레이션을 통해 차세대 보안 기능과 성능 향상을 확보하고, 지속 가능한 쿠버네티스 운영 환경을 구축할 수 있습니다.

반응형