기존 EKS 클러스터에서 EKS Auto Mode 활성화하기
기존 EKS 클러스터에서 EKS Auto Mode 활성화하기
기존 EKS 클러스터에서 EKS Auto Mode를 활성화할 수 있어요.
AWS가 지원하는 마이그레이션:
- Karpenter에서 EKS Auto Mode 노드로 마이그레이션. 자세한 내용은 Migrate from Karpenter to EKS Auto Mode using kubectl을 참고하세요.
- EKS Managed Node Groups에서 EKS Auto Mode 노드로 마이그레이션. 자세한 내용은 Migrate from EKS Managed Node Groups to EKS Auto Mode를 참고하세요.
- EKS Fargate에서 EKS Auto Mode로 마이그레이션. 자세한 내용은 Migrate from EKS Fargate to EKS Auto Mode를 참고하세요.
AWS가 지원하지 않는 마이그레이션:
- EBS CSI 컨트롤러(Amazon EKS 애드온 사용)에서 EKS Auto Mode EBS CSI 컨트롤러(EKS Auto Mode가 관리)로 볼륨 마이그레이션. 두 컨트롤러는 서로 다른 Kubernetes 볼륨 프로비저너를 사용하므로 하나로 만든 PVC를 다른 쪽이 마운트할 수 없어요.
eks-auto-mode-ebs-migration-tool(AWS Labs 프로젝트)은 표준 EBS CSI StorageClass(ebs.csi.aws.com)와 EKS Auto EBS CSI StorageClass(ebs.csi.eks.amazonaws.com) 간 마이그레이션을 가능하게 합니다. 마이그레이션에는 기존 PersistentVolumeClaim/PersistentVolume 리소스의 삭제·재생성이 필요하므로, 구현 전에 비프로덕션 환경에서 검증하는 것이 필수적입니다.
출처: 문서
본문
AWS Load Balancer Controller에서 EKS Auto Mode로 로드 밸런서 마이그레이션
Amazon EKS Auto Mode 클러스터에 AWS Load Balancer Controller를 설치할 수 있어요. IngressClass 또는 loadBalancerClass 옵션을 사용해 Service·Ingress 리소스를 Load Balancer Controller 또는 EKS Auto Mode와 연결합니다. 지침은 Migrate NGINX Ingress Controllers when enabling Amazon EKS Auto Mode을 참고하세요.
대체 CNI 또는 지원되지 않는 네트워킹 구성을 사용하는 EKS 클러스터 마이그레이션
마이그레이션 참조
다음 마이그레이션 참조를 사용해 Kubernetes 리소스가 자체 관리형 컨트롤러나 EKS Auto Mode 중 어느 쪽이 소유하도록 구성하세요.
| 기능 | 리소스 | 필드 | 자체 관리형 | EKS Auto Mode |
|---|---|---|---|---|
| 블록 스토리지 | StorageClass |
provisioner |
ebs.csi.aws.com |
ebs.csi.eks.amazonaws.com |
| 로드 밸런싱 | Service |
loadBalancerClass |
service.k8s.aws/nlb |
eks.amazonaws.com/nlb |
| 로드 밸런싱 | IngressClass |
controller |
ingress.k8s.aws/alb |
eks.amazonaws.com/alb |
| 로드 밸런싱 | IngressClassParams |
apiversion |
elbv2.k8s.aws/v1beta1 |
eks.amazonaws.com/v1 |
| 로드 밸런싱 | TargetGroupBinding |
apiversion |
elbv2.k8s.aws/v1beta1 |
eks.amazonaws.com/v1 |
| 컴퓨트 | NodeClass |
apiVersion |
karpenter.sh/v1 |
eks.amazonaws.com/v1 |
EBS 볼륨 마이그레이션
워크로드를 EKS Auto Mode로 마이그레이션할 때는 CSI 드라이버 프로비저너가 다르므로 EBS 볼륨 마이그레이션을 처리해야 합니다.
- EKS Auto Mode 프로비저너:
ebs.csi.eks.amazonaws.com - 오픈 소스 EBS CSI 프로비저너:
ebs.csi.aws.com
영구 볼륨을 마이그레이션하려면 다음 단계를 따르세요.
- 볼륨 보존 정책 수정: 기존 PersistentVolume(PV)의
persistentVolumeReclaimPolicy를Retain으로 변경해 기반 EBS 볼륨이 삭제되지 않도록 합니다. - Kubernetes에서 PV 제거: 실제 EBS 볼륨은 유지한 채 이전 PV 리소스를 삭제합니다.
- 정적 프로비저닝으로 새 PV 생성: 같은 EBS 볼륨을 참조하지만 대상 CSI 드라이버와 작동하는 새 PV를 만듭니다.
- 새 PVC에 바인딩:
volumeName필드로 PV를 명시적으로 참조하는 새 PVC를 만듭니다.
고려 사항:
- 이 마이그레이션을 시작하기 전에 애플리케이션이 중지되어 있는지 확인하세요.
- 마이그레이션 과정을 시작하기 전에 데이터를 백업하세요.
- 이 과정은 각 영구 볼륨마다 수행해야 합니다.
- 워크로드를 새 PVC를 사용하도록 업데이트해야 합니다.
로드 밸런서 마이그레이션
자체 관리형 AWS 로드 밸런서 컨트롤러의 기존 로드 밸런서를 EKS Auto Mode로 직접 이전할 수는 없어요. 대신 blue-green 배포 전략을 구현해야 합니다. 이는 관리형 컨트롤러 아래에서 새 로드 밸런서를 만들면서 기존 로드 밸런서 구성을 유지하는 것을 의미합니다.
서비스 중단을 최소화하려면 DNS 기반 트래픽 전환 방식을 권장합니다. 먼저 기존 구성을 가동하면서 EKS Auto Mode로 새 로드 밸런서를 만듭니다. 그런 다음 DNS 라우팅(예: Route 53)을 사용해 이전 로드 밸런서에서 새 로드 밸런서로 트래픽을 점진적으로 전환합니다. 트래픽이 성공적으로 마이그레이션되고 새 구성을 검증하면 이전 로드 밸런서와 자체 관리형 컨트롤러를 폐기할 수 있어요.