기사 공유하기

클라우드 네이티브 컴퓨팅 파운데이션(CNCF)이 주관하는 쿠버네티스 포럼이 지난 2019년 12월 9일, 10일 양일에 걸쳐 서울에서 개최되었다. CNCF가 주관하는 인터내셔널 쿠버네티스 커뮤니티 행사가 한국에서 처음 열린 것이라 한국의 많은 쿠버네티스 팬들의 관심을 끌었다.

i_028

기존에는 쿠버네티스 컨퍼런스와 지역 클라우드 네이티브 컨퍼런스가 합쳐진 KubeCon + CloudNativeCon 행사를 중심으로 커뮤니티 참석자들의 기술 교류가 이루어져 왔었고, 좀 더 기술 중심적인 행사를 지향하는 쿠버네티스 포럼으로 개최된 것은 이번이 처음이다. 서울 포럼에 뒤이어 곧 바로 시드니에서 포럼이 이어진 것 또한 특기할 만하다.

i_029

KubeCon + CloudNativeCon 북미 행사는 2019년 11월 미국 샌디에이고에서 최근 개최된 바가 있고, 2020년에는 3월 유럽지역 행사가 암스테르담에서, 북미지역 행사가 11월 보스턴에서 예정되어 있다. 한편, 쿠버네티스 포럼 행사는 인도에서 두 번 일본에서 한 번이 계획되어 있다. 이밖에, 한 번의 오픈서밋 행사가 중국에서 열릴 예정이다. 작년 12월 서울 행사도 원래는 오픈서밋 형태로 개최될 것으로 최초 발표되었으나 포럼으로 변경되면서, CNCF의 인터내셔널 이벤트는 KubeCon + CloudNativeCon, 쿠베네티스 포럼, 오픈서밋 이 세 가지 유형으로 정리되어 각각 나름의 목적과 콘텐츠를 달리 가져갈 것으로 예상한다.

서울과 시드니에서 열린 쿠버네티스 포럼의 기본 포맷과 내용은 매우 유사하다. CNCF 상임이사인 댄 컨(Dan Kohn), CNCF의 에코시스템을 담당하고 있는 셰릴 헝(Cheryl Hung), 그리고 아쿠아 시큐리티(Aqua Security)의 기술 에반젤리스트인 리즈 라이스(Liz Rice)가 서울과 시드니 두 곳에서 모두 오프닝 키노트를 진행한 것을 포함 상당 수 일반 세션에서도 동일한 연사가 같은 주제로 발표를 했다. 각 지역의 로컬 발표자가 물론 일부 있기는 했으나 1일차 일정을 보면 사실상 동일한 행사라고 보아도 무방하다.

2일차 행사는 CNCF가 공식적으로 주최하는 행사가 아닌 스폰서들 주관의 행사로 진행되었다. 시드니 행사 일정표에는 2일차의 스폰서 주관 행사에 대해 구체적으로 소개가 되어 있다. 구글, IBM, VM웨어가 제공하는 별도의 유료 세션으로 2일차 행사가 치러졌음을 알 수 있다. 서울 행사도 마찬가지로 스폰서 행사로 진행되는 것으로 알려져 있으나 구체적으로 누가 무슨 주제로 세션이 진행되었는지는 정확하게 확인이 안 되는 점이 아쉽다.

캐즘을 넘어 메인스트림으로

나는 CNCF의 댄 컨이 자신의 키노트 연설에서 쿠버네티스가 작년에 캐즘(chasm; 신기술 개발 후 보급되기 전까지의 수요 정체 현상)을 넘어섰다는 발언을 한 것에 주목했다. 불과 십여 초 동안이지만, 이미 작년에 캐즘을 극복했음에도 불구하고 아직 대부분의 기업들이 클라우드 네이티브에 대한 준비가 되어 있지 않다는 메시지를 전하는 의미 있는 순간이었다.

소프트웨어 문제를 마인크래프트 게임의 좀비에 비유하며 이를 해결하기 위한 중요 수단으로 쿠버네티스를 강조한 것인데, 소프트웨어 개발에 있어서의 민주주의화, 즉 개방과 공유를 통해 솔루션을 찾아가는 방식을 최대한 효과적적으로 완성하기 위한 도구가 쿠버네티스라는 얘기다. 오프라인에서의 기술과 역량을 공유하는 자리인 쿠버네티스 포럼의 오프닝 메시지로서는 꽤 의미 있다고 할 수 있다.

