현대의 IT 환경에서는 다양한 유형의 추상화 기법이 사용된다. 베어메탈에서 애플리케이션을 실행할 수 있지만, 이 방법은 하드웨어 활용성을 최적화하기 어렵다. 바로 이 지점에서 가상화가 등장한다. 가상화를 사용하면 하나의 물리적 하드웨어를 추상화하거나 ‘가상화’하여 더 많은 워크로드를 실행할 수 있다.
현대의 가상화는 단일 하드웨어의 추상화를 넘어 클라우드 환경의 더 큰 클러스터를 추상화하는 개념을 포함한다. 클라우드에서 가상화를 실행하는 일반적인 접근 방식 중 하나는 오픈소스 쿠버네티스 컨테이너 오케스트레이션 시스템을 사용하는 것이다. 컨테이너는 가상머신(VM)과는 다른 가상화 유형이라고 할 수 있다.
쿠버네티스가 등장하기 전 조직에서 가상화를 구현하는 인기 있는 방법은 가상머신의 사용이었다. 그 중에서도 VM웨어의 기술을 사용하는 경우가 많았다.
쿠베버트란?
오픈소스 쿠베버트(KubeVirt) 프로젝트는 이름 그대로 동작한다 컨테이너 오케스트레이션 시스템인 쿠버네티스와 가상화(가상머신)를 결합하는 것이다.
즉 쿠베버트를 사용하면 쿠버네티스 배포 환경에서 VM 워크로드를 배포하고 관리할 수 있다. 기본적으로 쿠버네티스는 VM이 아닌 컨테이너 가상화를 활용한다. 참고로 VM웨어 v스피어(vSphere)와 같은 전통적인 가상화 플랫폼은 컨테이너 오케스트레이션 시스템과 독립적으로 작동하므로 별도의 관리 도구, 워크플로, 전문 지식을 필요로 한다.
쿠베버트가 그 간극을 메운다. 클라우드 네이티브에 배포에 있어, 가상머신과 컨테이너 모두 같은 쿠버네티스 환경에서 실행될 수 있게 된다. 즉 쿠베버트는 가상머신이 네이티브 쿠버네티스 리소스처럼 작동하게 하며, 덕분에 운영 팀은 컨테이너 관리에 사용하는 것과 동일한 원칙, 패턴, 도구를 가상머신에 적용할 수 있다. 즉 VM과 컨테이너화된 워크로드 모두에 걸쳐 일관된 운영 모델이 가능해진다.
쿠베버트 오픈소스 프로젝트는 2016년 리눅스 공급업체인 레드햇에 의해 시작됐다. 그리고 2019년 이 프로젝트는 쿠버네티스의 본거지인 CNCF(Cloud Native Computing Foundation)에 합류했다. 현재 CNCF에 속한 쿠베버트는 프로젝트에 기여하는 다양한 벤더들의 생태계 속에서 발전하고 있다. CNCF의 기여자에는 아마데우스, 애플, 클라우드플레어, IBM, NEC, 엔비디아, SAP, 수세 등이 있다.
이 프로젝트는 깃허브에서 관리되며, 기본 저장소는 ‘GitHub – kubevirt/kubevirt’다. 여러 벤더가 이를 위한 상업적 지원 서비스과 툴을 내놓고 있다.
쿠베버트의 발전
2017년에 본격적으로 시작된 이래, 쿠베버트는 여러 측면에서 성장했다. 레드햇 오픈시프트 가상화 담당 수석 매니저인 사친 뮬릭은 네트워크 월드와의 인터뷰에서 쿠베버트가 시작되던 시점의 목표에 대해 “가상머신을 쿠버네티스에 도입하여 쿠버네티스의 자동화 및 확장 개념을 가상머신에 적용하고, 애플리케이션이 어떤 기술로 배포되었는지에 관계없이 더 빠른 개발 라이프사이클을 가능케 하는 것”이었다고 설명했다.
그는 이어 “지금도 이 비전은 계속되고 있다. 그러나 점차 여러 인프라스트럭처 요구사항에 대응하는 확장 추이를 보여왔다. 쿠베버트를 넘어 인접한 생태계 프로젝트에서도 관련 혁신이 나타나고 있다”라고 말했다.
뮬릭은 가령 ‘medik8s’, ‘NMstate’, ‘OVN-Kubernetes’와 같은 프로젝트가 가상머신에 고가용성과 고급 네트워킹 기능을 제공했다고 언급했다. 또 핫 플러그 및 리소스 오버커밋과 같이 가상화 관리자의 풍부함 경험을 구현하는 추가 기능이 지난 몇 년 동안 등장했다는 설명이다. 그는 “향후 쿠버네티스와 관련 생태계가 급속히 성장하는 가운데, 기밀 컴퓨팅과 같은 추가 기능도 가상화에 구현될 것”이라고 말했다.
쿠베버트의 동작 방법
쿠베버트의 작동법은 한 마디로 ‘컨테이너 네이티브 가상화’의 실현이라고 할 수 있다. 이는 쿠베버트가 컨테이너 포드 안에서 VM을 실행할 수 있도록 한다는 의미다. 기능적 관점에서, 쿠베버트 아키텍처에는 다음과 같은 몇 가지 핵심 측면이 있다.
• CRD(Customer Resource Definitions): 쿠베버트는 CRD를 통해 쿠버네티스 API를 확장한다. CRD를 통해 쿠버네티스는 다양한 유형의 리소스를 실행할 수 있다. 쿠베버트의 CRD는 VM 관련 객체를 처리하도록 특별히 구성되어 있어, 사용자는 CPU, 메모리, 네트워크 인터페이스와 같은 사양으로 VM을 정의할 수 있다.
• Virt-api-server: 이 서버는 모든 가상화 관련 작업의 진입점이다. 가상머신 이미지(VMI) 리소스가 시스템에 들어가기 전에 그 유효성 검사와 처리를 담당한다.
• virt-controller: 이 쿠버네티스 오퍼레이터는 클러스터 전체의 논리를 담당하며, 생성 및 스케줄링을 포함한 VM의 수명 주기를 관리한다. 이 서버는 API 서버에 게시된 새로운 VM 객체에 반응하여, 필요한 쿠버네티스 포드를 생성한다.
• virt-launcher: 쿠베버트는 각 VMI 객체에 대해 virt-launcher 구성 요소를 실행하는 해당 pod를 생성한다. 이 구성 요소는 libvirtd를 사용해 컨테이너화된 환경 내에서 실제 가상머신 프로세스를 시작하고 관리한다.
• virt-handlers: 각 노드에서 실행되는 Kubernetes 시스템 데몬으로, VM 시작 및 구성과 같은 노드별 작업을 처리한다. 이것들은 kubelet(클러스터의 각 노드에서 실행되는 프로세스)과 함께 작동해 VM이 원하는 상태에 정렬되도록 한다.
CRD 덕분에 VM은 또 다른 유형의 자원으로 처리될 수 있다. 기능적으로 쿠버네티스 포드 안에 캡슐화된다. 따라서, VM은 kubectl과 같은 표준 쿠버네티스 도구를 통해 관리되는 포드 네트워킹과 저장소의 혜택을 누릴 수 있게 된다.
쿠베버트로 할 수 있는 작업
쿠베버트는 다음과 같은 기능을 수행한다.
• 실행. 쿠버네티스 클러스터에서 컨테이너화된 애플리케이션과 함께 전통적인 VM 워크로드를 실행한다.
• 관리. 동일한 쿠버네티스 도구와 작업 흐름을 사용하여 VM과 컨테이너를 모두 관리한다.
• 마이그레이션. 즉각적인 컨테이너화 없이 레거시 애플리케이션을 클라우드 네이티브 환경으로 마이그레이션한다.
• 최적화. 동일한 기본 하드웨어에서 VM과 컨테이너를 실행하여 리소스 활용을 최적화한다.
• 진화. VM을 마이크로서비스로 점차 분해하고 재작성하여 플랫폼 밀도를 높이고 이중 플랫폼 및 관리 비용을 절감한다.
쿠베버트의 장점
다른 기술과 마찬가지로 쿠베버트는 사용자와 조직에 이점을 제공하지만 몇 가지 과제도 제시한다. 장점으로는 다음이 있다.
• 통합 관리. VM과 컨테이너 워크로드 모두에 대해 단일 플랫폼을 제공함으로써 운영을 단순화한다. 이로써 VM과 컨테이너를 위한 개별 환경 관리의 복잡성이 감소한다.
• 자원 효율성. 인프라 활용도를 최적화하고 잠재적으로 비용을 절감한다. 쿠베버트는 기존 VM에 비해 더 높은 워크로드 밀도를 제공한다.
• 성능. 쿠베버트는 변화하는 CPU 요구 사항과 메모리 할당에 더 빠르게 적응할 수 있어, 기존 가상화 솔루션에 비해 지연 시간이 더 짧다.
• 내장된 보안. 쿠베버트는 Kubernetes의 기본 보안을 활용하여 가상머신을 포함한 모든 환경에서 일관되게 정책이 적용되도록 한다.
• 배포 환경. 쿠버네티스는 모든 주요 퍼블릭 클라우드 제공업체에서 광범위하게 지원되기 때문에 쿠베버트 워크로드를 쉽게 배포할 수 있다.
쿠베버트의 과제
• 학습 곡선. VM웨어 등의 전통적인 VM 기술과 동등한 기능성을 제공할 수 있지만, 쿠버네티스 환경에서 VM을 관리하기 위해서는 새로운 도구와 프로세스에 적응하는 과정이 필요하다.
• 성능 오버헤드. 컨테이너 안에서 VM을 실행하면 베어메탈 가상화에 비해 성능이 약간 떨어질 수 있다.
• 복잡한 마이그레이션. 기존 VM 작업 부하를 쿠베버트로 마이그레이션하는 것은 원활한 전환을 보장하기 위해 신중한 계획과 실행이 필요하다.
VM웨어 마이그레이션에 쿠베버트 사용하기
쿠베버트는 두 가지 주요 접근 방식을 통해 VM웨어 기반 워크로드를 쿠버네티스 환경으로 마이그레이션할 수 있다.
• 리프트 앤 시프트 마이그레이션: VM웨어에서 쿠베버트로 VM을 복제하는 이 방법은 최소한의 변경만 가한다. 더 빠르고 위험을 줄여주지만, 레거시 애플리케이션에 대한 약간의 수정이 필요할 수 있다.
• VM 재구축: 이 방법은 쿠베버트에서 새로운 VM을 생성하고 애플리케이션과 데이터를 마이그레이션하는 것이다. 시간이 더 많이 걸리지만, 최적화와 개선의 기회를 제공한다.
마이그레이션은 일반적으로 현재 VM웨어 환경을 평가하고, 쿠베버트를 사용하여 쿠버네티스 클러스터를 설정하고, virt-v2v 또는 virt-p2v와 같은 도구를 사용하여 VM 디스크 이미지를 전송하는 과정으로 수행된다.
수세의 가상화 및 스토리지 제품 관리 이사인 포브스 거스리는 네트워크 월드(Network World)와의 인터뷰에서 수세의 쿠베버트 기반 도구에 대한 관심이 높다고 전했다. 해당되는 도구에는 랜처 프라임(Rancher Prime)의 일부인 수세 버추얼라이제이션(SUSE Virtualization) 제품이 포함되는데, 이는 VM과 컨테이너를 모두 실행하려는 고객에게 플랫폼을 제공한다. 이 밖에 작은 설치 공간을 필요로 하는 에지 기반 배포를 위해 쿠베버트를 활용하는 수세 에지(SUSE Edge)가 있다. 거스리는 또 수세가 자체 VM-Import 도구를 가지고 있으며, 이 도구를 통해 사용자는 VM웨어와 오픈스택에서 수세 버추얼라이제이션으로 가상머신을 가져올 수 있다고 설명했다.
“기본적으로 우리는 고객에게 다른 플랫폼으로부터의 현대화 과정을 거치는 과정에서 각 워크로드를 평가하라고 권장한다. 이후 개별 워크로드 대상이 가상머신인지 컨테이너인지 결정하는 것이 바람직하다”라고 그는 말했다.
브로드컴이 VM웨어를 인수한 이후, 쿠베버트에 대한 관심이 전반적으로 증가했다. (관련 기사 : VM웨어 라이선스 파문은 진행 중··· 가트너가 진단한 ‘탈가상화’와 ‘재가상화’ 동향)
레드햇의 뮬릭은 “지난 1년 동안 쿠베버트와 그 생태계의 채택과 사용이 몇 배 증가했다. 2025년에도 그 관심은 계속될 전망이다. 많은 고객들이 현재 사용 중인 가상화 하이퍼바이저의 대안을 찾고 있으며, 쿠베버트는 그들에게 실행 가능한 길을 제시한다”라고 말했다.
워크로드 마이그레이션과 관련해 거스리는 많은 조직들이 레드햇의 가상화용 마이그레이션 툴킷을 활용하고 있다고 전했다. 이 툴킷은 커뮤니티 포크리프트(Forklift) 프로젝트를 기반으로 하며, 가상화 환경을 목록화하고 가상머신을 새로운 플랫폼으로 콜드 마이그레이션 또는 웜 마이그레이션할 수 있도록 돕는다.
그는 “대규모 환경의 경우, 고객들은 우리와 협력하여 전체 가상화 환경을 평가하고, 마이그레이션의 위험을 줄이고 비즈니스 주기에 맞추면서도 새로운 환경으로 마이그레이션하는 전략을 수립하곤 한다. 여러 요소를 기반으로 하는 단계별 마이그레이션 접근 방식이라고 할 수 있다”라고 말했다.
[email protected]
Read More from This Article: VM도 쿠버네티스로 품는다· · · 요즘 뜨는 ‘쿠베버트’ 안내서
Source: News