2017.08.11

'쿠베르네티스 활용을 쾌적하게'··· 눈길 끄는 오픈소스 프로젝트 3선

Serdar Yegulalp | InfoWorld
기업에게 쿠베르네티스(Kubernetes)는 위대한 구원자와 같은 존재다. 쿠베르네티스를 통해 밸런싱 로드나 네트워킹 콘테이너, 앱 가용성 보장, 업데이트/롤백 관리 따위의 세세한 과업들에 얽매이지 않고도 콘테이너화 애플리케이션을 구동할 수 있게 됐다. 무수한 복잡성에서 해방된 것이다.

하지만 쿠베르네티스를 사용하는 자체가 나름의 과제를 전달하기도 한다. 쿠베르네티스를 구동, 실행하는 추가적 과업에 더해, 이를 유지 관리하는데 있어서도 신경 쓸 일이 한 두 가지가 아니다.

더욱이 현재 쿠베르네티스가 보여주고 있는 급속도의 개발 흐름을 감안해 본다면, 우선순위에서 밀리는 각종 문제들이 존재하는 것도 자연스러운 현상이다. 다행히 쿠베르네티스의 주변에는 건강한 커뮤니티가 조성돼 있어, 이런저런 이유로 쿠베르네티스팀이 집중하지 못하는 문제들을 해결하기 위한 활발한 연구가 이뤄지고 있다.

여기 쿠베르네티스 주변 커뮤니티에서 주목 받고 있는, 콘테이너 조정자 배치, 유지, 활용, 조감 지원 프로젝트 3건을 소개한다.

헵티오(Heptio)
헵티오(Heptio)는 구글을 떠난 전직 쿠베르네티스 개발자 2명이 설립한 업체로, 쿠베르네티스를 보다 쓰기 쉬운 도구로 만드는 것을 목표로 내세우고 있다. 헵티오는 자체 쿠베르네티스 배포판을 공급하는 대신, 쿠베르네티스 오리지널 상류 에디션 자체의 사용 경험을 개선하는 오픈소스 툴을 전달하는 방향으로 활동을 전개하고 있다.

이번 달 초 헵티오는 자신들의 첫 번째 프로젝트 헵티오 아크(Heptio Ark)와 헵티오 소노부이(Heptio Sonobuoy)를 공개했다. 아크는 콘테이너 기반 애플리케이션의 스냅샷, 백업, 복구의 방식으로 기능하는 쿠베르네티스 클러스터용 재난 복구 시스템이다. 쿠베르네티스 API와 영구 볼륨(PV, Persistent Volume) 디스크의 상태 기록을 지원한다.

아크는 재난 복구 과정에 활용할 수 있는 스토리지 선택권을 쿠베르네티스가 기본적으로 제공하는 S3 호환 스토리지 서비스(‘Minio’)에서 모든 주요 클라우드 공급자(AWS, 구글 클라우드 플랫폼, 마이크로소프트 애저)들로까지 확장해준다.

다만 환경 간 기존 쿠베르네티스 클러스터 이전을 위한 완전 리프트-앤-시프트(lift-and-shift) 솔루션이 아직 제공되지 않는 점은 아쉬움이 남는 부분이다. 헵티오 측은 이를 위해선 클라우드 공급자 간 PV 스냅샷 이전을 지원하는 기능이 필요하다고 한계의 원인을 설명하고 있다.

두 번째 프로젝트 소노부이는 배포된 쿠베르네티스 버전의 검증 테스트 생략 가능 여부를 확인해주는 쿠베르네티스 설치 검토 솔루션이다.

쿠베르네티스 배치 과정은 각 벤더, 사용자에 따라 많은 조정이 이뤄지곤 한다. 향후 업데이트 시 호환성 이슈를 야기할 수 있는 부분이다. 소노부이의 역할은 이러한 변경 사항들이 호환성 이슈를 발생할 지를 확인해주는 것이다. 더불어 클러스터의 상태를 추출해 진단 리포트에 활용하거나, 소노부이를 통해 진행된 테스트 구동을 플러그인 아키텍처의 방식으로 확장하는 것 역시 가능하다.