뒤이어 CNCF에서 에코시스템을 담당하는 셰릴 헝(Cheryl Hung)의 키노트 연설도 쿠버네티스가 이미 메인스트림 개발 도구로 자리 잡았음을 뒷받침해주었다. 쿠버네티스가 수많은 오픈소스 프로젝트 중에서도 커뮤니티 지원에 힘입어 가장 빠른 속도로 발전하고 있다는 것이다.

오픈소스 프로젝트가 얼마나 활발하게 성장하고 있는가는 해당 오픈소스가 공유되고 있는 저장소(repository)에서의 활동을 분석하면 알 수 있다. 코드 개발에 참여하는 컨트리뷰터(contributor) 수, 실제 코드를 올린 커밋(commit) 수, 그리고 참여자들과 코드 변경 내용 및 이슈 등을 공유하기 위한 풀 리퀘스트(pull request) 수를 통해 해당 오픈 소스 프로젝트가 얼마나 활성화되어 있는지를 알 수 있다.

이날 셰릴의 발표에서는 30여개의 대표적인 오픈소스 프로젝트 중 쿠버네티스가 앞서 언급한 세 가지 지표 모두에서 최상위권임을 보여주었다. 실제로 리눅스 프로젝트 자체와 견주어도 거의 비슷한 수준임을 확인할 수 있다. 2019년 8월 기준 실제로 확인 된 숫자들을 열거하면 다음과 같다.[footnote]셰릴의 키노트 발표에서는 컨트리뷰터 수를 35,000이라 함.[/footnote]

이 정도 수준의 활동량은 전체 오픈소스 프로젝트에서 2위 혹은 3위권 정도라고 하니 쿠버네티스에 대한 개발자 커뮤니티의 관심도가 얼마나 높은 것인지 짐작할 수 있다. 회사 차원의 관심과 지원도 눈여겨 볼만하다. 오픈소스 프로젝트가 일개 프로젝트에서 메인스트림 제품으로 자리 잡기 위해서는 개인차원의 기여보다는 회사차원에서의 기여가 더욱 중요하다. 당초 구글의 내부 프로젝트로 시작되었지만 리눅스재단 산하 CNCF로 이관된 이후 이 프로젝트에 참여하는 회사 수는 앞서 표에서 보여주듯이 315개로 늘었다. 참고로 315라는 숫자는 쿠버네티스의 핵심인 컨테이너 오케스트레이션 제품에 직접 기여하는 숫자이며 쿠버네티스와 관련된 다양한 프로젝트에 기여하는 회사 수는 수천에 이른다고 한다.

쿠버네티스 프로젝트를 최초 시작한 구글, 그리고 리눅스재단에서 가장 활발한 활동을 하고 있는 레드햇(Redhat)이 여전히 매우 전체 활동에서 매우 높은 비중을 차지하고 있지만, 현재는 VM웨어, 마이크로소트, IBM의 활동도 상당히 비중이 큰 편이다. 특히 중국 화웨이(Huawei)의 활동이 최상위권에 있음을 눈여겨 볼만하다. 커밋 수 비중을 기준으로 한 주요 기업의 활동 현황 추이는 아래 도표와 같다.

커밋(commit) 수 기반의 주요 기업의 기여 비중 변화 추이 (그림출처: SDxCentral)
커밋(commit) 수 기반의 주요 기업의 기여 비중 변화 추이 (그림출처: SDxCentral)

셰릴의 키노트에서는 CNCF에서 실시한 설문조사를 최초로 공개하기도 했다. 소프트웨어 엔지니어 700여명을 포함 총 1,100명을 대상으로 한 조사에서 나타난 바에 의하면 응답자의 85%가 컨테이너를 활용하고 있다고 한다. 단순히 컨테이너를 활용하는 것을 넘어 “대규모”로 활용한다는 응답도 꽤 있었는데, 응답자의 19%는 5,000개 이상의 컨테이너를 돌리고 있다고 하며, 15%는 5,000개 이상의 머신에서 컨테이너 오케스트레이션을 한다고 답을 했다. 쿠버네티스의 설치 단위인 클러스터 기준으로는 10%의 응답자가 50개 이상의 클러스터를 운영하고 있다고 답했다.

