Legacy Container의 Migration
Legacy Container의 Migration
개요
Kubernetes는 다수의 컨테이너 어플리케이션을 자동화하여 관리할 수 있도록 제공되는 플랫폼입니다. Kubernetes를 통하여 컨테이너 배포, 관리, 확장 등 컨테이너 기반 어플리케이션에 대한 다양한 작업을 자동화하여 구축/운영할 수 있습니다.
Samsung Cloud Platform에서 제공하는 Kubernetes 상품인, Kubernetes Engine은 컨테이너화된 어플리케이션을 배포/관리할 수 있는 플랫폼입니다.
이 문서에서는 Kubernetes Engine 상품 사용을 위하여 선행되는 타사 Kubernetes 기반 어플리케이션 및 플랫폼을 Samsung Cloud Platform 로 전환하는 작업을 소개합니다.
아키텍처 다이어그램
- 기존 Kubernetes 환경에서 사용중인 Storage 를 Samsung Cloud Platform 환경으로 Migration 한다.
- Migration 된 Storage 기반으로 Kubernetes Engine 상품을 신청하고 Node pool을 생성한다.
- Kubernetes Engine 클러스터 내 서비스들의 PV(Persistent Volume), PVC(Persistent Volume Claim) Object 를 생성하여 Storage 연결을 준비한다.
- Kubernetes command-line 도구인 kubectl 클라이언트 환경 또는 Kubernetes 배포 환경에서 Kubernetes Engine 클러스터에 Kubernetes Object 를 배포한다.
사용 사례
A. Kubernetes Manifest 파일을 관리하는 환경에서의 이관 작업
기 관리하던 Kubernetes Manifest 파일을 이용하여 Kubernetes Engine 클러스터에 배포하여 이관 작업을 진행할 수 있습니다. 자체적으로 보유한 Kubernetes 배포 환경과 CD 툴(Helm, ArgoCD 등)을 그대로 Samsung Cloud Platform 의 Kubernetes Engine 클러스터 환경에 적용하여 기존과 동일한 방식으로 Kubernetes Objects 를 배포하여 더욱 안정적이고 효율적인 이관 작업이 가능합니다.
이관된 Storage의 기존 데이터를 기반으로 Kubernetes 서비스를 생성할 경우 PV, PVC Object 에 대해서는 CD 툴이 아닌 manifest 파일 기반으로 수동 생성이 필요할 수 있습니다.
B. Kubernetes Manifest 파일을 관리하고 있지 않는 환경에서의 이관 작업
기존에 Kubernetes Manifest 파일을 관리하고 있지 않았다면 기존 Kubernetes 클러스터 환경에서 Manifest 파일을 추출하여 Samsung Cloud Platform 의 Kubernetes Engine 클러스터에 이관 작업을 진행할 수 있습니다.
기존 환경에서 Kubernetes Object(manifest) 정보를 추출(.yaml)하여 Kubernetes Engine 환경에 맞게 정제 후 kubectl 명령어를 통해 배포하여 이관합니다.
선결 사항
Kubernetes Engine 서비스 생성 이전에 관련한 상품 생성 및 구성이 필요합니다. (VPC, Subnet, Security Group, Load Balancer, File Storage 등)
kubectl 클라이언트 환경, Kubernetes 배포 환경에서 Samsung Cloud Platform 의 Kubernetes 클러스터로 연결하는 작업이 필요합니다. (네트워크, kube config 등)
PV, PVC 생성시 이관된 Storage에 대한 정보로 manifest 파일 정제가 필요합니다.
Service type:LoadBalancer 사용을 위해서는 Kubernetes Engine 상품에 연동할 Load Balancer 상품이 필요합니다.
제약 사항
Kubernetes Engine의 Worker Node 생성 최대 개수는 Subnet에서 사용 가능한 IP 범위 내로 제한되며 , 최대 100 개까지만 생성 가능합니다.
Kubernetes Engine에서 생성한 Worker Node들은 기존 환경과 다른 IP 로 할당될 수 있습니다.
고려 사항
이관 대상이 되는 서비스 목록에 대한 확인이 필요합니다.
기존에 서비스를 배포하는 CD 툴을 통하여 Kubernetes Manifest 파일을 관리하고 있는 경우, 서비스 배포 시 CD 툴 활용 여부를 결정해야 합니다.
Kubernetes Engine 관련 상품들에 대해 Sizing 작업이 필요합니다. (Storage, LB, Node(VM) 등)
Kubernetes Engine 상품 생성 후 변경 불가능한 연동 상품 (LB, Storage 등 ) 에 대해서 사전 고려되어야 합니다.
지원 중인 Kubernetes Engine 상품 버전에 따라 필요 시 , 메이저/마이너 업데이트가 요구될 수 있습니다.
관련 서비스
본 가이드에서 설명하는 기능 또는 구성과 연결되는 Samsung Cloud Platform의 서비스 목록입니다. 서비스 선택 및 설계 시에 참고하세요.
| 서비스군 | 서비스 | 상세 설명 |
|---|---|---|
| Container | Kubernetes Engine | Kubernetes 컨테이너 오케스트레이션 서비스 |
| Networking | VPC | 클라우드 환경에서 독립된 가상 네트워크를 제공하는 서비스 |
| Networking | Security Group | VM의 트래픽을 제어하는 가상 방화벽 |
| Storage | File Storage | 네트워크 연결을 통하여 다수의 클라이언트 서버가 파일을 공유하는 스토리지 |
| Compute | Virtual Server | 클라우드 컴퓨팅에 최적화된 가상 서버 |
| Networking | Load Balancer | 서버 트래픽 부하를 자동으로 분산하는 서비스 |