다만 소노부이 역시 아직 개발 초기 단계인 만큼, 쿠베르네티스의 자체 적응 테스트에서 확인되는 모든 이슈를 체크하는 데에는 한계를 보인다. 헵티오 측은 코어 쿠베르네티스 팀이 제작한 테스트 스위트와 공시적 관계를 구축하는 수준으로 소노부이를 발전시키겠다는 계획을 세우고 있다.

큐브디(Kubed)
콘테이너화 애플리케이션용 협업적 코딩 플랫폼을 제작하는 앱스코드(AppsCode)가 최근 쿠베르네티스 클러스터 관리와 관련한 여러 간극을 메워줄 새로운 프로젝트를 선보였다.

‘쿠베르네티스 데몬'의 약자로 ‘큐브디(Kubed)’라 발음되는 이 프로젝트는 단일 데몬 프로세스(daemon process) 안에 여러 유용한 기능을 합친 솔루션이다. 큐브디는 정기 클러스터 스냅샷 실행, 삭제 대상을 위한 임시 스토리지 제공, 자동 이벤트 포워딩 실행, 복수 채널을 통한 알림 전달 등의 기능을 제공한다.

쿠베르네티스에서도 엘라스틱서치나 인플럭스DB 인스턴스 안에 로그 데이터를 저장할 수 있지만, 오래된 데이터를 정리하는 것은 사용자의 역할로 남겨졌다. 이와 관련해 큐브디의 ‘문지기' 기능은 일정 기간이 경과한 로그 데이터를 자동으로 정리해줘 편의성을 개선한다. 아직 이러한 정리 작업에 대한 모의 시행 기능은 지원되지 않지만, 이 역시 향후 추가를 검토 중인 것으로 알려져 있다.

큐브디 프로젝트는 현재 가변적인 알파 단계로, 향후 많은 대규모 변화가 계획되어 있다. 현재 개발사 측은 쿠베르네티스가 자신들의 API 셋에 대한 동류 앱들의 확장을 지원하기 위해 제공하고 있는 쿠베르네티스 유저 API 서버를 통해 큐브디 API를 이용할 수 있도록 하는 작업과 쿠베르네티스가 최근 공개한 커스텀 리소스 정의(CRD)에 대한 지원을 위한 연구 등을 진행 중인 것으로 알려져 있다.

큐비콘(Kubicorn)
큐비콘(Kubicorn) 프로젝트는 사용자들이 다양한 클라우드 서버 상에서 쿠베르네티스용 인프라스트럭처를 구축, 관리할 수 있도록 지원하는데 목표를 두고 있다. 퍼핏(Puppet)을 비롯한 여타 현대적 인프라스트럭처 관리 툴들처럼 큐비콘 역시 자신들만의 철학을 내세우고 있다. “사용자들이 자신의 클러스터 안에서 보고 싶은 상태를 설명하면, 큐비콘은 클라스터의 상태가 해당 목표에 맞춰지도록 보장한다”라는 것이 그들이 내세우는 철학이다.

큐비콘은 독립형 툴인 동시에 여타 툴들에 의해 소환될 수 있는 하나의 라이브러리로서 기능하는 것을 목표로 한다. 같은 이유에서 큐비콘은 쿠베아덤(kubeadm) 툴과 같은 기성 쿠베르네티스 툴링에 의존도를 보이며, 그로써 기존 워크플로의 대체 도구라기보단 보완 도구로서 기능한다.

큐비콘의 접근법에서 가장 큰 역할을 차지하는 것은 스냅샷을 활용하는 부분이다. 큐비콘은 사용자가 자신의 클러스터의 상태를 자체 정의하고, 해당 상태를 원자적으로 적용한 후(미동작시 롤백) 이를 스냅샷으로 캡처 할 수 있도록 허용하는 방식으로 기능한다. 그리고 캡처된 스냅샷은 새로운 배치 과정에까지 이용이 가능하다.

기억해야 할 점은 큐비콘이 정식 쿠베르네티스 프로젝트는 아닌 아직 실험 단계의 활동이기 때문에, 이를 제작 작업에 활용하는 것은 지양하는 것이 좋다.

지금이야말로 쿠베르네티스의 가능성을 실험해 볼 최적의 시점이다. 그리고 그 실험의 여정에, 큐비콘과 큐브디, 헵티오는 좋은 조력자가 되어 줄 것이다. ciokr@idg.co.kr 
2017.08.11