본격 궤도에 오른 쿠버네티스가 당면한 도전에 대한 언급도 키노트 연설에서 빠지지 않았다. 설문조사를 통해 정리한 주요 도전 과제들로는 개발팀 문화의 변화(43%), 보안(39%), 복잡성(38%), 그리고 교육 부족(33%)을 들었다. 설문 대상이 관리자들보다는 직접 개발 현장에 있는 소프트웨어 엔지니어들이 주를 이룬다는 점을 감안한다면 이들의 관점에서 쿠버네티스를 제대로 활용하기에는 개방과 공유 문화가 조직 전체에 아직 제대로 퍼져있지 못하다는 점을 지적한 것으로 판단된다. 보안 문제는 항상 쿠버네티스에서 가장 도전적인 이슈로 여겨져 왔기에 새롭지 않다. 복잡성과 교육 부족을 도전적인 과제 상위권에 올려놓은 것은 실무의 입장에서 최초 도입 시의 시행착오 과정, 그리고 쿠버네티스 진화 속도를 쫓아가기 위한 노력의 반증으로 보인다.

오픈소스로서의 쿠버네티스 프로젝트 위상, 그리고 실제 개발자들을 통해 확인한 활용 수준을 통해서 CNCF 상임이사가 언급한 “캐즘을 넘어서다”라는 의미를 재확인 할 수 있다. 또한 이와 함께 많은 도전적인 과제들을 해결해야 하며, 서울과 시드니에서 개최된 포럼이 이러한 문제 해결을 위한 주요 이벤트라고 볼 수 있다.

여전히 도전적인 보안 이슈

개방과 공유, 수많은 컨테이너의 유기적 결합, 마이크로 서비스 아키텍처, 워크로드의 자동 배포 및 증설, 등, 클라우드 네이티브 컴퓨팅을 정의하는 수많은 수식어들을 다른 시각, 즉 사이버 보안의 시각에서 바라보면 이런 수식어 자체가 엄청난 잠재적 보안 위협 요소들을 내포하고 있음을 짐작할 수 있다. 개방과 공유정신에 반하는 악의적 개발자의 백도어(back door) 가능성, 오염된 컨테이너를 통한 전체 시스템에 대한 위협, 자동 배포 단계에서의 작동 오류 등이 바로 이러한 위협들이다. 쿠버네티스가 메인스트림으로 자리 잡았다고 하나, 더 많은 지지와 활동범위를 확보하기 위해서는 반드시 해결하고 넘어가야 할 과제이다.

아쿠아 시큐리티 리즈 라이스(Liz Rice)의 키노트 발표는 쿠버네티스 보안의 한 지향점으로 미 공군의 존 보이드(John Boyd) 대령이 개발한 군사 전략인 OODA 루프(loop)를 언급했다. OODA 루프는 관찰(Observe), 원인규명(Orient), 의사결정(Decide), 실행(Act), 이 4가지 요소의 반복을 기반으로 한 전투 운영전략을 말한다. OODA 루프는 이후 군사 분야뿐만 아니라 비즈니스 그리고 사이버 보안에서도 널리 적용되어 왔다.

리즈 라이스는 자신의 발표에서 쿠버네티스 화해(reconciliation) 루프와 OODA 루프를 비교함과 동시에 쿠버네티스 보안에는 어떻게 적용이 될 수 있을지 소개했다. 쿠버네티스에서 각 리소스가 지정한 바람직한 상태(desired state)와 실제 상태(actual state)를 지속적으로 체크하며 상호 동기화(sync)를 유지할 수 있도록 하는 것을 화해 루프(reconciliation loop)라 한다. 일부 리소스들이 예상치 못한 상태, 즉 바람직하지 않은 상태로 변할 경우 전체 클러스터에 이상이 생기기 전에 회복할 수 있도록 하는 쿠버네티스 컨트롤러의 중요한 기능이다. 이러한 화해 루프는 보안과도 밀접하게 연관될 수 있다. 예를 들어 보안 단계에서 이상 행동을 감지하여 특정 POD(쿠버네티스의 기본 배포 단위)를 삭제 하였다면, 화해 루프에서는 이러한 상태 변화 즉 POD수의 감소를 체크하여 정상적인 POD를 다시 생성함으로써 원래 기대했던 정상적인 상태로의 복원이 가능하다. (그림 2)

