Kubernetes란 무엇일까요?

작성자 IBM Services

어떤 환경에서든 컨테이너화된 애플리케이션을 편성하고 배치

Kubernetes는 컨테이너화된 애플리케이션의 배치, 스케일링 및 모니터링을 자동화하는 오픈 소스 솔루션입니다.

컨테이너는 기본 인프라와 분리된 소프트웨어입니다. 컨테이너를 사용하면 모든 것이 운영 체제 레벨로 가상화됩니다. 이는 실행되는 위치와 상관없이 애플리케이션이 동일한 방식으로 작동함을 의미합니다.

오늘날 대부분의 컨테이너는 Kubernetes 플랫폼에서 실행됩니다. 기업에 따르면: "Kubernetes는 컨테이너 중심 관리 환경을 제공합니다. 이는 사용자 워크로드를 위해 컴퓨팅, 네트워킹 및 스토리지 인프라를 편성합니다... 그리고 인프라 제공자들 간의 이식성을 실현합니다." ⁽¹⁾

Kubernetes 핵심

Kubernetes는 Google에서 처음 시작되었습니다. Google에서 엔지니어 팀은 Borg라고 하는 클러스터 관리 시스템을 개발했습니다. 2014년에 이 회사는 Kubernetes라고 하는 Borg의 오픈 소스 버전을 소개했습니다.⁽²⁾

Kubernetes의 첫 번째 버전은 분산 애플리케이션의 컨테이너 편성을 제공하기 위해 2015년에 릴리스되었습니다. 이 릴리스와 함께, Google은 Linux Foundation과 제휴하여 Cloud Native Computing Foundation을 설립했으며 시드 기술로서 Kubernetes를 제공했습니다.⁽³⁾

첫 선을 보인 후에 Kubernetes는 개발 중에 컨테이너 기술을 기반으로 시스템 간의 이식성을 확보하는 데 도움이 되는 방식 때문에 점점 더 인기를 얻었습니다. 1,400명 이상의 기여자들을 거느린 Kubernetes 오픈 소스 커뮤니티는 이제 전 세계의 초대형 커뮤니티 중 하나입니다.

Docker는 가장 널리 사용되는 컨테이너 기술이지만, Kubernetes는 기타 기술도 지원합니다. Docker는 애플리케이션 실행을 위한 모든 요소가 포함된 표준화된 유닛으로 소프트웨어를 패키징하기 위한 템플리트를 정의했습니다.

Kubernetes는 서버 사용과 공간을 최적화하면서도 컨테이너 환경을 편성합니다. 이는 지능형 스케줄링, 로드 밸런싱, 확장성, 스토리지 관리 및 배치 실행 등의 기능을 사용하여 컨테이너가 배치된 위치와 방법을 관리합니다.

일부 핵심 개념:

  • 기본 Kubernetes 관리 유닛은 컨테이너의 그룹 또는 팟(Pod)입니다. 팟(Pod)의 컨테이너는 동일한 스토리지, 리소스 및 IP 주소를 공유합니다.
  • Kubernetes 클러스터는 마스터와 작업자 노드로 구성됩니다. (노드는 컨테이너가 실행되는 호스트 또는 서버이며, 이는 가상 또는 실제 시스템일 수 있습니다.)
  • 마스터 노드는 컨테이너 워크로드를 관리하며 시스템에서 통신을 통제합니다. 여기에는 성능, 용량 및 가용성을 제어하는 스케줄러가 포함되어 있습니다.
  • 작업자 노드는 마스터 노드의 지시에 따라 팟(Pod)을 실행합니다.
  • 구성 파일을 사용하여 팀들은 운영 매개변수(예: 동시에 실행 가능한 팟(Pod) 개수)를 지정할 수 있습니다. Kubernetes를 사용하면 마치 단일 시스템인 것처럼 전체 데이터 센터에서 리소스를 관리할 수 있습니다.  

Kubernetes vs Docker: 이는 양자택일의 문제가 아님

Kubernetes가 중요한 이유

대기업 애플리케이션에는 엄청난 수의 컨테이너가 포함될 수 있습니다. 이러한 유형의 아키텍처는 매우 빠르게 복잡해질 수 있습니다.

기업들은 가급적이면 유리한 단일 위치에서 컨테이너 환경의 모든 가동 파트를 편성할 수 있어야 합니다. 많은 기업들은 이에 대한 솔루션으로서 Kubernetes를 선택합니다.

Kubernetes는 에코시스템을 관리하고 컴퓨팅과 스토리지를 조정함으로써 컨테이너의 가용성과 효율적인 배치를 보장합니다. 이와 동시에 개발 중에 언제든지 모든 항목의 위치를 볼 수 있습니다.

Kubernetes는 기업들이 신규 애플리케이션의 배치를 간소화하고 컨테이너 및 리소스 관리를 효율화하며 업그레이드 위험을 줄이고 가동 중단을 피할 수 있도록 지원합니다. 이는 애플리케이션 구성요소를 개별적으로 또는 그룹으로 확장할 수 있으며 포터블 클라우드 네이티브 애플리케이션을 지원합니다. 

