에릭 브루어와 함께하는 Kubernetes의 과거, 현재, 미래
Stephanie Wong
Head of Technical Storytelling
* 본 아티클의 원문은 2021년 12월 8일 Google Cloud 블로그(영문)에 게재되었습니다.
Kubernetes라는 단어가 기술 업계에 처음 등장한 것은 2014년이었습니다. 그 당시 Kubernetes를 처음 접했을 때 가장 먼저 떠오른 생각은 '도대체 어떻게 발음해야 하지?'였습니다. 그로부터 7년이 지난 후 Kubernetes는 세계 최대 규모의 오픈소스 프로젝트 중 하나가 되었습니다. Kubernetes의 초기 관리자 중 한 명이 Google 펠로우인 에릭 브루어입니다. 지난 10여 년 동안 에릭은 Google 기술의 개발과 외부 출시를 적극 지원하며 주도적으로 이끌어 왔습니다. 현재는 Kubernetes, 서버리스, DevOps, Istio, 기타 서비스와 같은 다양한 Google Cloud 서비스에 주력하고 있으며, 이전에는 컴퓨팅과 스토리지 분리, 대규모 VM 라이브 마이그레이션 보급 추진, 분할을 위한 어플라이언스 사용 정립 등 획기적인 작업에서 중요한 역할을 했습니다. 저는 몇 번의 세션에 걸쳐 수년간 그가 경험한 IT 현장의 이야기를 듣고 에릭이 클라우드 컴퓨팅의 미래를 결정지은 4대 요소로 꼽는 Kubernetes 및 오픈소스 관련 유용한 정보를 상세히 알아보는 시간을 가졌습니다.
1. 오픈소스로 제공되는 Kubernetes는 클라우드 기반 컴퓨팅의 중심축이 되었으며 우리는 오픈소스 기술에 지속적으로 투자해야 합니다.
UC 버클리 학부에 입학한 에릭은 많은 프로세스, 서비스, API를 사용하는 상용 서버 클러스터에 기반한 모델이자 훗날 클라우드 컴퓨팅의 모체가 되는 기술에 큰 관심을 가졌습니다. 2011년, Google에 입사한 후에는 이러한 생각을 토대로 높은 수준의 추상화를 중심으로 한 신종 클라우드를 개발했습니다. 이 신종 클라우드는 컨테이너화된 애플리케이션을 자동으로 배포, 확장, 관리하기 위한 오픈소스 시스템인 Kubernetes의 시초가 된 초기 프로토타입과 잘 연동되었습니다.
2010년대 초반 클라우드가 태동하던 시기에 에릭은 Google 내부의 컨테이너에 기반한 접근법이 VM과 디스크보다 훨씬 더 강력한 클라우드를 구현해 낼 수 있음을 알고 있었습니다. Google에서 생각이 같은 사람을 모으는 것은 비교적 쉬웠지만 이제껏 경험해 보지 못한 새롭고 검증되지 않은 아이디어가 업계 전반에 받아들여지기까지는 대개 시간이 오래 걸리기 마련입니다. 선견지명이 있었던 에릭은 프로젝트를 오픈소스로 제공하는 것이 클라우드 컴퓨팅을 혁신할 수 있는 Kubernetes의 잠재력을 실현할 수 있는 단 하나의 방법임을 바로 알아챘습니다.
물론 일부 저항에 부딪히기도 했습니다. 2012년 무렵, Google Cloud는 이미 App Engine과 VM을 제공하고 있었습니다. 비평가들의 공통적인 질문은 '왜 컴퓨팅을 하는 데 제3의 길이 필요하냐?'는 것이었습니다. Kubernetes의 등장 전부터 Google은 이미 매주 수십억 개의 컨테이너를 실행하고 있었으며 에릭은 이 기술을 더욱 발전시킴으로써 산업 전반에 걸쳐 막대한 가치를 창출할 수 있을 것으로 예상했습니다. Kubernetes는 자동화와 유연성을 갖추고 있어 원시 VM 또는 원시 디스크를 사용할 때에 비해 훨씬 더 수월하게 운영할 수 있습니다.
수년 동안 오픈소스 지원이 이루어진 후 Kubernetes는 Knative, Kubeflow와 같이 Kubernetes를 기반으로 실행되는 한층 더 독자적이고 수평적으로 확장 가능한 서비스를 통해 클라우드에서 애플리케이션을 실행하는 실질적인 방법으로 자리 잡았습니다. 클라우드 컴퓨팅이 또 한 번의 전환점을 맞이하는 상황에서도 이 프로젝트는 계속 발전하고 있습니다. 현재 에릭은 Kubernetes의 근본 철학과 보안에 민감한 업계가 요구하는 엄격한 보호 조치를 결합하기 위한 노력을 진두지휘하고 있습니다. 오픈소스 및 소프트웨어 공급망 보안에 중점을 두고, 공격 지점을 최소화하기 위해 소스 코드 작성에서 배포까지 더욱 독자적인 도구를 개발하는 것을 목표로 삼고 있습니다.
2. 소프트웨어 개발에 사용된 종속 항목의 수가 늘어날수록 보안 위험이 급격히 커지게 됩니다. 소프트웨어 공급망 보안에 대한 투자는 필수적이며 자체 관리 솔루션보다 관리형 서비스로 전환하는 것이 실제로는 더 안전합니다.
SolarWinds와 CodeCov 등 최근 발생한 공격을 보면 소프트웨어 산업 전반에서 재사용이 증가하고 개발 속도가 빨라지면서 공격의 여지가 될 만한 보안 허점이 늘어나는 것을 알 수 있습니다. 에릭은 전지구적인 최우선 과제를 해결하기 위한 기반을 닦고 있습니다.
취약점의 99%는 애플리케이션에 작성한 코드가 아니라 깊고 복잡하게 얽혀 있는 종속 항목에 존재하며, 여러분이 잘 알고 있는 것도 있고 전혀 모르는 것도 있습니다.
에릭 브루어
소프트웨어 개발에서 오픈소스 소프트웨어와 종속 항목의 사용이 늘고 있기 때문에 조직이 소프트웨어에서 중점 투자할 부분을 판단하고 그 이유를 이해하는 것이 중요합니다. 검증되지 않은 소프트웨어 종속 항목을 코드에 포함하는 대신, 이 소프트웨어를 평가하고 기준에 부합하지 않거나 제대로 관리되지 않는 요소를 찾아내는 데 시간을 할애해야 합니다.
수백 개의 소프트웨어 종속 항목이 존재하는 Kubernetes에 Google은 어떻게 투자하고 있느냐는 질문에 에릭은 2015년에 Cloud Native Computing Foundation(CNCF)이 설립되기까지 Google Cloud가 크게 기여했다고 설명했습니다. CNCF는 Kubernetes, Prometheus, Envoy 등 빠르게 증가하는 오픈소스 프로젝트의 공급업체 중립적인 발상지 역할을 하고 있습니다. CNCF의 사명은 클라우드 기반 컴퓨팅을 널리 보급하고 생태계 확장을 조성하는 것입니다. CNCF 지원을 기반으로 Google은 2020년에 123,000건이 넘는 항목을 비롯하여 프로젝트에 680,000건 이상을 추가로 기여했습니다.
Google은 오래전부터 오픈소스 분야에 상당한 노력을 기울여 왔으며, 실제로 최근에는 오픈소스 보안을 지원하는 제3자 재단에 1억 달러를 후원하기도 했습니다. 뿐만 아니라 에릭은 조직 보안 책임자들이 일련의 오픈소스 종속 항목에 대한 보안을 이해하고 확인하도록 돕는 오픈소스 보안 도구와 권장사항을 주로 개발하는 Open Source Security Foundation(OpenSSF)을 설립하는 데 큰 역할을 했습니다. 에릭은 선례를 마련한다는 측면에서 이 성과를 중요하게 생각합니다. 오픈소스의 안전성을 최대한 확보하기까지 길고 지루한 과정을 거쳐야 하겠지만 이는 반드시 필요한 작업이며 재정적인 지원이 필요합니다.
오픈소스는 공공 인프라이기도 합니다. 모든 공공 인프라와 마찬가지로 유지보수와 지원이 필요합니다.
에릭 브루어
더 높은 수준의 추상화를 채택하는 서비스가 계속 늘어나면서 관리형 서비스가 안전한 소프트웨어 제공을 보장하는 탄탄한 토대가 되고 있습니다. 관리형 서비스를 이용하면 제공업체가 자동화된 보안 예방 조치와 증명을 사용할 수 있습니다. 예를 들어 GKE Autopilot은 노드와 노드 풀을 포함한 클러스터의 기본 인프라를 프로비저닝 및 관리하여 핸드오프 환경에서 최적의 클러스터를 구현해 줍니다. 클러스터, 워크로드 설정, 보안에 대한 Google Kubernetes Engine(GKE) 권장사항과 추천을 따르는 동시에 보다 효과적으로 컨테이너를 격리하는 설정을 적용합니다. 에릭의 의견에 따르면 이 모델은 앞으로 계속 성장하며 주류로 자리 잡을 것입니다. 시간이 지날수록 보안을 비롯하여 제공업체가 관리하는 기능이 늘어나고 수년에 걸쳐 축적되고 입증된 프로토콜과 권장사항을 이용하여 기업이 직접 관리하고 싶어 하지 않는 기능들을 제공업체가 책임지고 관리하게 될 것입니다.
3. 플랫폼 운영자는 기업이 중시하는 가이드라인을 적용하면서 범용 플랫폼으로 GKE를 실행해야 합니다.
몇 년간 에릭이 꾸준히 받았던 공통적인 질문은 GKE와 같은 관리형 Kubernetes를 기업에서 활용하는방법에 관한 것입니다. 첫 번째로 기억해야 할 사항은 클라우드 제공업체는 여러분이 생각하는 것보다 더 다양하고 많은 요소와 옵션, 기능을 개발자에게 제공한다는 점입니다. 플랫폼 소유자는 이러한 요소를 이용해 최신 앱을 구동하기 위한 안전하고 유지보수 가능한 플랫폼을 구축할 수 있습니다. 예를 들어 백업을 기본적으로 적용하고 루트 파일 시스템 액세스나 백엔드 시스템의 공개 IP 생성을 금지하는 정책을 시행하는 것이 현명합니다. 신용카드 거래를 처리하는 기업이라면 내부 개발자에게 무제한의 권한을 주는 것이 아니라, 서비스 구조에 의하여 거래가 운영 지역의 규정을 준수하도록 보장해 주는 플랫폼을 제공하기를 원할 것입니다.
Kubernetes를 프로젝트 생성과 사용하는 노드, 가져올 라이브러리와 저장소에 대한 제어를 통해 기업이 중시하는 규칙을 적용하는 맞춤 플랫폼을 구축하는 방법이라고 생각해 보세요. 백그라운드 제어는 일반적으로 앱 개발자에 의해 관리된다기보다는, 통제되는 안전한 운영 프레임워크를 개발자에게 제공합니다.
대부분의 관리형 서비스는 플랫폼 운영자가 손쉽게 이용할 수 있는 자동화된 정책 제어와 권장사항을 제공하거나 지원합니다. 예를 들어 Anthos Service Mesh는 서비스 간의 트래픽 흐름과 API 호출을 제어하도록 도와줍니다. 서비스를 자동으로 선언적으로 보호하는 기능을 통해 개발자는 생산성이 향상되는 효과를, 조직은 더 많은 기능을 더 빠르게 제공하는 효과를 누릴 수 있습니다. 동시에 회사 정책이나 정부 규정에 위배되는 기능을 출시하는 것을 방지할 수 있습니다.
Google Cloud는 Dockerfile 없이 소스 코드로 프로덕션에 즉시 사용 가능한 안전한 컨테이너 이미지를 쉽고 빠르게 만들 수 있는 오픈소스 기술인 buildpacks를 지원합니다. Artifact Registry는 Google Cloud에 안전한 비공개 빌드 아티팩트 스토리지를 설정하여 아티팩트를 액세스하거나 조회, 다운로드할 수 있는 사람을 계속 제어할 수 있도록 해 줍니다. 컨테이너 분석은 Artifact Registry 및 Container Registry의 이미지에 대한 취약점 스캔을 제공합니다.
4. Kubernetes는 에지로 계속 확장되고 보조 프로세서를 이용하며 퍼블릭 클라우드와 프라이빗 클라우드에서 효율적으로 실행될 것입니다.
이 시리즈의 마지막 에피소드에서는 에지의 Kubernetes, 보조 프로세서에서 실행되는 Kubernetes, 퍼블릭 클라우드와 프라이빗 클라우드 간 적절한 균형 찾기 등 현장에서 대두된 몇 가지 화두와 관련된 질문들을 간단히 취합했습니다.
에지의 Kubernetes.
Google은 이미 에지에서 Kubernetes의 잠재력이 실현되고 있는 것을 목격하고 있습니다. 예를 들어, 전자통신 및 소매업 분야에서는 에지에 Kubernetes가 사용되고 있습니다. 에지 보안에 대한 우려섞인 견해에 대해 에릭은 Kubernetes를 실질적으로 보호할 수 있으며 중요한 것은 풀 스택이라고 설명합니다. 신뢰할 수 있는 루트를 통해 하드웨어와 하드웨어에서 실행되는 스택에 이르기까지 종합적으로 보호하여 보안을 강화할 수 있습니다.
이 분야는 Google Cloud의 지속적인 투자 대상입니다. Google Cloud는 Next 2021에서 Google Cloud의 인프라와 서비스를 에지로 확장하는 완전 관리형 하드웨어 및 소프트웨어 솔루션 포트폴리오인 Google Distributed Cloud를 발표했습니다. 이 솔루션은 GKE가 주요 구성요소인 Anthos를 기반으로 하며 로컬 데이터 처리, 에지 컴퓨팅, 온프레미스 현대화는 물론이고 주권, 엄격한 데이터 보안 및 개인 정보 보호 요구사항을 충족하는 데 이상적입니다. Kubernetes를 에지에서 안전하게 사용할 수 있도록 Distributed Cloud는 Google 에지 네트워크, 통신사 에지(통신 서비스 업체 파트너가 제공하는 5G 및 LTE 서비스) 또는 소매 매장, 공장 현장, 지사 등 자체 에지에서 클러스터에 대한 중앙화된 구성 및 제어를 제공합니다.
보조 프로세서에서 실행되는 Kubernetes
Google은 에지에서 Anthos를 실행하는 데 필요한 GPU 가속화 컴퓨팅 및 네트워킹 솔루션을 제공하기 위해 NVIDIA와도 협력하고 있습니다. 이러한 협업은 Kubernetes와 관련된 보조 프로세서의 잠재력을 보여줍니다. 에릭은 컴퓨팅의 미래에서 보조 프로세서가 중요한 부분을 차지한다고 생각합니다. 무어의 법칙이 그 유효성을 다해가는 이 시점에 이를 보완하기 위해 업계는 GPU 기반 그래픽 처리, TPU 기반 머신러닝과 같은 사용 사례에 맞게 가속화된 전문 분야별 하드웨어를 채택하고 있습니다.
퍼블릭 클라우드와 프라이빗 클라우드 간의 적절한 균형
이 모든 급격한 혁신에도 불구하고 퍼블릭 클라우드와 독립된 프라이빗 클라우드를 균형감 있게 운영하는 문제는 여전히 회사에 골치 아픈 질문을 던집니다. 에릭은 퍼블릭 클라우드가 왜 더 많은 혜택을 가져다 줄 수 있는지에 대한 명백한 이유를 제시합니다.
개방형 퍼블릭 클라우드는 비용 효율성이 더 우수하기 때문에, 둘 중 하나만 사용할 수 있다면 거의 대부분의 경우 개방형 퍼블릭 클라우드를 사용하는 것이 좋습니다. 혁신의 속도가 빨라지고, 시간이 지날수록 할 수 있는 일이 늘어날 것입니다
에릭 브루어
퍼블릭 클라우드 제공업체를 이용한다면 클라우드 제공업체와 이 업체가 위치한 국가(오늘날은 대개 미국임)의 정부를 신뢰해야 합니다. 그들을 신뢰하지 않거나 너무 많은 위험이 존재한다고 생각하면 독립된 프라이빗 클라우드를 통해 자국에서 운영할 수 있습니다. 이 경우 Kubernetes는 프라이빗 클라우드에서 실행하기에 매우 적합하다는 장점이 있습니다. 에릭이 개발을 지원한 Anthos를 사용하면 Kubernetes를 하이브리드 및 멀티 클라우드 환경의 GKE에서 실행하거나 베어메탈에서 실행할 수 있습니다. 공급업체 종속을 우려하는 기업의 경우, Anthos에서 이전하여 온프레미스에서 Kubernetes 애플리케이션을 계속 실행할 수 있습니다.
Google Cloud의 다음 외부 출시 제품과 클라우드 컴퓨팅의 미래에 대한 에릭의 예측을 들으려면 위의 동영상을 확인하세요. Google에서 에릭의 연구 활동에 대한 최신 소식을 확인하려면 Twitter에서 @eric_brewer를 팔로우하세요.
@stephr_wong을 팔로우하면 최신 콘텐츠를 계속 확인할 수 있습니다.