OODA 루프에 기반 한 쿠버네티스 화해 루프 및 보안 (출처: 리즈 라이스 키노트)
OODA 루프에 기반 한 쿠버네티스 화해 루프 및 보안 (출처: 리즈 라이스 키노트)

리즈 라이스의 키노트는 특정 보안 이슈 혹은 기술에 대한 언급보다는 쿠버네티스 보안의 일반적인 모델을 강조한 것이라 볼 수 있다. 반면, IBM의 브랜든 럼(Brandon Lum)과 라쿠텐(Rakuten)의 리카르도 아라비나(Ricardo Aravena)는 좀 더 구체적으로 데브섹옵스(DevSecOps) 관점에서의 보안의 중요성과 도구, 그리고 컴플라이언스 이슈에 대해 발표를 했다. 빌드-배포-실행 파이프라인 각각의 단계에서 챙겨야 할 컴플라이언스 이슈 및 활용 가능 도구들도 실제 사례와 함께 소개하였다. 보안이 최우선임을 강조하며 정기적 패치 적용과 한 단계 더 높은 보안을 위해 컨테이너 이미지의 암호화까지 제시하고 있다. 특히 컨테이너 이미지를 빌드할 때 반드시 루트 권한이 없는 일반 권한(unprivileged) 사용에 대해 재차 강조했다.

구글의 이안 루이스(Ian Lewis)의 발표도 주목해볼 만하다. 컨테이너의 보안 취약성을 극복하기 위해 컨테이너 이미지 빌드 과정뿐만 아니라 클러스터, POD, 운영체제, 네트워크 전반에 걸쳐 활용할 수 있는 도구와 프로세스를 소개하고 있다. 이 밖에도 데브옵스 사례 및 도구에 관한 발표에서도 컨테이너 보안에 대한 언급은 약방의 감초처럼 등장하고 있으며, 앞으로 진행될 포럼에서도 보안과 관련된 기술과 케이스 스터디는 주요 주제가 될 것이 틀림없다.

레거시 애플리케이션에서 쿠버네티스 애플리케이션으로

포럼의 여러 세션에서 기존 애플리케이션에 익숙한 개발자 혹은 개발조직이 쿠버네티스를 적용한 애플리케이션으로 전환하는 데 필요한 방법론 및 도구, 그리고 이를 이용한 사례들을 들고 있다. 쿠버네티스 애플리케이션 관리를 위한 툴 체인(tool chain), 쿠버네티스 시스템 운영과 관련된 컨트롤러 및 오퍼레이터, 그리고 디버깅과 테스트 방법 등에 관한 내용들이다.

댄 컨은 자신의 키노트 발표에서 말한 것처럼, 쿠버네티스가 2019년에 캐즘을 넘어섰으나 아직 대부분 기업들이 클라우드 네이티브를 적용할 준비가 되어 있지 못하다고 언급했다. 그리고 앞서 소개한 CNCF의 설문에서도 쿠버네티스가 당면한 도전과제로 복잡성을 들고 있다. 쿠버네티스 확산을 위해서는 기존 애플리케이션 개발 및 배포 방식에서 쿠버네티스에 적합한 데브옵스로의 전환에 소요되는 노력이 최소화되어야 한다. 이를 위한 다양한 관련 오픈소스 프로젝트들이 진행 중이며 그 중의 일부가 이번 포럼에 소개되기도 했다.

쿠버네티스 애플리케이션 관리를 위한 도구인 헬름(Helm) 3에 대한 발표가 있었다. 리눅스의 패키지 매니저로 많이 활용되는 yum이나 apt, homebrew 같은 도구의 쿠버네티스 버전이 헬름이다. 쿠버네티스의 가장 기본적인 컨트롤 명령어인 “kubectl”을 대신하거나 혹은 함께 활용함으로써 애플리케이션 패키지 관리를 편리하게 할 수 있도록 하는 도구이다. 쿠버네티스 개발자들 및 운영자들에게는 매우 유용한 도구로 알려져 있다. 헬름 3에 대한 커뮤니티의 기대감에 부응하기 위해 서울 및 시드니 두 포럼에서 키노트 발표로 소개되었다. 서울에서는 삼성SDS의 엔지니어, 시드니에서는 마이크로소프트의 엔지니어가 동일한 내용을 발표했다는 점도 특기할 만하다. 개방과 공유를 표방하는 CNCF의 사상을 엿볼 수 있는 대목이다.