'쿠베르네티스 활용을 쾌적하게'··· 눈길 끄는 오픈소스 프로젝트 3선

Serdar Yegulalp | InfoWorld
기업에게 쿠베르네티스(Kubernetes)는 위대한 구원자와 같은 존재다. 쿠베르네티스를 통해 밸런싱 로드나 네트워킹 콘테이너, 앱 가용성 보장, 업데이트/롤백 관리 따위의 세세한 과업들에 얽매이지 않고도 콘테이너화 애플리케이션을 구동할 수 있게 됐다. 무수한 복잡성에서 해방된 것이다.

하지만 쿠베르네티스를 사용하는 자체가 나름의 과제를 전달하기도 한다. 쿠베르네티스를 구동, 실행하는 추가적 과업에 더해, 이를 유지 관리하는데 있어서도 신경 쓸 일이 한 두 가지가 아니다.

더욱이 현재 쿠베르네티스가 보여주고 있는 급속도의 개발 흐름을 감안해 본다면, 우선순위에서 밀리는 각종 문제들이 존재하는 것도 자연스러운 현상이다. 다행히 쿠베르네티스의 주변에는 건강한 커뮤니티가 조성돼 있어, 이런저런 이유로 쿠베르네티스팀이 집중하지 못하는 문제들을 해결하기 위한 활발한 연구가 이뤄지고 있다.

여기 쿠베르네티스 주변 커뮤니티에서 주목 받고 있는, 콘테이너 조정자 배치, 유지, 활용, 조감 지원 프로젝트 3건을 소개한다.

헵티오(Heptio)
헵티오(Heptio)는 구글을 떠난 전직 쿠베르네티스 개발자 2명이 설립한 업체로, 쿠베르네티스를 보다 쓰기 쉬운 도구로 만드는 것을 목표로 내세우고 있다. 헵티오는 자체 쿠베르네티스 배포판을 공급하는 대신, 쿠베르네티스 오리지널 상류 에디션 자체의 사용 경험을 개선하는 오픈소스 툴을 전달하는 방향으로 활동을 전개하고 있다.

이번 달 초 헵티오는 자신들의 첫 번째 프로젝트 헵티오 아크(Heptio Ark)와 헵티오 소노부이(Heptio Sonobuoy)를 공개했다. 아크는 콘테이너 기반 애플리케이션의 스냅샷, 백업, 복구의 방식으로 기능하는 쿠베르네티스 클러스터용 재난 복구 시스템이다. 쿠베르네티스 API와 영구 볼륨(PV, Persistent Volume) 디스크의 상태 기록을 지원한다.

아크는 재난 복구 과정에 활용할 수 있는 스토리지 선택권을 쿠베르네티스가 기본적으로 제공하는 S3 호환 스토리지 서비스(‘Minio’)에서 모든 주요 클라우드 공급자(AWS, 구글 클라우드 플랫폼, 마이크로소프트 애저)들로까지 확장해준다.

다만 환경 간 기존 쿠베르네티스 클러스터 이전을 위한 완전 리프트-앤-시프트(lift-and-shift) 솔루션이 아직 제공되지 않는 점은 아쉬움이 남는 부분이다. 헵티오 측은 이를 위해선 클라우드 공급자 간 PV 스냅샷 이전을 지원하는 기능이 필요하다고 한계의 원인을 설명하고 있다.

두 번째 프로젝트 소노부이는 배포된 쿠베르네티스 버전의 검증 테스트 생략 가능 여부를 확인해주는 쿠베르네티스 설치 검토 솔루션이다.

쿠베르네티스 배치 과정은 각 벤더, 사용자에 따라 많은 조정이 이뤄지곤 한다. 향후 업데이트 시 호환성 이슈를 야기할 수 있는 부분이다. 소노부이의 역할은 이러한 변경 사항들이 호환성 이슈를 발생할 지를 확인해주는 것이다. 더불어 클러스터의 상태를 추출해 진단 리포트에 활용하거나, 소노부이를 통해 진행된 테스트 구동을 플러그인 아키텍처의 방식으로 확장하는 것 역시 가능하다.

