Legacy Container의 Migration

Legacy Container의 Migration

개요

Kubernetes는 다수의 컨테이너 어플리케이션을 자동화하여 관리할 수 있도록 제공되는 플랫폼입니다. Kubernetes를 통하여 컨테이너 배포, 관리, 확장 등 컨테이너 기반 어플리케이션에 대한 다양한 작업을 자동화하여 구축/운영할 수 있습니다.

Samsung Cloud Platform에서 제공하는 Kubernetes 상품인, Kubernetes Engine은 컨테이너화된 어플리케이션을 배포/관리할 수 있는 플랫폼입니다.

이 문서에서는 Kubernetes Engine 상품 사용을 위하여 선행되는 타사 Kubernetes 기반 어플리케이션 및 플랫폼을 Samsung Cloud Platform 로 전환하는 작업을 소개합니다.

아키텍처 다이어그램

구성도
Figure 1. Kubernetes 기반 플랫폼의 Samsung Cloud Platform 전환
  1. 기존 Kubernetes 환경에서 사용중인 Storage 를 Samsung Cloud Platform 환경으로 Migration 한다.
  2. Migration 된 Storage 기반으로 Kubernetes Engine 상품을 신청하고 Node pool을 생성한다.
  3. Kubernetes Engine 클러스터 내 서비스들의 PV(Persistent Volume), PVC(Persistent Volume Claim) Object 를 생성하여 Storage 연결을 준비한다.
  4. 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의 서비스 목록입니다. 서비스 선택 및 설계 시에 참고하세요.

서비스군서비스상세 설명
ContainerKubernetes EngineKubernetes 컨테이너 오케스트레이션 서비스
NetworkingVPC클라우드 환경에서 독립된 가상 네트워크를 제공하는 서비스
NetworkingSecurity GroupVM의 트래픽을 제어하는 가상 방화벽
StorageFile Storage네트워크 연결을 통하여 다수의 클라이언트 서버가 파일을 공유하는 스토리지
ComputeVirtual Server클라우드 컴퓨팅에 최적화된 가상 서버
NetworkingLoad Balancer서버 트래픽 부하를 자동으로 분산하는 서비스
표. 관련 서비스 목록