헬름3

쿠버네티스 컨트롤러는 POD, 노드, 서비스, 서비스계정 등 본래 포함하고 있는 리소스뿐만 아니라 애플리케이션에 따라 필요한 커스텀 리소스들을 관리하며 정해진(바람직한) 상태를 최대한 유지하도록 하는 역할을 한다. 앞서 언급한 쿠버네티스 화해 루프도 이에 해당한다. 레거시 애플리케이션 운영과 쿠버네티스 애플리케이션 운영의 차이를 극명하게 보여주는 부분이기도 하다. 즉 쿠버네티스로의 원만한 전환을 위해서는 관련 지식 및 경험이 필수적이다. 이번 서울/시드니 포럼에서는 영국 밴드 샤데이(Sade)의 유명 곡과 동일한 제목인 “Smooth Operator”라는 주제로 VM웨어 소속 쿠버네티스 아키텍트가 발표를 진행했다.

이 밖에도 쿠버네티스 환경에서의 디버깅 및 테스팅에 관한 다수의 세션을 통해 레거시 애플리케이션 개발에 익숙한 개발자들이 쿠버네티스 개발에 좀 더 쉽게 접근할 수 있는 방법을 제시하기도 했다. 한편, 서울 및 시드니 로컬 기업들의 경우 쿠버네티스 적용 사례를 공유함으로써 쿠버네티스 적용을 고려하는 기업 및 개발자들에게 긍정적인 영감을 제공했다.

서울에서의 특기할 만한 세션으로 삼성전자의 엔지니어가 발표한 “Advanced Network Capability for NFV on Kubernetes”를 들 수 있다. 쿠버네티스를 기반으로 한 NFV(Network Function Virtualization)를 구현하면서 얻은 기술과 경험을 공유하는 세션으로, 클라우드 네이티브 사상이 다양한 네트워크 구성을 위해 적용될 수 있음을 보여주는 좋은 예이기도 하다. 5G에서 주요 특징으로 거론되는 네트워크 슬라이싱(network slicing)이 쿠버네티스를 기반으로 구현될 가능성을 제시하고 있다. 레거시 애플리케이션이 쿠버네티스로 전환되는 것은 비단 소프트웨어 분야뿐만 아니라 네트워크까지 확대 된다는 것에 큰 의미를 둘 수 있다.

정리하며

2019년 12월 연속으로 개최된 서울과 시드니의 쿠버네티스 포럼의 목적은 매우 뚜렷하다. 오프라인에서의 커뮤니티 이벤트를 통해 쿠버네티스의 현재와 당면한 도전 과제들에 대해 정리하고 공유하고자 함이다. 이후 포럼에서도 다양한 영역의 도전적인 과제들이 계속 나오겠지만, 우선은 쿠버네티스로의 전환 및 운영에 필요한 기술과 경험의 공유, 그리고 앞으로도 계속될 보안 이슈에 대한 내용이 주를 이룰 것으로 전망된다.

포럼의 형태로 진행된 첫 CNCF 주관 쿠버네티스 이벤트로서 이번 서울과 시드니 두 포럼에서는 주요 관심사들을 적절히 포용하면서 향후 포럼 진행을 위한 좋은 토대가 되었다고 평가할 수 있다. 발표 세션들은 매우 전문적인 내용을 다루기 때문에 실제 쿠버네티스 관련 개발자 혹은 운영자들이 아니면 접근하기 어려울 수도 있다. 하지만 키노트나 발표세션 주제를 통해 쿠버네티스 커뮤니티의 주요 관심사를 파악해 보는 것은 꽤 의미 있다. CNCF의 또 다른 주요 이벤트인 KubeCon + CloudNativeCon과 함께 쿠버네티스 커뮤니티를 지탱하는 주요 이벤트로 자리매김할 것으로 기대된다.

쿠베네테스 피처

[divide style=”2″]

[box type=”note”]

본 글은 한국정보화진흥원의 지원을 받아 작성되었으며, 클라우드스토어 씨앗 이슈리포트에 동시 게재합니다.

[/box]

 

관련 글