Kubernetes 서비스로 GKE를 선택해야 하는 이유
Drew Bradstock
Senior Director, Product Management
Gari Singh
Product Manager
*본 아티클의 원문은 2023년 11월 3일 Google Cloud 블로그(영문)에 게재되었습니다.
Kubernetes는 최신 소프트웨어 개발 환경에서 중요한 역할을 하고 있습니다. 당초 Google에서 개발한 Kubernetes는 현재 역사상 두 번째로 큰 오픈소스 프로젝트로서, 지난 10년간 83,000명이 넘는 기여자가 참여했으며 프로덕션 환경에서 컨테이너화된 애플리케이션을 실행하기 위한 사실상 표준으로 인정받고 있습니다.
Kubernetes는 클라우드의 대중화에 기여했으며, 덕분에 모든 규모의 비즈니스에서 컨테이너화의 이점과 더불어 클라우드를 활용할 수 있게 되었습니다. 다양한 애플리케이션을 실행할 수 있는 강력하고 유연한 플랫폼인 Kubernetes는 모든 규모의 기업에서 사용되고 있으며 세계에서 가장 규모가 크고 복잡한 일부 애플리케이션을 지원합니다. 근래에는 생성형 AI와 대규모 언어 모델(LLM)이 폭증하면서 기업에서 복잡하고 컴퓨팅 집약적인 머신러닝 플랫폼을 실행하고 확장하는 데 Kubernetes의 힘을 빌리고 있습니다.
Kubernetes는 오픈소스 소프트웨어의 위력을 입증한 성공 사례입니다. 극단적일 만큼 개방적인 커뮤니티 중심 프로젝트로서 전 세계 수만 명의 개발자가 Kubernetes의 기능을 향상하고 새로운 사용 사례에 맞게 조율하는 데 참여하고 있습니다. 결과적으로 Kubernetes는 오픈소스에서만 가능한 속도로 계속 진화하고 있습니다.
전체 산업의 기회를 확대한 Kubernetes의 오픈소스 제공
Google에서 개발한 Kubernetes는 2014년에 오픈소스로 출시되었습니다. 그 뿌리는 Google 검색부터 Google 지도, YouTube에 이르는 모든 서비스의 기반이 된 Google 내부의 Borg 시스템(2003~2004년 사이에 출시됨)으로 거슬러 올라갑니다. Google에서 매주 출시하는 컨테이너 수는 평균 40억 개가 넘습니다.
Kubernetes의 오픈소스 제공은 혁신적인 움직임이었습니다. 이를 통해 Cloud Native Computing Foundation(CNCF)이 설립되고 전 세계 기여자와 사용자로 이루어진 커뮤니티가 형성되었습니다. 이 글로벌 커뮤니티가 점점 커짐에 따라 Google은 Kubernetes가 성장을 지속할 수 있도록 관리자 역할을 수행하고 꾸준한 리더십을 발휘하는 등, 그 어느 때보다 Kubernetes에 큰 노력을 기울이고 있습니다.
오늘날 Google은 Kubernetes의 최대 기여자로서 기여 횟수가 100만 건이 넘습니다. 이는 2위부터 5위까지의 조직 4곳을 합친 횟수보다 더 많은 수치입니다. 시간과 개발 리소스를 투자하는 것 외에도 Google Cloud는 매년 수백만 달러를 기부하여 Kubernetes 컨테이너를 호스팅하고 각 출시 버전을 빌드 및 테스트하는 데 필요한 인프라를 지원하고 있습니다.
지난 한 해 동안 클라우드 제공업체만의 기여도를 살펴보면 Google Cloud의 기여도가 2위로 기여한 제공업체보다 3배 더 높았습니다.
Google Cloud는 Kubernetes에 매우 광범위하게 참여하고 기여합니다.
- API Machinery, Autoscaling, Networking, Scheduling, Storage를 비롯한 SIG, Special Interest Groups에서 공동 의장 및 기술 리더로 활약하고 있습니다.
- 커뮤니티와 Google 고객 모두에게 영향을 주는 복잡한 문제를 파악하고 해결합니다. 예를 들어 Google은 커뮤니티와 더불어 모든 Kubernetes의 업그레이드 및 지원 중단을 개선하는 데 막대한 투자를 해왔으며, 이는 모든 고객에게 훨씬 더 안정적인 플랫폼을 제공하는 데 도움이 되었습니다.
- Kubernetes에서 발견된 보안 취약점 중 절반 이상을 해결하고 있습니다. Kubernetes 보안 향상을 위한 이 같은 노력은 사용자를 위해 Kubernetes를 안전하게 보호하고자 하는 Google의 의지를 보여줍니다.
- Go 관련 작업을 수행하는 Google 직원과 긴밀하게 협력하여 업데이트된 Go 버전으로 Kubernetes를 안전하게 보호합니다. Go팀은 Kubernetes 코드 작성에 사용되는 Go 프로그래밍 언어를 개발하는 업무를 맡고 있습니다. Google 직원은 Go팀과 긴밀하게 협업하여 Kubernetes가 최신 Go 버전과 호환되도록 하고 Go에서 발견된 모든 보안 취약점을 해결합니다.
- Kubernetes 포드 보호를 위한 일련의 권장사항인 포드 보안 표준 개발에 앞장서고 있습니다. Google 직원은 이러한 표준 개발을 주도해 왔으며 사용자가 Kubernetes 포드를 보호하는 데 도움이 되는 여러 가이드와 리소스를 게시하고 있습니다.
- 컨테이너로 스토리지에 액세스할 수 있는 방법을 정의하는 초기 컨테이너 스토리지 인터페이스(Container Storage Interface, CSI) 사양을 만들었습니다. Google 직원이 CSI의 초기 개발에 참여했으며 초기 사양을 만드는 데 도움을 주었습니다. CSI는 현재 오픈소스 및 상업용 스토리지 공급업체에서 널리 사용되고 있습니다.
- 정형 데이터에 대해 쿼리와 변환을 표현하기 위한 Common Expression Language(CEL)를 만들었습니다. CEL은 허용 정책 검증과 커스텀 리소스 유효성 검사 표현식을 포함한 다양한 Kubernetes 구성요소에 사용됩니다. CEL은 강력하고 유연한 언어로 Kubernetes의 확장 가능성과 사용성을 개선하는 데 도움이 되었습니다.
Google은 Kubernetes에 상당한 기여를 해왔으며 플랫폼을 더욱 견고하고 확장 가능하며 안전하고 안정적으로 만드는 데 일조했습니다. 더 나아가 Google은 일괄 처리, 머신러닝과 같은 새로운 영역으로 Kubernetes를 확대 적용하면서 Kueue를 사용한 작업 큐잉, Kubeflow를 사용한 ML 작업 및 워크플로 등 CNCF에도 기여하고 있습니다. 이러한 기여는 매우 중요합니다. Kubernetes 커뮤니티가 발전하고 있다면 이는 개인과 회사로 구성된 핵심 그룹이 Kubernetes의 실질적인 발전을 위한 핵심적인 작업에 시간을 투자하고 모두에게 유익한 새로운 기능을 빌드하고 있기 때문입니다. Kubernetes가 AI/ML 같은 새로운 워크로드에도 적합한 플랫폼이 되려면 이러한 워크로드를 처리하는 데 Kubernetes를 활용하고 또 Kubernetes에 기여하는 회사가 더 많아져야 합니다.
고객이 중요한 워크로드에 Google Kubernetes Engine을 믿고 활용하는 이유
Google Kubernetes Engine(GKE)은 가장 확장성이 뛰어나고 완전히 자동화된 Kubernetes 서비스입니다. 업종이나 규모에 관계없이 모든 비즈니스에서 널리 사용되고 있으며 세계에서 가장 크고 복잡한 애플리케이션을 호스팅하는 데에도 사용됩니다. GKE를 사용하면 Google Cloud의 전문성으로 뒷받침되는 안정적이고 확장 가능한 플랫폼에서 애플리케이션이 실행된다는 확신을 가질 수 있습니다. GKE에는 이제 멀티 클러스터 및 분산 팀 관리, 정책 컨트롤러를 사용한 정책 시행, 구성 동기화를 사용한 GitOps 기반 구성, 구성 컨트롤러를 사용한 Google Cloud 리소스의 셀프서비스 프로비저닝, 완전 관리형 Istio 지원 서비스 메시 기능이 포함되어 있습니다. 이 모든 새로운 기능은 GKE Enterprise와 통합되어 있으며, Kubernetes를 사용하기 시작했거나 이미 전 세계에 배포한 고객에게도 이상적입니다.
고객이 중요한 애플리케이션을 실행하는 데 GKE를 사용하는 이유에는 여러 가지가 있습니다.
- Kubernetes를 만든 팀보다 내 환경을 더 잘 운영하고 관리할 수 있는 팀이 있을까요? 오픈소스 Kubernetes 프로젝트 전체가 Google Cloud에서 빌드, 테스트, 배포되며 GKE는 Vertex AI와 DeepMind를 비롯한 여러 서비스에 사용되고 있습니다.
- GKE는 2023년 Gartner Magic Quadrant의 컨테이너 관리 부문에서 리더로 선정되었습니다.
- GKE는 GPU 시간 공유 및 Cloud TPU를 통해 AI/ML 워크로드를 가속화하고 효율적으로 확장합니다.
- GKE는 GKE Autopilot을 통해 최초의 완전 관리형 서버리스 Kubernetes 환경을 제공합니다. GKE Autopilot은 기본 컴퓨팅 인프라를 관리하는 핸드오프 작업 모드이자 Kubernetes API의 모든 기능을 제공하고 포드 수준의 SLA와 명성 높은 Google SRE팀의 지원을 받습니다.
- GKE는 독보적으로 15,000개의 노드 클러스터까지 확장할 수 있어 가장 크고 까다로운 애플리케이션의 니즈도 충족합니다. 예를 들어 PGS에서는 Cray를 72.02페타플롭스 용량의 GKE 기반 슈퍼컴퓨터로 대체했습니다.
- GKE는 잘못 구성된 워크로드와 컨테이너 이미지 취약점을 검사하는 GKE Security Posture, Kubernetes 네트워크 정책이 기본 제공되는 네트워크 정책 시행, 신뢰하지 않는 워크로드를 격리하기 위한 GKE Sandbox, 사용 중인 워크로드 데이터를 암호화하기 위한 Confidential Nodes 같은 기능으로 엔터프라이즈급 보안을 제공합니다.
- GKE는 블루-그린 업그레이드, 유지보수 기간 및 유지보수 제외 등 세밀한 제어 도구를 사용해 원활하게 자동 업그레이드할 수 있습니다.
- 비즈니스, 규제, 규정 준수 관련 니즈 및 요구사항을 충족하는 유연한 배포 옵션입니다. Google Distributed Cloud(완전 관리형 하드웨어 및 소프트웨어 배포 옵션을 통해 Google Cloud를 고객 데이터 센터 또는 에지 위치로 확장), AWS와 Azure로 멀티 클라우드 배포, CNCF와 호환되는 Kubernetes 클러스터를 연결하고 관리하는 기능이 여기에 포함됩니다.
- Google Cloud는 최초의 Kubernetes 비용 최적화 상태 보고서를 발행하는 등 비용 최적화된 애플리케이션 실행에 관한 전문 지식을 갖추고 있습니다.
- Google Cloud는 새로운 오픈소스 버전을 출시하고 약 30일 후에 이에 상응하는 GKE 마이너 버전을 출시하여 GKE 사용자가 최대한 빨리 최신 보안 패치와 기능에 액세스할 수 있도록 합니다.
마이크로서비스부터 데이터베이스, 가장 까다로운 생성형 AI 워크로드에 이르기까지 무엇을 실행하든 확장 가능하고 안정적인 완전 관리형 Kubernetes 서비스를 찾고 계신다면 GKE가 가장 적합한 선택이 될 것입니다.