자신의 IBM 블로그에서 Matt Johnsen은 몇 가지 장점을 간략하게 설명합니다.

  • 비용 절감: Kubernetes 클러스터는 낮은 유지보수 비용이 장점입니다. 팀들은 자체 컨테이너 자동화 스크립트를 작성할 필요가 없습니다. 이들은 공유 인프라를 활용할 수 있습니다. 이들은 현재 하드웨어를 보다 효과적으로 사용함으로써 하드웨어 비용을 줄일 수 있습니다.
  • 시장 출시 시간 단축: Kubernetes는 DevOps에 아주 적합합니다. 훌륭한 컨테이너 관리란 소프트웨어의 실행 중에 배치가 거의 항상 어려움 없이 이루어짐을 의미합니다.
  • IT 유연성: 현대 기업에서 소프트웨어는 다수의 개인용 및 공유 인프라에서 실행됩니다. 컨테이너 관리 솔루션을 사용하면 팀들이 애플리케이션 이동을 위해 성능을 희생하거나 대규모 조정을 수행할 필요가 없습니다. 이들은 기업이 요구하는 모든 위치에서 소프트웨어를 실행할 수 있습니다.

Kubernetes의 또 다른 장점은 커지는 성능 요구사항을 해결하는 데 도움이 될 수 있는 수평적 확장입니다.

IBM Developer 옹호자인 Sai Vennam은 이렇게 말합니다. "애플리케이션에서 이미 Docker 및 컨테이너를 활용 중인 경우, 이를 Kubernetes로 이동하면 확장을 위해 이동 시에 거의 모든 애플리케이션에서 발생되는 몇몇 운영 오버헤드를 처리하는 데 실제로 도움이 됩니다."

Kubernetes as a Service

기업들은 사내 Kubernetes 시스템을 사용하여 자체 컨테이너 배치를 편성할 수 있습니다. 아니면 서비스 제공자가 Kubernetes 기반 플랫폼 또는 IaaS(Infrastructure as a Service)를 제공할 수도 있습니다.

고객들은 동일한 기능의 혜택을 누리지만, 복잡성과 오버헤드는 감소됩니다. Jason McGee(VP 및 IBM Fellow, IBM Cloud)는 이렇게 말합니다.

"작동 중인 컨테이너 클러스터 속으로 리소스 콜렉션을 설치하고 연결하고 구성하는 일은 쉽지 않습니다. 이를 위해서는 적절한 작업과 지식이 필요합니다. 컨테이너 환경에서 용량을 추가하거나 제거해야 하는 경우에는 어떻게 해야 할까요? 장애가 발생하면 어떻게 복구해야 할까요? 컨테이너 및 Kubernetes 역시 놀랄만한 속도로 변화하고 있습니다."

"이를 직접 수행한다면 따라잡기가 쉽지 않습니다. 관리 서비스의 장점 중 하나는 이 모든 작업이 사용자를 위해 이루어지므로 사용자는 자체 애플리케이션에만 집중할 수 있다는 점입니다." ⁽⁴⁾

IBM 등의 관리 서비스 제공자는 각 노드 클러스터에서 컴퓨팅, 네트워크 및 스토리지 리소스를 처리합니다. IBM 서비스는 지능형 스케줄링, 간소화된 클러스터 관리, 컨테이너 보안 및 격리 정책, 그리고 인프라 업그레이드를 제공합니다.

IBM 고객들이 베어메탈 클라우드 인프라에서 Kubernetes 서비스를 사용할 수도 있습니다. 이는 머신 러닝이나 AI 워크로드 등의 초고속 컴퓨팅 성능이 필요한 애플리케이션에 민첩성과 속도를 제공합니다.

McGee는 이렇게 말합니다. "개발자들은 이제 시스템 간의 손쉬운 데이터 이동 또는 여러 팀원들이 동시에 애플리케이션의 여러 부분에서 작업하도록 허용하는 컨테이너의 장점을 활용하면서도, 격리, 증가된 처리 용량 또는 대형 로컬 디스크 스토리지 등의 자체 요구사항을 충족하는 베어메탈 머신 구성을 선택할 수 있습니다."

The Weather Company는 웹 서비스를 확장하여 사람들의 안전을 도움

 

Kubernetes 리소스

컨테이너란 무엇이며 이는 왜 필요할까요?

컨테이너의 정의와 기업에서 이를 사용하는 이유 알아보기

Kubernetes 채택 및 애플리케이션 성능 관리의 중요성

Kubernet 기반 클라우드 환경을 이용하여 많은 기업들의 혁신이 가능한 이유 알아보기

Kubernetes vs Docker: 왜 둘 다가 아닌가요?

Kubernetes 및 Docker 간의 차이점 알아보기

IBM은 베어메탈에서 관리형 Kubernetes를 사용하여 복합 워크로드에 컨테이너의 편의성을 제공함

베어메탈 클라우드 인프라에서 관리형 서비스로서 Kubernetes 컨테이너를 실행하여 얻는 장점 살펴보기

Watson에서 알아보기: 컨테이너가 AI 워크로드를 확장하는 방법

클라우드에서 AI 워크로드가 왜 특이하며 우수한지 알아보기

Outlyer를 사용한 IBM Cloud Service 모니터링

IBM Cloud Kubernetes Service에서 Outlyer 셀프 서비스 모니터링 사용의 이점을 알아보기

주요 서비스

IBM Kubernetes Cloud Service

 

1. https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

2. https://blog.risingstack.com/the-history-of-kubernetes/

3. https://en.wikipedia.org/wiki/Kubernetes

4. https://softwareengineeringdaily.com/2017/11/29/how-ibm-runs-its-cloud-with-jason-mcgee/