컨테이너를 도입하는 조직이 점점 많아짐에 따라 컨테이너 중심 관리 소프트웨어인 Kubernetes는 사실상 컨테이너화된 애플리케이션을 배포하고 운영하기 위한 표준이 되었습니다. Kubernetes는 원래 Google에서 개발되어 2014년에 오픈소스로 출시되었으므로 Google Cloud가 시초라고 할 수 있습니다. Kubernetes는 15년 동안 축적된 Google의 컨테이너화된 워크로드 실행 경험과 오픈소스 커뮤니티의 소중한 기여를 기반으로 성장했습니다. Google의 내부 클러스터 관리 시스템인 Borg에서 영감을 얻어 시작된 Kubernetes를 사용하면 애플리케이션의 배포 및 관리와 관련된 모든 작업이 한층 간편해집니다. 자동화된 컨테이너 조정 기능을 제공하는 Kubernetes는 신뢰성을 개선하고 일상적인 작업에 소요되는 시간과 리소스를 절감해 줍니다.
Google Cloud에서 관리하는 Kubernetes인 GKE에 대해 자세히 알아보기
시작할 준비가 되셨나요? 신규 고객에게는 Google Cloud에서 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
Kubernetes('K'와 's' 사이의 문자 수를 나타내는 8을 사용하여 K8s로 줄여 쓰기도 함)는 컨테이너화된 애플리케이션을 어디서나 배포, 확장, 관리할 수 있는 오픈소스 시스템입니다.
Kubernetes는 컨테이너 관리의 운영 작업을 자동화하며 애플리케이션 배포, 애플리케이션 변경사항 출시, 변화하는 요구사항에 맞춘 애플리케이션 확장 및 축소, 애플리케이션 모니터링 등을 위한 기본 제공 명령을 포함하고 있으므로 이를 통해 애플리케이션을 보다 쉽게 관리할 수 있습니다.
운영 자동화
Kubernetes에는 애플리케이션 관리에 필요한 많은 부담스러운 작업을 처리할 수 있는 명령이 기본적으로 포함되어 있으므로 이러한 명령으로 일상적인 운영을 자동화할 수 있습니다. 또한 애플리케이션이 항상 의도한 대로 실행되도록 할 수 있습니다.
인프라 추상화
Kubernetes를 설치하면 Kubernetes에서 워크로드를 대신해 컴퓨팅, 네트워킹 및 스토리지를 처리합니다. 따라서 개발자는 기본 환경에 신경 쓰지 않고 애플리케이션에 집중할 수 있습니다.
서비스 상태 모니터링
Kubernetes는 끊임없이 서비스 상태를 확인하여 장애가 발생하거나 중단된 컨테이너를 재시작하고 서비스가 실행 중인 것으로 확인되었을 때만 사용자가 서비스를 사용할 수 있도록 합니다.
Kubernetes와 Docker는 둘 중 하나만 선택해야 하는 것으로 오해되는 경우가 많지만 사실은 컨테이너화된 애플리케이션을 실행하기 위한 서로 다르면서 보완적인 기술입니다.
Docker를 사용하면 애플리케이션을 실행하는 데 필요한 모든 것을 필요할 때 언제 어디서나 저장하고 열 수 있는 컨테이너에 넣을 수 있습니다. 애플리케이션을 컨테이너에 넣은 후에는 애플리케이션을 관리할 방법이 필요한데 Kubernetes가 하는 일이 바로 그것입니다.
Kubernetes는 영어로 'captain(선장)'을 의미하는 그리스어입니다. 선장이 선박의 안전한 항해를 책임지는 것처럼 Kubernetes는 이러한 컨테이너를 사용 가능한 곳으로 안전하게 운반하여 전달할 책임이 있습니다.
Kubernetes는 어디서나 쉽게 관리하고 배포할 수 있는 애플리케이션을 만드는 데 사용됩니다. 관리형 서비스로 제공되는 Kubernetes는 사용자의 요구사항에 맞춰 다양한 솔루션을 제공합니다. 다음은 몇 가지 일반적인 사용 사례입니다.
개발 속도 향상
Kubernetes는 클라우드 기반 마이크로서비스를 기반으로 하는 앱을 빌드하는 데 유용합니다. 또한 기존 앱의 컨테이너화도 지원하므로 이를 애플리케이션 현대화의 기반으로 삼아 앱을 더 빠르게 개발할 수 있습니다.
위치에 구애받지 않는 애플리케이션 배포
Kubernetes는 어디서나 사용할 수 있도록 빌드되어 있으므로 온사이트 배포 환경과 퍼블릭 클라우드는 물론이고 이 둘이 혼합된 하이브리드 배포 환경에서도 애플리케이션을 실행할 수 있습니다. 따라서 필요한 곳에서 애플리케이션을 실행할 수 있습니다.
효율적인 서비스 실행
Kubernetes는 서비스 실행에 필요한 클러스터의 크기를 자동으로 조정할 수 있습니다. 덕분에 수요에 따라 자동으로 애플리케이션을 확장 및 축소하여 효율적으로 실행할 수 있습니다.