다만 소노부이 역시 아직 개발 초기 단계인 만큼, 쿠베르네티스의 자체 적응 테스트에서 확인되는 모든 이슈를 체크하는 데에는 한계를 보인다. 헵티오 측은 코어 쿠베르네티스 팀이 제작한 테스트 스위트와 공시적 관계를 구축하는 수준으로 소노부이를 발전시키겠다는 계획을 세우고 있다.

큐브디(Kubed)
콘테이너화 애플리케이션용 협업적 코딩 플랫폼을 제작하는 앱스코드(AppsCode)가 최근 쿠베르네티스 클러스터 관리와 관련한 여러 간극을 메워줄 새로운 프로젝트를 선보였다.

‘쿠베르네티스 데몬'의 약자로 ‘큐브디(Kubed)’라 발음되는 이 프로젝트는 단일 데몬 프로세스(daemon process) 안에 여러 유용한 기능을 합친 솔루션이다. 큐브디는 정기 클러스터 스냅샷 실행, 삭제 대상을 위한 임시 스토리지 제공, 자동 이벤트 포워딩 실행, 복수 채널을 통한 알림 전달 등의 기능을 제공한다.

쿠베르네티스에서도 엘라스틱서치나 인플럭스DB 인스턴스 안에 로그 데이터를 저장할 수 있지만, 오래된 데이터를 정리하는 것은 사용자의 역할로 남겨졌다. 이와 관련해 큐브디의 ‘문지기' 기능은 일정 기간이 경과한 로그 데이터를 자동으로 정리해줘 편의성을 개선한다. 아직 이러한 정리 작업에 대한 모의 시행 기능은 지원되지 않지만, 이 역시 향후 추가를 검토 중인 것으로 알려져 있다.

큐브디 프로젝트는 현재 가변적인 알파 단계로, 향후 많은 대규모 변화가 계획되어 있다. 현재 개발사 측은 쿠베르네티스가 자신들의 API 셋에 대한 동류 앱들의 확장을 지원하기 위해 제공하고 있는 쿠베르네티스 유저 API 서버를 통해 큐브디 API를 이용할 수 있도록 하는 작업과 쿠베르네티스가 최근 공개한 커스텀 리소스 정의(CRD)에 대한 지원을 위한 연구 등을 진행 중인 것으로 알려져 있다.

큐비콘(Kubicorn)
큐비콘(Kubicorn) 프로젝트는 사용자들이 다양한 클라우드 서버 상에서 쿠베르네티스용 인프라스트럭처를 구축, 관리할 수 있도록 지원하는데 목표를 두고 있다. 퍼핏(Puppet)을 비롯한 여타 현대적 인프라스트럭처 관리 툴들처럼 큐비콘 역시 자신들만의 철학을 내세우고 있다. “사용자들이 자신의 클러스터 안에서 보고 싶은 상태를 설명하면, 큐비콘은 클라스터의 상태가 해당 목표에 맞춰지도록 보장한다”라는 것이 그들이 내세우는 철학이다.

큐비콘은 독립형 툴인 동시에 여타 툴들에 의해 소환될 수 있는 하나의 라이브러리로서 기능하는 것을 목표로 한다. 같은 이유에서 큐비콘은 쿠베아덤(kubeadm) 툴과 같은 기성 쿠베르네티스 툴링에 의존도를 보이며, 그로써 기존 워크플로의 대체 도구라기보단 보완 도구로서 기능한다.

큐비콘의 접근법에서 가장 큰 역할을 차지하는 것은 스냅샷을 활용하는 부분이다. 큐비콘은 사용자가 자신의 클러스터의 상태를 자체 정의하고, 해당 상태를 원자적으로 적용한 후(미동작시 롤백) 이를 스냅샷으로 캡처 할 수 있도록 허용하는 방식으로 기능한다. 그리고 캡처된 스냅샷은 새로운 배치 과정에까지 이용이 가능하다.

기억해야 할 점은 큐비콘이 정식 쿠베르네티스 프로젝트는 아닌 아직 실험 단계의 활동이기 때문에, 이를 제작 작업에 활용하는 것은 지양하는 것이 좋다.

지금이야말로 쿠베르네티스의 가능성을 실험해 볼 최적의 시점이다. 그리고 그 실험의 여정에, 큐비콘과 큐브디, 헵티오는 좋은 조력자가 되어 줄 것이다. ciokr@idg.co.kr 
X